rhodes 3.3.3.beta.4 → 3.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (497) hide show
  1. data/CHANGELOG +7 -5
  2. data/CREDITS +2215 -0
  3. data/Rakefile +225 -59
  4. data/bin/c2dm.rb +0 -0
  5. data/bin/get-rhodes-info.bat +0 -0
  6. data/bin/migrate-rhodes-app +0 -0
  7. data/bin/migrate-rhodes-app.bat +0 -0
  8. data/bin/rhodes +0 -0
  9. data/bin/rhodes-setup +0 -0
  10. data/bin/rhodes-setup.bat +0 -0
  11. data/bin/rhogen +0 -0
  12. data/bin/rhogen.bat +0 -0
  13. data/bin/set-rhodes-sdk +0 -0
  14. data/bin/set-rhodes-sdk.bat +0 -0
  15. data/bin/upgrade-rhodes-app +0 -0
  16. data/bin/upgrade-rhodes-app.bat +0 -0
  17. data/doc/build.txt +20 -9
  18. data/doc/configuration.txt +8 -8
  19. data/doc/connect-to-web-services.txt +1 -1
  20. data/doc/device-caps.txt +63 -26
  21. data/doc/extensions.txt +14 -2
  22. data/doc/install.txt +28 -19
  23. data/doc/introduction.txt +6 -3
  24. data/doc/jqt-jqm-transition.txt +10 -9
  25. data/doc/release.txt +5 -1
  26. data/doc/rhodes-command-line.txt +130 -0
  27. data/doc/rhom.txt +16 -11
  28. data/doc/rhostudio-eclipse.txt +3 -3
  29. data/doc/simulator.txt +28 -31
  30. data/doc/syncengine-ajax-api.txt +246 -0
  31. data/doc/synchronization.txt +21 -3
  32. data/doc/test-log-debug.txt +3 -1
  33. data/doc/ui.txt +16 -16
  34. data/ext/extconf.rb +8 -0
  35. data/lib/build/jake.rb +5 -5
  36. data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +9 -9
  37. data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +81 -1
  38. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/CaptureActivityHandler.java +6 -13
  39. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/DecodeHandler.java +2 -6
  40. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +12 -1
  41. data/lib/extensions/barcode/ext/barcode/platform/bb/run.bat +0 -0
  42. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.h +2 -0
  43. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.mm +36 -0
  44. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.h +0 -0
  45. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.m +15 -5
  46. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +64 -1
  47. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode.i +35 -1
  48. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +126 -2
  49. data/lib/extensions/barcode/ext/barcode/shared/src/zbar.c +18 -1
  50. data/lib/extensions/barcode/ext/build +0 -0
  51. data/lib/extensions/barcode/ext/build.bat +0 -0
  52. data/lib/extensions/digest-md5/ext/Rakefile +12 -10
  53. data/lib/extensions/digest-md5/ext/build +0 -0
  54. data/lib/extensions/digest-md5/ext/build.bat +0 -0
  55. data/lib/extensions/digest-md5/ext/digest-md5.sln +2 -2
  56. data/lib/extensions/digest-md5/ext/digest-md5.vcproj +41 -28
  57. data/lib/extensions/digest-sha1/ext/Rakefile +11 -10
  58. data/lib/extensions/digest-sha1/ext/build +0 -0
  59. data/lib/extensions/digest-sha1/ext/build.bat +0 -0
  60. data/lib/extensions/digest-sha1/ext/digest-sha1.sln +2 -2
  61. data/lib/extensions/digest-sha1/ext/digest-sha1.vcproj +41 -28
  62. data/lib/extensions/digest/ext/Rakefile +12 -11
  63. data/lib/extensions/digest/ext/build +0 -0
  64. data/lib/extensions/digest/ext/build.bat +0 -0
  65. data/lib/extensions/digest/ext/digest.sln +44 -0
  66. data/lib/extensions/digest/ext/digest.vcproj +40 -27
  67. data/lib/extensions/esri/ext/build +0 -0
  68. data/lib/extensions/esri/ext/build.bat +0 -0
  69. data/lib/extensions/fcntl/ext/Rakefile +10 -9
  70. data/lib/extensions/fcntl/ext/build +0 -0
  71. data/lib/extensions/fcntl/ext/build.bat +0 -0
  72. data/lib/extensions/fcntl/ext/fcntl.vcproj +1 -1
  73. data/lib/extensions/nfc/ext/build +0 -0
  74. data/lib/extensions/nfc/ext/build.bat +0 -0
  75. data/lib/extensions/nfc/ext/nfc/platform/android/Rakefile +11 -11
  76. data/lib/extensions/nfc/ext/nfc/platform/android/jni/src/nfc.cpp +0 -0
  77. data/lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/Nfc.java +12 -10
  78. data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +16 -9
  79. data/lib/extensions/pdf-writer/color.rb +145 -0
  80. data/lib/extensions/pdf-writer/color/cmyk.rb +279 -0
  81. data/lib/extensions/pdf-writer/color/css.rb +28 -0
  82. data/lib/extensions/pdf-writer/color/grayscale.rb +212 -0
  83. data/lib/extensions/pdf-writer/color/hsl.rb +221 -0
  84. data/lib/extensions/pdf-writer/color/palette.rb +16 -0
  85. data/lib/extensions/pdf-writer/color/palette/adobecolor.rb +272 -0
  86. data/lib/extensions/pdf-writer/color/palette/gimp.rb +116 -0
  87. data/lib/extensions/pdf-writer/color/palette/monocontrast.rb +180 -0
  88. data/lib/extensions/pdf-writer/color/rgb-colors.rb +355 -0
  89. data/lib/extensions/pdf-writer/color/rgb.rb +453 -0
  90. data/lib/extensions/pdf-writer/color/rgb/metallic.rb +43 -0
  91. data/lib/extensions/pdf-writer/color/yiq.rb +84 -0
  92. data/lib/extensions/pdf-writer/ext/LICENSES/color/Licence.txt +27 -0
  93. data/lib/extensions/pdf-writer/ext/LICENSES/color/README.txt +32 -0
  94. data/lib/extensions/pdf-writer/ext/LICENSES/pdf-writer/LICENCE +131 -0
  95. data/lib/extensions/pdf-writer/ext/LICENSES/pdf-writer/README +33 -0
  96. data/lib/extensions/pdf-writer/ext/LICENSES/transaction-simple/Licence.txt +25 -0
  97. data/lib/extensions/pdf-writer/ext/LICENSES/transaction-simple/Readme.txt +204 -0
  98. data/lib/extensions/pdf-writer/pdf/charts.rb +13 -0
  99. data/lib/extensions/pdf-writer/pdf/charts/stddev.rb +430 -0
  100. data/lib/extensions/pdf-writer/pdf/math.rb +108 -0
  101. data/lib/extensions/pdf-writer/pdf/quickref.rb +332 -0
  102. data/lib/extensions/pdf-writer/pdf/simpletable.rb +947 -0
  103. data/lib/extensions/pdf-writer/pdf/techbook.rb +901 -0
  104. data/lib/extensions/pdf-writer/pdf/writer.rb +2729 -0
  105. data/lib/extensions/pdf-writer/pdf/writer/arc4.rb +63 -0
  106. data/lib/extensions/pdf-writer/pdf/writer/fontmetrics.rb +203 -0
  107. data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier-Bold.afm +342 -0
  108. data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier-BoldOblique.afm +342 -0
  109. data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier-Oblique.afm +342 -0
  110. data/lib/extensions/pdf-writer/pdf/writer/fonts/Courier.afm +342 -0
  111. data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica-Bold.afm +2827 -0
  112. data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica-BoldOblique.afm +2827 -0
  113. data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica-Oblique.afm +3051 -0
  114. data/lib/extensions/pdf-writer/pdf/writer/fonts/Helvetica.afm +3051 -0
  115. data/lib/extensions/pdf-writer/pdf/writer/fonts/MustRead.html +19 -0
  116. data/lib/extensions/pdf-writer/pdf/writer/fonts/Symbol.afm +213 -0
  117. data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-Bold.afm +2588 -0
  118. data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-BoldItalic.afm +2384 -0
  119. data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-Italic.afm +2667 -0
  120. data/lib/extensions/pdf-writer/pdf/writer/fonts/Times-Roman.afm +2419 -0
  121. data/lib/extensions/pdf-writer/pdf/writer/fonts/ZapfDingbats.afm +225 -0
  122. data/lib/extensions/pdf-writer/pdf/writer/graphics.rb +813 -0
  123. data/lib/extensions/pdf-writer/pdf/writer/graphics/imageinfo.rb +365 -0
  124. data/lib/extensions/pdf-writer/pdf/writer/lang.rb +43 -0
  125. data/lib/extensions/pdf-writer/pdf/writer/lang/en.rb +99 -0
  126. data/lib/extensions/pdf-writer/pdf/writer/object.rb +23 -0
  127. data/lib/extensions/pdf-writer/pdf/writer/object/action.rb +35 -0
  128. data/lib/extensions/pdf-writer/pdf/writer/object/annotation.rb +42 -0
  129. data/lib/extensions/pdf-writer/pdf/writer/object/catalog.rb +39 -0
  130. data/lib/extensions/pdf-writer/pdf/writer/object/contents.rb +65 -0
  131. data/lib/extensions/pdf-writer/pdf/writer/object/destination.rb +40 -0
  132. data/lib/extensions/pdf-writer/pdf/writer/object/encryption.rb +53 -0
  133. data/lib/extensions/pdf-writer/pdf/writer/object/font.rb +72 -0
  134. data/lib/extensions/pdf-writer/pdf/writer/object/fontdescriptor.rb +34 -0
  135. data/lib/extensions/pdf-writer/pdf/writer/object/fontencoding.rb +40 -0
  136. data/lib/extensions/pdf-writer/pdf/writer/object/image.rb +304 -0
  137. data/lib/extensions/pdf-writer/pdf/writer/object/info.rb +51 -0
  138. data/lib/extensions/pdf-writer/pdf/writer/object/outline.rb +30 -0
  139. data/lib/extensions/pdf-writer/pdf/writer/object/outlines.rb +30 -0
  140. data/lib/extensions/pdf-writer/pdf/writer/object/page.rb +195 -0
  141. data/lib/extensions/pdf-writer/pdf/writer/object/pages.rb +115 -0
  142. data/lib/extensions/pdf-writer/pdf/writer/object/procset.rb +46 -0
  143. data/lib/extensions/pdf-writer/pdf/writer/object/viewerpreferences.rb +74 -0
  144. data/lib/extensions/pdf-writer/pdf/writer/ohash.rb +58 -0
  145. data/lib/extensions/pdf-writer/pdf/writer/oreader.rb +25 -0
  146. data/lib/extensions/pdf-writer/pdf/writer/state.rb +48 -0
  147. data/lib/extensions/pdf-writer/pdf/writer/strokestyle.rb +138 -0
  148. data/lib/extensions/pdf-writer/transaction/simple.rb +486 -0
  149. data/lib/extensions/pdf-writer/transaction/simple/group.rb +146 -0
  150. data/lib/extensions/pdf-writer/transaction/simple/threadsafe.rb +68 -0
  151. data/lib/extensions/pdf-writer/transaction/simple/threadsafe/group.rb +36 -0
  152. data/lib/framework/builtinME.rb +0 -0
  153. data/lib/framework/dateOrig.rb +8 -2
  154. data/lib/framework/rational.rb +0 -0
  155. data/lib/framework/res/esri.wm.png +0 -0
  156. data/lib/framework/rho/rho.rb +6 -0
  157. data/lib/framework/rho/rhobluetooth.rb +0 -0
  158. data/lib/framework/rho/rhofsconnector.rb +0 -0
  159. data/lib/framework/rho/rhonativeviewmanager.rb +0 -0
  160. data/lib/framework/rhofsconnector.rb +0 -0
  161. data/lib/framework/rhom/rhom_object_factory.rb +8 -0
  162. data/lib/framework/rhomotoapi.rb +3 -2
  163. data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +9 -1
  164. data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +1 -0
  165. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_file_RhoFileApi.h +26 -2
  166. data/platform/android/Rhodes/jni/src/callbacks.cpp +0 -5
  167. data/platform/android/Rhodes/jni/src/camera.cpp +1 -1
  168. data/platform/android/Rhodes/jni/src/fileapi.cpp +39 -19
  169. data/platform/android/Rhodes/jni/src/geolocation.cpp +3 -3
  170. data/platform/android/Rhodes/jni/src/mapview.cpp +206 -64
  171. data/platform/android/Rhodes/jni/src/nativeview.cpp +1 -1
  172. data/platform/android/Rhodes/jni/src/rhodes.cpp +13 -0
  173. data/platform/android/Rhodes/jni/src/rhodesapp.cpp +20 -0
  174. data/platform/android/Rhodes/jni/src/rhodessystem.cpp +36 -3
  175. data/platform/android/Rhodes/jni/src/signature.cpp +22 -2
  176. data/platform/android/Rhodes/res/drawable/alert_info.png +0 -0
  177. data/platform/android/Rhodes/res/drawable/esri.png +0 -0
  178. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Capabilities.java +17 -16
  179. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Logger.java +4 -1
  180. data/platform/android/Rhodes/src/com/rhomobile/rhodes/MemoryInfoCollector.java +67 -0
  181. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +139 -114
  182. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +106 -13
  183. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +11 -3
  184. data/platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java +71 -16
  185. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraNewService.java +4 -1
  186. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSemiService.java +4 -1
  187. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/AbstractRhoExtension.java +22 -1
  188. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/Config.java +243 -0
  189. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtManager.java +19 -1
  190. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/IRhoExtension.java +9 -1
  191. data/platform/android/Rhodes/src/com/rhomobile/rhodes/{RhodesActivityListener.java → extmanager/IRhoListener.java} +16 -12
  192. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManager.java +63 -1
  193. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +239 -14
  194. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhodesStartupListeners.java +9 -0
  195. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/WebkitExtension.java +53 -0
  196. data/platform/android/Rhodes/src/com/rhomobile/rhodes/file/RhoFileApi.java +27 -12
  197. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +124 -62
  198. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +49 -137
  199. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +84 -114
  200. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +75 -82
  201. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +3 -2
  202. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +4 -0
  203. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapBitmapManager.java +124 -0
  204. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +232 -43
  205. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Request.java +193 -0
  206. data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/IRhoCustomView.java +13 -0
  207. data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +32 -23
  208. data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoVideoView.java +74 -0
  209. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +6 -7
  210. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +37 -0
  211. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality03.java +14 -1
  212. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality05.java +51 -38
  213. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality07.java +9 -1
  214. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality08.java +48 -31
  215. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java +15 -16
  216. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +52 -15
  217. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/LocalFileHandler.java +20 -2
  218. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +1 -0
  219. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +77 -34
  220. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/IRhoWebView.java +9 -0
  221. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebChromeClient.java +105 -0
  222. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +1 -1
  223. data/platform/android/build/RhodesSRC_build.files +8 -7
  224. data/platform/android/build/android.rake +326 -216
  225. data/platform/android/build/androidcommon.rb +27 -13
  226. data/platform/bb/RubyVM/src/com/rho/file/SimpleFile.java +27 -1
  227. data/platform/bb/RubyVM/src/j2me/io/File.java +104 -38
  228. data/platform/bb/build/bb.rake +1 -0
  229. data/platform/bb/build/runRAPC.bat +0 -0
  230. data/platform/bb/rhodes/resources/background.png +0 -0
  231. data/platform/bb/rhodes/resources/esri.png +0 -0
  232. data/platform/bb/rhodes/resources/mappin.png +0 -0
  233. data/platform/bb/rhodes/src/com/rho/rubyext/System.java +5 -1
  234. data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +2 -2
  235. data/platform/bb/rhodes/src/rhomobile/mapview/ESRIMapField.java +0 -0
  236. data/platform/bb/rhodes/src/rhomobile/mapview/ESRIMapProvider.java +0 -0
  237. data/platform/bb/rhodes/src/rhomobile/mapview/GeoCoding.java +0 -0
  238. data/platform/bb/rhodes/src/rhomobile/mapview/GoogleGeoCoding.java +0 -0
  239. data/platform/bb/rhodes/src/rhomobile/mapview/MapTools.java +0 -0
  240. data/platform/iphone/Classes/AppManager/AppManager.m +7 -1
  241. data/platform/iphone/Classes/Camera/PickImageDelegate.h +9 -0
  242. data/platform/iphone/Classes/Camera/PickImageDelegate.m +75 -4
  243. data/platform/iphone/Classes/GeoLocation/LocationController.h +8 -2
  244. data/platform/iphone/Classes/GeoLocation/LocationController.m +74 -76
  245. data/platform/iphone/Classes/InitMemoryInfoCollector.h +33 -0
  246. data/platform/iphone/Classes/InitMemoryInfoCollector.mm +52 -0
  247. data/platform/iphone/Classes/NativeView/NVViewController.h +0 -0
  248. data/platform/iphone/Classes/NativeView/NVViewController.m +34 -2
  249. data/platform/iphone/Classes/Rhodes.m +22 -2
  250. data/platform/iphone/Classes/Signature/SignatureDelegate.m +19 -0
  251. data/platform/iphone/Classes/Signature/SignatureViewController.h +0 -0
  252. data/platform/iphone/Classes/Signature/SignatureViewController.m +0 -0
  253. data/platform/iphone/Classes/SimpleMainView.h +0 -0
  254. data/platform/iphone/Classes/SimpleMainView.m +3 -3
  255. data/platform/iphone/ESRI/BluePushpin.png +0 -0
  256. data/platform/iphone/ESRI/BluePushpin@2x.png +0 -0
  257. data/platform/iphone/ESRI/esri.png +0 -0
  258. data/platform/iphone/ESRI/esri@2x.png +0 -0
  259. data/platform/iphone/rbuild/iphone.rake +75 -7
  260. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +13 -4
  261. data/platform/linux/target/compiler/rubylinux +0 -0
  262. data/platform/mac/target/compiler/RubyMac +0 -0
  263. data/platform/osx/Rhodes Launcher/rhorunner.app/rhorunner b/data/platform/osx/Rhodes → Launcher/rhorunner.app/rhorunner +0 -0
  264. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore +0 -0
  265. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtGui.framework/Resources/qt_menu.nib/keyedobjects.nib +0 -0
  266. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui +0 -0
  267. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork +0 -0
  268. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtWebKit.framework/Versions/4/QtWebKit +0 -0
  269. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
  270. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
  271. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib +0 -0
  272. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqcorewlanbearer.dylib +0 -0
  273. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqgenericbearer.dylib +0 -0
  274. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqcncodecs.dylib +0 -0
  275. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqjpcodecs.dylib +0 -0
  276. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqkrcodecs.dylib +0 -0
  277. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqtwcodecs.dylib +0 -0
  278. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/graphicssystems/libqtracegraphicssystem.dylib +0 -0
  279. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqgif.dylib +0 -0
  280. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqico.dylib +0 -0
  281. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqjpeg.dylib +0 -0
  282. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqmng.dylib +0 -0
  283. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqtga.dylib +0 -0
  284. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqtiff.dylib +0 -0
  285. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libqmldbg_inspector.dylib +0 -0
  286. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libqmldbg_tcp.dylib +0 -0
  287. data/platform/osx/build/osx.rake +6 -8
  288. data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +165 -33
  289. data/platform/shared/RhoConnectClient/RhoConnectClient.h +10 -1
  290. data/platform/shared/common/BundleManager.cpp +27 -16
  291. data/platform/shared/common/ExtManager.h +15 -2
  292. data/platform/shared/common/RhoConf.cpp +17 -2
  293. data/platform/shared/common/RhoConf.h +3 -1
  294. data/platform/shared/common/RhoDefs.h +6 -6
  295. data/platform/shared/common/RhoFatalError.h +1 -1
  296. data/platform/shared/common/RhoFile.cpp +9 -9
  297. data/platform/shared/common/RhoFilePath.h +7 -3
  298. data/platform/shared/common/RhoPort.h +3 -3
  299. data/platform/shared/common/RhoSystem.h +1 -1
  300. data/platform/shared/common/RhodesApp.cpp +426 -26
  301. data/platform/shared/common/RhodesApp.h +11 -3
  302. data/platform/shared/common/RhodesAppBase.cpp +4 -1
  303. data/platform/shared/common/StringConverter.h +3 -3
  304. data/platform/shared/common/app_build_capabilities.h +8 -0
  305. data/platform/shared/common/map/BaseMapEngine.cpp +302 -21
  306. data/platform/shared/common/map/BaseMapEngine.h +132 -6
  307. data/platform/shared/common/map/ESRIMapEngine.cpp +2 -1
  308. data/platform/shared/common/map/GeocodingMapEngine.cpp +22 -4
  309. data/platform/shared/common/map/GeocodingMapEngine.h +40 -0
  310. data/platform/shared/common/map/GoogleMapEngine.cpp +13 -1
  311. data/platform/shared/common/map/MapEngine.h +7 -0
  312. data/platform/shared/common/map/OSMMapEngine.cpp +12 -1
  313. data/platform/shared/json/JSONIterator.cpp +1 -1
  314. data/platform/shared/json/RJSONTokener.c +2 -0
  315. data/platform/shared/json/config.h +3 -3
  316. data/platform/shared/logging/RhoLog.cpp +12 -3
  317. data/platform/shared/logging/RhoLog.h +2 -1
  318. data/platform/shared/logging/RhoLogConf.cpp +147 -11
  319. data/platform/shared/logging/RhoLogConf.h +39 -1
  320. data/platform/shared/logging/RhoLogSink.cpp +1 -1
  321. data/platform/shared/net/HttpServer.cpp +8 -4
  322. data/platform/shared/net/INetRequest.cpp +7 -0
  323. data/platform/shared/net/INetRequest.h +2 -0
  324. data/platform/shared/net/RawSocket.cpp +1 -1
  325. data/platform/shared/qt/pbxproj2pro.pl +0 -0
  326. data/platform/shared/qt/pro_vcproj_diff.pl +0 -0
  327. data/platform/shared/qt/rhodes/QtMainWindow.cpp +1 -1
  328. data/platform/shared/qt/rhodes/impl/RhoClassFactoryImpl.h +2 -2
  329. data/platform/shared/qt/rhodes/impl/RhoThreadImpl.cpp +2 -2
  330. data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +11 -1
  331. data/platform/shared/qt/rhodes/main.cpp +5 -5
  332. data/platform/shared/ruby/ext/alert/alert_wrap.c +8 -8
  333. data/platform/shared/ruby/ext/bluetooth/bluetooth.i +0 -0
  334. data/platform/shared/ruby/ext/bluetooth/bluetooth_wrap.c +16 -9
  335. data/platform/shared/ruby/ext/camera/camera.i +2 -2
  336. data/platform/shared/ruby/ext/camera/camera_wrap.c +18 -3
  337. data/platform/shared/ruby/ext/datetimepicker/datetimepicker_wrap.c +37 -8
  338. data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +8 -8
  339. data/platform/shared/ruby/ext/mapview/mapview_wrap.c +16 -9
  340. data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +16 -9
  341. data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager.i +0 -0
  342. data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager_wrap.c +16 -9
  343. data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +8 -1
  344. data/platform/shared/ruby/ext/rho/rhoruby.c +7 -1
  345. data/platform/shared/ruby/ext/rho/rhoruby.h +1 -0
  346. data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +16 -9
  347. data/platform/shared/ruby/ext/signature/signature.i +0 -0
  348. data/platform/shared/ruby/ext/signature/signature_wrap.c +9 -9
  349. data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +16 -9
  350. data/platform/shared/ruby/ext/system/system_wrap.c +16 -9
  351. data/platform/shared/ruby/ext/webview/webview_wrap.c +16 -9
  352. data/platform/shared/ruby/gc.c +1 -0
  353. data/platform/shared/ruby/regint.h +6 -4
  354. data/platform/shared/ruby/vm.c +1 -0
  355. data/platform/shared/ruby/wince/wince.h +1 -1
  356. data/platform/shared/rubyext/System.cpp +1 -1
  357. data/platform/shared/shttpd/src/rdispatcher.c +3 -3
  358. data/platform/shared/shttpd/src/std_includes.h +1 -1
  359. data/platform/shared/sqlite/sqlite3.c +1 -0
  360. data/platform/shared/statistic/test/TestProfiling.cpp +1 -1
  361. data/platform/shared/stlport/build/lib/configure +0 -0
  362. data/platform/shared/stlport/build/lib/configure.bat +0 -0
  363. data/platform/shared/sync/SyncEngine.cpp +9 -12
  364. data/platform/shared/sync/SyncNotify.cpp +36 -3
  365. data/platform/shared/sync/SyncNotify.h +11 -4
  366. data/platform/shared/sync/SyncSource.cpp +32 -16
  367. data/platform/shared/sync/SyncSource.h +2 -3
  368. data/platform/shared/sync/SyncThread.cpp +13 -4
  369. data/platform/shared/sync/SyncThread.h +4 -0
  370. data/platform/shared/tcmalloc/page_heap.h +1 -1
  371. data/platform/shared/tcmalloc/rhomem.h +1 -1
  372. data/platform/shared/tcmalloc/windows/port.cpp +12 -3
  373. data/platform/shared/test/Tests.cpp +4 -4
  374. data/platform/shared/test/test_helper.cpp +4 -4
  375. data/platform/symbian/sqlite3/src/sqlite3.h +1 -1
  376. data/platform/win32/RhoSimulator/Microsoft.VC90.CRT.manifest +6 -0
  377. data/platform/win32/RhoSimulator/Microsoft.VC90.OpenMP.manifest +6 -0
  378. data/platform/win32/RhoSimulator/QtCore4.dll +0 -0
  379. data/platform/win32/RhoSimulator/QtGui4.dll +0 -0
  380. data/platform/win32/RhoSimulator/QtNetwork4.dll +0 -0
  381. data/platform/win32/RhoSimulator/QtWebKit4.dll +0 -0
  382. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  383. data/platform/win32/RhoSimulator/imageformats/qgif4.dll +0 -0
  384. data/platform/win32/RhoSimulator/imageformats/qico4.dll +0 -0
  385. data/platform/win32/RhoSimulator/imageformats/qjpeg4.dll +0 -0
  386. data/platform/win32/RhoSimulator/imageformats/qmng4.dll +0 -0
  387. data/platform/win32/RhoSimulator/imageformats/qsvg4.dll +0 -0
  388. data/platform/win32/RhoSimulator/imageformats/qtiff4.dll +0 -0
  389. data/platform/win32/RhoSimulator/libeay32.dll +0 -0
  390. data/platform/win32/RhoSimulator/msvcm90.dll +0 -0
  391. data/platform/win32/RhoSimulator/msvcp90.dll +0 -0
  392. data/platform/win32/RhoSimulator/msvcr90.dll +0 -0
  393. data/platform/win32/RhoSimulator/phonon4.dll +0 -0
  394. data/platform/win32/RhoSimulator/ssleay32.dll +0 -0
  395. data/platform/win32/RhoSimulator/vcomp90.dll +0 -0
  396. data/platform/win32/target/replaceicon/replaceicon.exe +0 -0
  397. data/platform/win32/target/updateresstring/updateresstring.exe +0 -0
  398. data/platform/wm/RhoLib/RhoLib.vcproj +394 -69
  399. data/platform/wm/build/build_inf.js +83 -23
  400. data/platform/wm/build/wm.rake +127 -81
  401. data/platform/wm/rhodes.sln +6 -6
  402. data/platform/wm/rhodes/DateTimePicker.h +2 -2
  403. data/platform/wm/rhodes/IBrowserEngine.h +3 -0
  404. data/platform/wm/rhodes/IEBrowserEngine.cpp +34 -2
  405. data/platform/wm/rhodes/IEBrowserEngine.h +4 -1
  406. data/platform/wm/rhodes/LicenseStub.cpp +73 -0
  407. data/platform/{android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientNew.java → wm/rhodes/LogMemory.cpp} +32 -20
  408. data/platform/{android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettings.java → wm/rhodes/LogMemory.h} +11 -8
  409. data/platform/wm/rhodes/LogOptionsDlg.h +1 -1
  410. data/platform/wm/rhodes/LogView.cpp +10 -10
  411. data/platform/wm/rhodes/LogView.h +10 -10
  412. data/platform/wm/rhodes/MainWindow.cpp +431 -173
  413. data/platform/wm/rhodes/MainWindow.h +37 -19
  414. data/platform/wm/rhodes/MapView/MapViewManager.h +1 -1
  415. data/platform/wm/rhodes/OkCancelModalDialog.h +1 -1
  416. data/platform/wm/rhodes/Rhodes.cpp +210 -47
  417. data/platform/wm/rhodes/Rhodes.rc +38 -0
  418. data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +2 -2
  419. data/platform/wm/rhodes/bluetooth/Bluetooth.h +3 -3
  420. data/platform/wm/rhodes/camera/Camera.cpp +2 -1
  421. data/platform/wm/rhodes/camera/Camera.h +1 -1
  422. data/platform/wm/rhodes/resource.h +1 -1
  423. data/platform/wm/rhodes/rho/common/ExtManager.cpp +93 -5
  424. data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +2 -2
  425. data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +2 -2
  426. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +13 -7
  427. data/platform/wm/rhodes/rhodes.vcproj +1409 -1008
  428. data/platform/wm/rhodes/simulator/MainWindowQt.h +1 -1
  429. data/platform/wm/rhodes/stdafx.h +2 -2
  430. data/platform/wm/rhoelements.sln +7 -9
  431. data/platform/wm/rubylib/rubylib.vcproj +62 -1
  432. data/platform/wm/sqlite3/sqlite3.vcproj +62 -1
  433. data/platform/wm/syncengine/syncengine.vcproj +62 -1
  434. data/platform/wm/tcmalloc/tcmalloc.vcproj +72 -53
  435. data/platform/wm/tools/detool/detool.cpp +1435 -1357
  436. data/platform/wp7/RhoRubyExtGen/GenerateInitializers.cmd +0 -0
  437. data/platform/wp7/RhoRubyLib/common/RhoLicense.cs +105 -0
  438. data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +23 -5
  439. data/platform/wp7/RhoRubyLib/sync/SyncNotify.cs +5 -0
  440. data/platform/wp7/RhoRubyLib/views/RhoView.xaml.cs +22 -3
  441. data/platform/wp7/build/wp.rake +1 -0
  442. data/platform/wp7/rhodes/MainPage.xaml.cs +11 -0
  443. data/rakefile.rb +225 -59
  444. data/res/build-tools/7za.exe +0 -0
  445. data/res/build-tools/RhoAppRunner.exe +0 -0
  446. data/res/build-tools/RhoLogServer.exe +0 -0
  447. data/res/build-tools/RhoRuby.exe +0 -0
  448. data/res/build-tools/RubyMac +0 -0
  449. data/res/build-tools/detool.exe +0 -0
  450. data/res/build-tools/iphonesim/Source/iPhoneSimulator.m +1 -1
  451. data/res/build-tools/iphonesim/build/Release/iphonesim +0 -0
  452. data/res/build-tools/iphonesim/build/Release/iphonesim_43 +0 -0
  453. data/res/build-tools/license_rc.dll +0 -0
  454. data/res/build-tools/make.exe +0 -0
  455. data/res/build-tools/rubylinux +0 -0
  456. data/res/build-tools/swig_patch/Lib/typemaps/fragments.swg +235 -0
  457. data/res/build-tools/wmdc_connect.exe +0 -0
  458. data/res/build-tools/wp7explorer.exe +0 -0
  459. data/res/generators/rhogen.rb +2 -2
  460. data/res/generators/templates/application/app/Settings/controller.rb +1 -1
  461. data/res/generators/templates/application/app/layout.erb +1 -1
  462. data/res/generators/templates/application/app/loading.png +0 -0
  463. data/res/generators/templates/application/public/css/re_webkit.css +736 -0
  464. data/res/generators/templates/application/public/css/windows_mobile.css +0 -0
  465. data/res/generators/templates/application/public/images/listArrow.png +0 -0
  466. data/res/generators/templates/application/public/jqmobile/images/ajax-loader.png +0 -0
  467. data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
  468. data/res/generators/templates/application/public/jqmobile/images/icons-18-white.png +0 -0
  469. data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
  470. data/res/generators/templates/application/public/jqmobile/images/icons-36-white.png +0 -0
  471. data/res/generators/templates/application/public/js/syncengine.js +409 -52
  472. data/res/generators/templates/extension/extensions/montana/ext/build +0 -0
  473. data/res/generators/templates/extension/extensions/montana/ext/build.bat +0 -0
  474. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/android/Rakefile +10 -10
  475. data/res/generators/templates/spec/app/SpecRunner/controller.rb +2 -0
  476. data/res/libs/motorolalicence/android/MotorolaLicence.h +13 -0
  477. data/res/libs/motorolalicence/android/libMotorolaLicence.a +0 -0
  478. data/res/libs/motorolalicence/iphone/MotorolaLicence.h +13 -0
  479. data/res/libs/motorolalicence/iphone/libMotorolaLicence.a +0 -0
  480. data/rhodes.gemspec +1 -1
  481. data/spec/framework_spec/app/SpecRunner/controller.rb +2 -0
  482. data/spec/phone_spec/app/SpecRunner/controller.rb +2 -0
  483. data/version +1 -1
  484. metadata +487 -412
  485. data/Manifest.txt +0 -7960
  486. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivityStartupListeners.java +0 -12
  487. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsNew.java +0 -52
  488. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +0 -62
  489. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/phonon.framework/Versions/4/phonon +0 -0
  490. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/phonon_backend/libphonon_qt7.dylib +0 -0
  491. data/platform/win32/RhoSimulator/Microsoft.VC80.CRT.manifest +0 -8
  492. data/platform/win32/RhoSimulator/Microsoft.VC80.OpenMP.manifest +0 -7
  493. data/platform/win32/RhoSimulator/msvcm80.dll +0 -0
  494. data/platform/win32/RhoSimulator/msvcp80.dll +0 -0
  495. data/platform/win32/RhoSimulator/msvcr80.dll +0 -0
  496. data/platform/win32/RhoSimulator/vcomp.dll +0 -0
  497. data/rhomobile-debug-1.0.6.gem +0 -0
@@ -1,5 +1,7 @@
1
1
  package com.rhomobile.rhodes.extmanager;
2
2
 
3
+ import java.util.Map;
4
+
3
5
  import android.view.View;
4
6
 
5
7
  public interface IRhoExtManager {
@@ -7,6 +9,8 @@ public interface IRhoExtManager {
7
9
  void registerExtension(String strName, IRhoExtension ext);
8
10
  IRhoExtension getExtByName(String strName);
9
11
 
12
+ void addRhoListener(IRhoListener listener);
13
+
10
14
  /**
11
15
  * Web view getter. In case of Motorola WebKit is used it returns object which may be directly casted to NeonEkihView
12
16
  * @return Current web view instance from MainView
@@ -35,18 +39,32 @@ public interface IRhoExtManager {
35
39
  //boolean existsJavascript(String jsFunction);
36
40
  void executeJavascript(String jsFunction);
37
41
 
38
- //void rhoLog(int nSeverity,String szModule,String szMsg,String szFile, int nLine);
39
42
  String getCurrentUrl();
40
43
  void stopNavigate();
41
44
  void historyForward();
42
45
  void historyBack();
43
46
  void refreshPage(boolean bFromCache);
44
47
  void quitApp();
48
+ void setFullScreen(boolean fullScreen);
45
49
  void minimizeApp();
46
50
  void restoreApp();
47
51
  //void resizeBrowserWindow(RECT rc);
48
52
  void zoomPage(float fZoom);
49
53
  void zoomText(int nZoom);
54
+
55
+ /**
56
+ * Handler to notify RhoExtManager about new configuration value
57
+ * @param name - configuration parameter name
58
+ * @param value - configuration parameter value
59
+ * @return true if value is processed by RhoExtManager
60
+ */
61
+ boolean onNewConfigValue(String name, String value);
62
+
63
+ /**
64
+ * Handler to notify RhoExtManager that new configuration is going to apply
65
+ * @return true if it is allowed for extension to navigate start page itself
66
+ */
67
+ boolean onStartNewConfig();
50
68
 
51
69
  }
52
70
 
@@ -1,5 +1,7 @@
1
1
  package com.rhomobile.rhodes.extmanager;
2
2
 
3
+ import android.graphics.Rect;
4
+
3
5
  public interface IRhoExtension {
4
6
 
5
7
  void onSetPropertiesData(IRhoExtManager extManager, String propId, String data, int pos, int total, IRhoExtData ext);
@@ -14,14 +16,20 @@ public interface IRhoExtension {
14
16
  //long onSIPState(IRhoExtManager extManager, boolean bSIPState, IRhoExtData ext);
15
17
  void onAlert(IRhoExtManager extManager, String message, IRhoExtData ext);
16
18
  void onConfirm(IRhoExtManager extManager, String message, IRhoExtData ext);
19
+ void onPrompt(IRhoExtManager extManager, String message, String defaultResponse, IRhoExtData ext);
17
20
  void onSelect(IRhoExtManager extManager, String[] items, int selected, IRhoExtData ext);
18
21
  void onStatus(IRhoExtManager extManager, String status, IRhoExtData ext);
19
22
  void onTitle(IRhoExtManager extManager, String title, IRhoExtData ext);
20
23
  void onConsole(IRhoExtManager extManager, String message, IRhoExtData ext);
21
- void onInputMethod(IRhoExtManager extManager, boolean enabled, IRhoExtData ext);
24
+ void onInputMethod(IRhoExtManager extManager, boolean enabled, String type, Rect area, IRhoExtData ext);
22
25
  void onNavigateError(IRhoExtManager extManager, String url, IRhoExtData ext);
23
26
 
24
27
  void onAppActivate(IRhoExtManager extManager, boolean bActivate);
25
28
 
29
+ //EkiohLocation getCachedLocation(IRhoExtManager extManager, IRhoExtData ext);
30
+ void startLocationUpdates(IRhoExtManager extManager, boolean highAccuracy, IRhoExtData ext);
31
+ void stopLocationUpdates(IRhoExtManager extManager, IRhoExtData ext);
32
+ void onAuthRequired(IRhoExtManager extManager, String type, String url, String realm, IRhoExtData ext);
33
+
26
34
  }
27
35
 
@@ -24,19 +24,23 @@
24
24
  * http://rhomobile.com
25
25
  *------------------------------------------------------------------------*/
26
26
 
27
- package com.rhomobile.rhodes;
27
+ package com.rhomobile.rhodes.extmanager;
28
28
 
29
+ import com.rhomobile.rhodes.RhodesActivity;
30
+
31
+ import android.app.Dialog;
29
32
  import android.content.Intent;
30
33
 
31
- public interface RhodesActivityListener {
32
-
33
- void onCreate(RhodesActivity activity, Intent intent);
34
- void onStart(RhodesActivity activity);
35
- void onResume(RhodesActivity activity);
36
- void onPause(RhodesActivity activity);
37
- void onStop(RhodesActivity activity);
38
- void onDestroy(RhodesActivity activity);
39
- void onNewIntent(RhodesActivity activity, Intent intent);
40
-
41
- void onRhodesActivityStartup(RhodesActivity activity);
34
+ public interface IRhoListener {
35
+
36
+ void onCreate(RhodesActivity activity, Intent intent);
37
+ void onStart(RhodesActivity activity);
38
+ void onResume(RhodesActivity activity);
39
+ void onPause(RhodesActivity activity);
40
+ void onStop(RhodesActivity activity);
41
+ void onDestroy(RhodesActivity activity);
42
+ void onNewIntent(RhodesActivity activity, Intent intent);
43
+ Dialog onCreateDialog(RhodesActivity activity, int id/*, Bundle args*/);
44
+
45
+ void onCreateApplication(IRhoExtManager extManager);
42
46
  }
@@ -1,7 +1,6 @@
1
1
  package com.rhomobile.rhodes.extmanager;
2
2
 
3
3
  public class RhoExtManager extends Object {
4
-
5
4
  private static RhoExtManagerImpl ourRhoExtManager = null;
6
5
 
7
6
  public static RhoExtManagerImpl getImplementationInstance() {
@@ -11,8 +10,71 @@ public class RhoExtManager extends Object {
11
10
  return ourRhoExtManager;
12
11
  }
13
12
 
13
+ /**
14
+ * Gets resource id.
15
+ * For example to get R.string.app_name value call getResourceId("string.app_name")
16
+ * @param name - symbolic name of resource as it referenced at R class
17
+ * @return resource id
18
+ */
19
+ public static int getResourceId(String name) {
20
+ String[] nameComponents = name.split("\\.", 2);
21
+ if (nameComponents.length == 2) {
22
+ return RhoExtManagerImpl.getResId(nameComponents[0], nameComponents[1]);
23
+ }
24
+ throw new IllegalArgumentException(name);
25
+ }
26
+
27
+ /**
28
+ * Gets resource id.
29
+ * For example to get R.string.app_name value call getResourceId("string", "app_name")
30
+ * @param className - symbolic name of R sub class containing an id
31
+ * @param idName - symbolic name of field in the sub class
32
+ * @return resource id
33
+ */
34
+ public static int getResourceId(String className, String idName) {
35
+ return RhoExtManagerImpl.getResId(className, idName);
36
+ }
37
+ /**
38
+ * @return IRhoExtManager instance
39
+ */
14
40
  public static IRhoExtManager getInstance() {
15
41
  return getImplementationInstance();
16
42
  }
17
43
 
44
+ /**
45
+ * Convenient way to print trace message to rhodes log
46
+ * @param tag - log source
47
+ * @param msg - log message
48
+ */
49
+ public static void logT(String tag, String msg) {
50
+ getImplementationInstance().logT(tag, msg);
51
+ }
52
+
53
+ /**
54
+ * Convenient way to print info message to rhodes log
55
+ * @param tag - log source
56
+ * @param msg - log message
57
+ */
58
+ public static void logI(String tag, String msg) {
59
+ getImplementationInstance().logI(tag, msg);
60
+ }
61
+
62
+ /**
63
+ * Convenient way to print warning message to rhodes log
64
+ * @param tag - log source
65
+ * @param msg - log message
66
+ */
67
+ public static void logW(String tag, String msg) {
68
+ getImplementationInstance().logW(tag, msg);
69
+ }
70
+
71
+ /**
72
+ * Convenient way to print error message to rhodes log
73
+ * @param tag - log source
74
+ * @param msg - log message
75
+ */
76
+ public static void logE(String tag, String msg) {
77
+ getImplementationInstance().logE(tag, msg);
78
+ }
79
+
18
80
  }
@@ -1,18 +1,40 @@
1
1
  package com.rhomobile.rhodes.extmanager;
2
2
 
3
+ import java.lang.reflect.Constructor;
4
+ import java.lang.reflect.Field;
5
+ import java.util.ArrayList;
3
6
  import java.util.Hashtable;
4
7
 
8
+ import android.app.Dialog;
9
+ import android.content.Intent;
10
+ import android.graphics.Rect;
11
+ import android.util.Log;
12
+ import android.view.LayoutInflater;
5
13
  import android.view.View;
14
+ import android.view.ViewGroup;
6
15
 
16
+ import com.rhomobile.rhodes.Capabilities;
7
17
  import com.rhomobile.rhodes.Logger;
18
+ import com.rhomobile.rhodes.R;
8
19
  import com.rhomobile.rhodes.RhodesActivity;
9
20
  import com.rhomobile.rhodes.RhodesService;
10
21
  import com.rhomobile.rhodes.WebView;
22
+ import com.rhomobile.rhodes.mainview.MainView;
23
+ import com.rhomobile.rhodes.util.PerformOnUiThread;
24
+ import com.rhomobile.rhodes.util.Utils;
11
25
 
12
26
  public class RhoExtManagerImpl implements IRhoExtManager {
13
27
  private static final String TAG = RhoExtManagerImpl.class.getSimpleName();
14
28
 
15
- private Hashtable<String, IRhoExtension> mExtensions;
29
+ private Hashtable<String, IRhoExtension> mExtensions = new Hashtable<String, IRhoExtension>();
30
+ private ArrayList<IRhoListener> mListeners = new ArrayList<IRhoListener>();
31
+ private Object mLicense;
32
+ private boolean mFirstNavigate = true;
33
+ private boolean mLogError = true;
34
+ private boolean mLogWarning = true;
35
+ private boolean mLogInfo = true;
36
+ private boolean mLogUser = true;
37
+ private boolean mLogDebug = true;
16
38
 
17
39
  private IRhoExtData makeDefExtData(View view) {
18
40
  return new RhoExtDataImpl(view, RhodesActivity.safeGetInstance().getMainView().activeTab());
@@ -20,10 +42,17 @@ public class RhoExtManagerImpl implements IRhoExtManager {
20
42
 
21
43
  private static native void nativeRequireRubyFile(String path);
22
44
 
23
- public RhoExtManagerImpl() {
24
- mExtensions = new Hashtable<String, IRhoExtension>();
25
- }
26
-
45
+ static int getResId(String className, String idName) {
46
+ className = R.class.getCanonicalName() + "$" + className;
47
+ try {
48
+ Class<?> rClass = Class.forName(className);
49
+ Field field = rClass.getDeclaredField(idName);
50
+ return field.getInt(null);
51
+ } catch (Throwable e) {
52
+ throw new IllegalArgumentException("Cannot get " + className + "." + idName, e);
53
+ }
54
+ }
55
+
27
56
  @Override
28
57
  public IRhoExtension getExtByName(String strName) {
29
58
  synchronized (mExtensions) {
@@ -42,14 +71,23 @@ public class RhoExtManagerImpl implements IRhoExtManager {
42
71
  }
43
72
  }
44
73
 
74
+ @Override
75
+ public void addRhoListener(IRhoListener listener) {
76
+ if (!mListeners.contains(listener)) {
77
+ mListeners.add(listener);
78
+ }
79
+ }
80
+
45
81
  @Override
46
82
  public View getWebView() {
47
- return RhodesActivity.safeGetInstance().getMainView().getWebView(WebView.activeTab()).getView();
83
+ MainView mainView = RhodesActivity.safeGetInstance().getMainView();
84
+ return mainView != null ? mainView.getWebView(mainView.activeTab()).getView() : null;
48
85
  }
49
86
 
50
87
  @Override
51
88
  public View getTopView() {
52
- return RhodesActivity.safeGetInstance().getMainView().getView();
89
+ MainView mainView = RhodesActivity.safeGetInstance().getMainView();
90
+ return mainView != null ? mainView.getView() : null;
53
91
  }
54
92
 
55
93
  @Override
@@ -91,7 +129,8 @@ public class RhoExtManagerImpl implements IRhoExtManager {
91
129
 
92
130
  @Override
93
131
  public String getCurrentUrl() {
94
- return RhodesActivity.safeGetInstance().getMainView().currentLocation(RhodesActivity.safeGetInstance().getMainView().activeTab());
132
+ MainView mainView = RhodesActivity.safeGetInstance().getMainView();
133
+ return mainView != null ? mainView.currentLocation(mainView.activeTab()) : "";
95
134
  }
96
135
 
97
136
  @Override
@@ -119,6 +158,11 @@ public class RhoExtManagerImpl implements IRhoExtManager {
119
158
  RhodesService.exit();
120
159
  }
121
160
 
161
+ @Override
162
+ public void setFullScreen(boolean fullScreen) {
163
+
164
+ }
165
+
122
166
  @Override
123
167
  public void minimizeApp() {
124
168
  // TODO Auto-generated method stub
@@ -131,12 +175,12 @@ public class RhoExtManagerImpl implements IRhoExtManager {
131
175
 
132
176
  @Override
133
177
  public void zoomPage(float fZoom) {
134
- // TODO Auto-generated method stub
178
+ WebView.setZoom((int)(fZoom * 100));
135
179
  }
136
180
 
137
181
  @Override
138
182
  public void zoomText(int nZoom) {
139
- // TODO Auto-generated method stub
183
+ WebView.setTextZoom(nZoom);
140
184
  }
141
185
 
142
186
  @Override
@@ -144,10 +188,68 @@ public class RhoExtManagerImpl implements IRhoExtManager {
144
188
  return RhodesService.getBuildConfig(name);
145
189
  }
146
190
 
191
+ /**
192
+ * @return is extension allowed to navigate to its start page
193
+ */
194
+ @Override
195
+ public boolean onStartNewConfig() {
196
+ return Capabilities.SHARED_RUNTIME_ENABLED;
197
+ }
147
198
 
199
+ /**
200
+ * @param name - parameter name
201
+ * @param value - parameter value
202
+ * @return is parameter accepted by rhodes platform
203
+ */
204
+ @Override
205
+ public boolean onNewConfigValue(String name, String value) {
206
+ return false;
207
+ }
148
208
  //-----------------------------------------------------------------------------------------------------------------
149
209
  // Rhodes implementation related methods are below
150
210
 
211
+ public void enableLogLevelError(boolean enabled) {
212
+ Log.i(TAG, "RE Error log: " + enabled);
213
+ mLogError = enabled;
214
+ }
215
+ public void enableLogLevelWarning(boolean enabled) {
216
+ Log.i(TAG, "RE Warning log: " + enabled);
217
+ mLogWarning = enabled;
218
+ }
219
+ public void enableLogLevelInfo(boolean enabled) {
220
+ Log.i(TAG, "RE Info log: " + enabled);
221
+ mLogInfo = enabled;
222
+ }
223
+ public void enableLogLevelUser(boolean enabled) {
224
+ Log.i(TAG, "RE User log: " + enabled);
225
+ mLogUser = enabled;
226
+ }
227
+ public void enableLogLevelDebug(boolean enabled) {
228
+ Log.i(TAG, "RE Debug log: " + enabled);
229
+ mLogDebug = enabled;
230
+ }
231
+
232
+ void logT(String tag, String msg) {
233
+ if (mLogDebug)
234
+ Logger.I(tag, msg);
235
+ }
236
+
237
+ void logI(String tag, String msg) {
238
+ if (mLogInfo || mLogUser)
239
+ Logger.I(tag, msg);
240
+ }
241
+
242
+ void logW(String tag, String msg) {
243
+ if (mLogWarning)
244
+ Logger.W(tag, msg);
245
+ }
246
+
247
+ void logE(String tag, String msg) {
248
+ if (mLogError)
249
+ Logger.E(tag, msg);
250
+ }
251
+
252
+
151
253
  public void onSetPropertiesData(View view,String propId, String data, int position, int total) {
152
254
  synchronized (mExtensions) {
153
255
  for (IRhoExtension ext : mExtensions.values()) {
@@ -162,6 +264,30 @@ public class RhoExtManagerImpl implements IRhoExtManager {
162
264
  ext.onBeforeNavigate(this, url, makeDefExtData(view));
163
265
  }
164
266
  }
267
+ if(mFirstNavigate) {
268
+ if(Capabilities.MOTOROLA_ENABLED) {
269
+ PerformOnUiThread.exec(new Runnable() {
270
+ @SuppressWarnings("deprecation")
271
+ @Override
272
+ public void run() {
273
+ Logger.I(TAG, "Init license now");
274
+ try {
275
+ RhodesActivity activity = RhodesActivity.safeGetInstance();
276
+ LayoutInflater inflater = activity.getLayoutInflater();
277
+ View licenseView = inflater.inflate(getResId("layout", "license"), null);
278
+ activity.addContentView(licenseView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
279
+ Class<?> licenseClass = Class.forName("com.motorolasolutions.rhoelements.License");
280
+ Constructor<?> licenseCtor = licenseClass.getConstructor();
281
+ mLicense = licenseCtor.newInstance();
282
+ } catch(Throwable e) {
283
+ Logger.E(TAG, e);
284
+ Logger.T(TAG, "No motorola runtime licensing");
285
+ }
286
+ }
287
+ });
288
+ }
289
+ mFirstNavigate = false;
290
+ }
165
291
  }
166
292
 
167
293
  public void onNavigateComplete(View view, String url) {
@@ -204,10 +330,10 @@ public class RhoExtManagerImpl implements IRhoExtManager {
204
330
  }
205
331
  }
206
332
 
207
- public void onInputMethod(View view, boolean enabled) {
333
+ public void onInputMethod(View view, boolean enabled, String type, Rect area) {
208
334
  synchronized (mExtensions) {
209
335
  for (IRhoExtension ext : mExtensions.values()) {
210
- ext.onInputMethod(this, enabled, makeDefExtData(view));
336
+ ext.onInputMethod(this, enabled, type, area, makeDefExtData(view));
211
337
  }
212
338
  }
213
339
  }
@@ -244,10 +370,10 @@ public class RhoExtManagerImpl implements IRhoExtManager {
244
370
  }
245
371
  }
246
372
 
247
- public void onPrompt(View view, String prompt, String arg2) {
373
+ public void onPrompt(View view, String prompt, String defaultResponse) {
248
374
  synchronized (mExtensions) {
249
375
  for (IRhoExtension ext : mExtensions.values()) {
250
- ext.onConfirm(this, prompt, makeDefExtData(view));
376
+ ext.onPrompt(this, prompt, defaultResponse, makeDefExtData(view));
251
377
  }
252
378
  }
253
379
  }
@@ -275,5 +401,104 @@ public class RhoExtManagerImpl implements IRhoExtManager {
275
401
  }
276
402
  }
277
403
  }
404
+
405
+ public void onAuthRequired(View view, String type, String url, String realm) {
406
+ synchronized (mExtensions) {
407
+ for (IRhoExtension ext : mExtensions.values()) {
408
+ ext.onAuthRequired(this, type, url, realm, makeDefExtData(view));
409
+ }
410
+ }
411
+ }
412
+
413
+ public void startLocationUpdates(View view, boolean val) {
414
+ synchronized (mExtensions) {
415
+ for (IRhoExtension ext : mExtensions.values()) {
416
+ ext.startLocationUpdates(this, val, makeDefExtData(view));
417
+ }
418
+ }
419
+ }
420
+
421
+ public void stopLocationUpdates(View view) {
422
+ synchronized (mExtensions) {
423
+ for (IRhoExtension ext : mExtensions.values()) {
424
+ ext.stopLocationUpdates(this, makeDefExtData(view));
425
+ }
426
+ }
427
+ }
428
+
429
+ public void createRhoListeners() {
430
+ for (String classname: RhodesStartupListeners.ourRunnableList) {
431
+ if (classname.length() == 0) continue;
432
+
433
+ Class<? extends IRhoListener> klass = null;
434
+ try {
435
+ klass = Class.forName(classname).asSubclass(IRhoListener.class);
436
+ } catch (ClassNotFoundException e) {
437
+ Utils.platformLog("RhodesActivity", "processStartupListeners() : ClassNotFoundException for ["+classname+"]");
438
+ e.printStackTrace();
439
+ }
440
+ IRhoListener listener = null;
441
+ try {
442
+ if (klass != null) {
443
+ listener = klass.newInstance();
444
+ }
445
+ } catch (InstantiationException e) {
446
+ Utils.platformLog("RhodesActivity", "processStartupListeners() : InstantiationException for ["+classname+"]");
447
+ e.printStackTrace();
448
+ } catch (IllegalAccessException e) {
449
+ Utils.platformLog("RhodesActivity", "processStartupListeners() : IllegalAccessException for ["+classname+"]");
450
+ e.printStackTrace();
451
+ }
452
+ if (listener != null) {
453
+ listener.onCreateApplication(this);
454
+ }
455
+ }
456
+ }
457
+
458
+ public void onCreateActivity(RhodesActivity activity, Intent intent) {
459
+ for (IRhoListener listener: mListeners) {
460
+ listener.onCreate(activity, intent);
461
+ }
462
+ }
463
+ public void onStartActivity(RhodesActivity activity) {
464
+ for (IRhoListener listener: mListeners) {
465
+ listener.onStart(activity);
466
+ }
467
+ }
468
+ public void onResumeActivity(RhodesActivity activity) {
469
+ for (IRhoListener listener: mListeners) {
470
+ listener.onResume(activity);
471
+ }
472
+ }
473
+ public void onPauseActivity(RhodesActivity activity) {
474
+ for (IRhoListener listener: mListeners) {
475
+ listener.onPause(activity);
476
+ }
477
+ }
478
+ public void onStopActivity(RhodesActivity activity) {
479
+ for (IRhoListener listener: mListeners) {
480
+ listener.onStop(activity);
481
+ }
482
+ }
483
+ public void onDestroyActivity(RhodesActivity activity) {
484
+ for (IRhoListener listener: mListeners) {
485
+ listener.onDestroy(activity);
486
+ }
487
+ }
488
+ public void onNewIntent(RhodesActivity activity, Intent intent) {
489
+ for (IRhoListener listener: mListeners) {
490
+ listener.onNewIntent(activity, intent);
491
+ }
492
+ }
493
+ public Dialog onCreateDialog(RhodesActivity activity, int id/*, Bundle args*/) {
494
+ Dialog res = null;
495
+ for (IRhoListener listener: mListeners) {
496
+ res = listener.onCreateDialog(activity, id);
497
+ if (res != null)
498
+ break;
499
+ }
500
+ return res;
501
+ }
502
+
278
503
  }
279
504