rhodes 6.2.0 → 7.1.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (553) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +14 -10
  3. data/appveyor.yml +1 -1
  4. data/extensions/emdk3-manager/ext/platform/android/Rakefile +2 -0
  5. data/extensions/rhoconnect-push/ext/rhoconnect-push/platform/android/Rakefile +18 -1
  6. data/extensions/rhoelementsext/ext/rhoelementsext/platform/android/Rakefile +19 -1
  7. data/lib/commonAPI/RubyServer/ext.yml +21 -0
  8. data/lib/commonAPI/RubyServer/ext/RubyServer.xml +101 -0
  9. data/lib/commonAPI/RubyServer/ext/build +19 -0
  10. data/lib/commonAPI/RubyServer/ext/build.bat +29 -0
  11. data/lib/commonAPI/RubyServer/ext/platform/android/Rakefile +161 -0
  12. data/lib/commonAPI/RubyServer/ext/platform/android/ext_java.files +9 -0
  13. data/lib/commonAPI/RubyServer/ext/platform/android/ext_native.files +7 -0
  14. data/lib/commonAPI/RubyServer/ext/platform/iphone/Rakefile +73 -0
  15. data/lib/commonAPI/RubyServer/ext/platform/iphone/RubyServer.xcodeproj/project.pbxproj +322 -0
  16. data/lib/commonAPI/RubyServer/ext/platform/iphone/RubyServer_Prefix.pch +7 -0
  17. data/lib/commonAPI/RubyServer/ext/shared/RubyServerImpl.cpp +242 -0
  18. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeFactory.java +23 -3
  19. data/lib/commonAPI/barcode/ext/platform/android/src/com/rho/barcode/BarcodeRhoExtension.java +68 -8
  20. data/lib/commonAPI/barcode/ext/platform/iphone/Barcode.xcodeproj/project.pbxproj +24 -52
  21. data/lib/commonAPI/barcode/ext/platform/iphone/Classes/BarcodeViewController.h +38 -10
  22. data/lib/commonAPI/barcode/ext/platform/iphone/Classes/BarcodeViewController.m +300 -22
  23. data/lib/commonAPI/barcode/ext/platform/iphone/Classes/BarcodeViewFactory.mm +6 -0
  24. data/lib/commonAPI/barcode/ext/platform/iphone/Classes/barcode.m +6 -2
  25. data/lib/commonAPI/barcode/ext/platform/iphone/impl/Barcode.m +7 -3
  26. data/lib/commonAPI/barcode/ext/platform/iphone/impl/BarcodeFactory.m +13 -0
  27. data/lib/commonAPI/barcode/ext/platform/iphone/impl/BarcodeSingleton.m +25 -3
  28. data/lib/commonAPI/bluetooth/ext/platform/android/Rakefile +29 -10
  29. data/lib/commonAPI/clipboard/ext/platform/android/Rakefile +29 -10
  30. data/lib/commonAPI/coreapi/ext/Notification.xml +47 -0
  31. data/lib/commonAPI/coreapi/ext/platform/android/ApplicationManifestAdds.erb +1 -0
  32. data/lib/commonAPI/coreapi/ext/platform/android/Rakefile +19 -0
  33. data/lib/commonAPI/coreapi/ext/platform/android/ext_java.files +2 -0
  34. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/AlarmReceiver.java +27 -0
  35. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/Notification.java +28 -10
  36. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationFactory.java +14 -1
  37. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationScheduler.java +260 -0
  38. data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationSingleton.java +23 -1
  39. data/lib/commonAPI/coreapi/ext/platform/iphone/Coreapi.xcodeproj/project.pbxproj +21 -19
  40. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.h +1 -0
  41. data/lib/commonAPI/coreapi/ext/platform/iphone/impl/NotificationSingleton.m +234 -1
  42. data/lib/commonAPI/coreapi/ext/platform/qt/coreapi.pro +2 -0
  43. data/lib/commonAPI/coreapi/ext/platform/qt/src/CNotificationImpl.cpp +7 -0
  44. data/lib/commonAPI/coreapi/ext/shared/ApplicationImpl.cpp +5 -0
  45. data/lib/commonAPI/coreapi/public/api/rhoapi.js +18 -8
  46. data/lib/commonAPI/devicesecurity/ext/platform/android/Rakefile +19 -0
  47. data/lib/commonAPI/devicesecurity/ext/platform/iphone/DeviceSecurity.xcodeproj/project.pbxproj +16 -0
  48. data/lib/commonAPI/hardwarekeys/ext/keycapture.xml +11 -9
  49. data/lib/commonAPI/hardwarekeys/ext/platform/iphone/impl/KeyCaptureSingleton.h +5 -3
  50. data/lib/commonAPI/hardwarekeys/ext/platform/iphone/impl/KeyCaptureSingleton.m +80 -67
  51. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraEclair.java +25 -14
  52. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraGingerbread.java +55 -25
  53. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/CameraObject.java +34 -9
  54. data/lib/commonAPI/mediacapture/ext/platform/android/src/com/rho/camera/ICameraObject.java +1 -0
  55. data/lib/commonAPI/printing_zebra/ext/platform/android/Rakefile +18 -0
  56. data/lib/commonAPI/sensor/ext/platform/android/src/com/rho/sensor/Sensor.java +4 -4
  57. data/lib/extensions/decrypt/ext/platform/android/Rakefile +19 -1
  58. data/lib/extensions/decryptstub/ext/platform/android/Rakefile +19 -0
  59. data/lib/extensions/decryptstub/ext/platform/iphone/Decryptstub.xcodeproj/project.pbxproj +4 -2
  60. data/lib/extensions/digest-md5/ext/android/Rakefile +18 -0
  61. data/lib/extensions/digest-sha1/ext/android/Rakefile +18 -0
  62. data/lib/extensions/digest-sha2/ext/android/Rakefile +18 -0
  63. data/lib/extensions/esri/ext/esri/platform/iphone/Classes/MapViewControllerESRI.h +19 -19
  64. data/lib/extensions/fcm-push/ext/android/Rakefile +18 -0
  65. data/lib/extensions/fcm-push/ext/android/src/com/rhomobile/rhodes/fcm/FCMIntentService.java +38 -16
  66. data/lib/extensions/gcm-push/ext/android/Rakefile +19 -0
  67. data/lib/extensions/keyboard/ext.yml +15 -0
  68. data/lib/extensions/keyboard/ext/Keyboard.xml +28 -0
  69. data/lib/extensions/keyboard/ext/build +19 -0
  70. data/lib/extensions/keyboard/ext/build.bat +29 -0
  71. data/lib/extensions/keyboard/ext/platform/android/Rakefile +141 -0
  72. data/lib/extensions/keyboard/ext/platform/android/ext_java.files +9 -0
  73. data/lib/extensions/keyboard/ext/platform/android/ext_native.files +7 -0
  74. data/lib/extensions/keyboard/ext/platform/android/jni/Keyboard_impl.cpp +61 -0
  75. data/lib/extensions/keyboard/ext/platform/android/src/com/rho/keyboard/Keyboard.java +32 -0
  76. data/lib/extensions/keyboard/ext/platform/android/src/com/rho/keyboard/KeyboardFactory.java +18 -0
  77. data/lib/extensions/keyboard/ext/platform/android/src/com/rho/keyboard/KeyboardSingleton.java +29 -0
  78. data/lib/extensions/keyboard/ext/platform/iphone/Keyboard.xcodeproj/project.pbxproj +368 -0
  79. data/lib/extensions/keyboard/ext/platform/iphone/Keyboard_Prefix.pch +7 -0
  80. data/lib/extensions/keyboard/ext/platform/iphone/Rakefile +73 -0
  81. data/lib/extensions/keyboard/ext/platform/iphone/impl/Keyboard.h +14 -0
  82. data/lib/extensions/keyboard/ext/platform/iphone/impl/Keyboard.m +24 -0
  83. data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardFactorySingleton.m +16 -0
  84. data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardSetup.m +9 -0
  85. data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardSingleton.h +17 -0
  86. data/lib/extensions/keyboard/ext/platform/iphone/impl/KeyboardSingleton.m +23 -0
  87. data/lib/extensions/keyboard/ext/platform/iphone/impl/readme.txt +7 -0
  88. data/lib/extensions/keyboard/ext/platform/qt/Keyboard.pro +68 -0
  89. data/lib/extensions/keyboard/ext/platform/qt/Makefile +473 -0
  90. data/lib/extensions/keyboard/ext/platform/qt/Makefile.Release +408 -0
  91. data/lib/extensions/keyboard/ext/platform/qt/Rakefile +39 -0
  92. data/lib/extensions/keyboard/ext/platform/qt/src/Keyboard_impl.cpp +99 -0
  93. data/lib/extensions/keyboard/ext/platform/uwp/Keyboard.props +18 -0
  94. data/lib/extensions/keyboard/ext/platform/uwp/Keyboard.vcxproj +197 -0
  95. data/lib/extensions/keyboard/ext/platform/uwp/Keyboard.vcxproj.filters +50 -0
  96. data/lib/extensions/keyboard/ext/platform/uwp/KeyboardImpl.csproj +119 -0
  97. data/lib/extensions/keyboard/ext/platform/uwp/KeyboardImpl.props +8 -0
  98. data/lib/extensions/keyboard/ext/platform/uwp/KeyboardImpl.targets +7 -0
  99. data/lib/extensions/keyboard/ext/platform/uwp/KeyboardLib.props +18 -0
  100. data/lib/extensions/keyboard/ext/platform/uwp/KeyboardLib.vcxproj +197 -0
  101. data/lib/extensions/keyboard/ext/platform/uwp/KeyboardLib.vcxproj.filters +58 -0
  102. data/lib/extensions/keyboard/ext/platform/uwp/src/Keyboard_impl.cpp +76 -0
  103. data/lib/extensions/keyboard/ext/platform/uwp/src/Keyboard_impl.cs +69 -0
  104. data/lib/extensions/keyboard/ext/platform/uwp/src/Properties/AssemblyInfo.cs +37 -0
  105. data/lib/extensions/keyboard/ext/platform/wm/Keyboard.sln +52 -0
  106. data/lib/extensions/keyboard/ext/platform/wm/Keyboard.vcproj +714 -0
  107. data/lib/extensions/keyboard/ext/platform/wm/Keyboard.vsprops +15 -0
  108. data/lib/extensions/keyboard/ext/platform/wm/src/Keyboard_impl.cpp +77 -0
  109. data/lib/extensions/openssl.so.src/ext/android/Rakefile +18 -0
  110. data/lib/extensions/openssl.so/ext/android/aarch64/libopenssl.so.a +0 -0
  111. data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/howtobuild.txt +2 -0
  112. data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libcrypto.a +0 -0
  113. data/lib/extensions/openssl.so/ext/iphone/OpenSSl.SDK/libssl.a +0 -0
  114. data/lib/extensions/openssl.so/ext/iphone/Release-iphoneos/libopenssl.so.a +0 -0
  115. data/lib/extensions/openssl.so/ext/iphone/Release-iphonesimulator/libopenssl.so.a +0 -0
  116. data/lib/extensions/openssl/ext/android/Rakefile +18 -0
  117. data/lib/extensions/zlib/ext/zlib.c +5 -1
  118. data/lib/framework/autocomplete/Rhodes.rb +1 -1
  119. data/lib/framework/rhodes.rb +1 -1
  120. data/lib/framework/set.rb +799 -0
  121. data/lib/framework/version.rb +1 -1
  122. data/lib/rhodes.rb +1 -1
  123. data/platform/android/Rhodes/AndroidManifest.xml.erb +11 -2
  124. data/platform/android/Rhodes/jni/include/rhodes.h +6 -0
  125. data/platform/android/Rhodes/jni/include/rhodes/RhoClassFactory.h +3 -0
  126. data/platform/android/Rhodes/jni/include/rhodes/SecurityTokenGenerator.h +30 -0
  127. data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +1 -0
  128. data/platform/android/Rhodes/jni/src/JNIRhoRubyCppWrapper.cpp +408 -0
  129. data/platform/android/Rhodes/jni/src/RhoClassFactory.cpp +7 -0
  130. data/platform/android/Rhodes/jni/src/SecurityTokenGenerator.cpp +60 -0
  131. data/platform/android/Rhodes/jni/src/fileapi.cpp +318 -12
  132. data/platform/android/Rhodes/jni/src/mapview.cpp +4 -0
  133. data/platform/android/Rhodes/res/drawable/ic_notification.png +0 -0
  134. data/platform/android/Rhodes/res/xml/network_security_config.xml +7 -0
  135. data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +9 -0
  136. data/platform/android/Rhodes/src/com/rhomobile/rhodes/LocalFileProvider.java +1 -1
  137. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoMain.java +8 -0
  138. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyArrayObjects.java +33 -0
  139. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyClassObject.java +20 -0
  140. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyObject.java +115 -0
  141. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubySingleton.java +52 -0
  142. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyTypes.java +15 -0
  143. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +25 -13
  144. data/platform/android/Rhodes/src/com/rhomobile/rhodes/SecurityTokenGenerator.java +57 -0
  145. data/platform/android/Rhodes/src/com/rhomobile/rhodes/extmanager/RhoExtManagerImpl.java +1 -1
  146. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +9 -2
  147. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +3 -0
  148. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +7 -0
  149. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality11.java +13 -1
  150. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality26.java +105 -0
  151. data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java +4 -1
  152. data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +24 -4
  153. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +20 -1
  154. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +10 -0
  155. data/platform/android/build/Rakefile +30 -1
  156. data/platform/android/build/RhodesSRC_build.files +8 -0
  157. data/platform/android/build/android.rake +326 -22
  158. data/platform/android/build/android_tools.rb +36 -3
  159. data/platform/android/build/androidcommon.rb +97 -44
  160. data/platform/android/build/librhocommon_build.files +11 -0
  161. data/platform/android/build/librhodes_build.files +2 -0
  162. data/platform/android/build/manifest_generator.rb +9 -2
  163. data/platform/android/build/maven_deps_extractor.rb +96 -15
  164. data/platform/android/build/ndkwrapper.rb +111 -16
  165. data/platform/android/build/pom.erb +2 -2
  166. data/platform/iphone/Classes/AppManager/AppManager.m +31 -1
  167. data/platform/iphone/Classes/MapView/GoogleGeocoder.h +3 -3
  168. data/platform/iphone/Classes/RhoMainViewStubImpl.h +38 -0
  169. data/platform/iphone/Classes/RhoMainViewStubImpl.m +88 -0
  170. data/platform/iphone/Classes/RhoUIWebView.h +5 -0
  171. data/platform/iphone/Classes/RhoUIWebView.m +14 -6
  172. data/platform/iphone/Classes/{RhoWKWebView.m → RhoWKWebView.mm} +98 -18
  173. data/platform/iphone/Classes/RhoWebView.h +1 -1
  174. data/platform/iphone/Classes/RhoWebViewFabrique.m +24 -12
  175. data/platform/iphone/Classes/Rhodes.h +7 -2
  176. data/platform/iphone/Classes/Rhodes.m +46 -8
  177. data/platform/iphone/Classes/SimpleMainView.m +22 -13
  178. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.h +32 -3
  179. data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +93 -61
  180. data/platform/iphone/Classes/URLProtocol/CRhoWKURLProtocol.h +22 -0
  181. data/platform/iphone/Classes/URLProtocol/CRhoWKURLProtocol.m +246 -0
  182. data/platform/iphone/Classes/WebView.m +14 -2
  183. data/platform/iphone/Entitlements.plist +1 -1
  184. data/platform/iphone/Framework/RhoApplication/RhoApplication.xcodeproj/project.pbxproj +399 -0
  185. data/platform/iphone/Framework/Rhodes/Rhodes.xcodeproj/project.pbxproj +1208 -0
  186. data/platform/iphone/Framework/Rhodes/Rhodes/Info.plist +24 -0
  187. data/platform/iphone/Framework/Rhodes/Rhodes/Rhodes.h +21 -0
  188. data/platform/iphone/Framework/Rhodes/Rhodes/StubCode.m +15 -0
  189. data/platform/iphone/Info.plist +1 -3
  190. data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +511 -4
  191. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +467 -1
  192. data/platform/iphone/Rhodes.xcodeproj/project.pbxproj +51 -274
  193. data/platform/iphone/RhodesBaseDelegate.h +1 -1
  194. data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +85 -3
  195. data/platform/iphone/rbuild/ApplicationPlist.erb +1 -1
  196. data/platform/iphone/rbuild/iphone.rake +497 -25
  197. data/platform/iphone/rbuild/iphonecommon.rb +15 -6
  198. data/platform/iphone/rhodes_stub.cpp +15 -0
  199. data/platform/iphone/rhodeslib/api/RhodesLib.h +28 -0
  200. data/platform/iphone/rhodeslib/impl/RhodesLib.m +52 -0
  201. data/platform/iphone/rhodesruby/api/IRefCountedObject.h +20 -0
  202. data/platform/iphone/rhodesruby/api/IRhoRuby.h +72 -0
  203. data/platform/iphone/rhodesruby/api/IRhoRubyArray.h +12 -0
  204. data/platform/iphone/rhodesruby/api/IRhoRubyBoolean.h +11 -0
  205. data/platform/iphone/rhodesruby/api/IRhoRubyFloat.h +10 -0
  206. data/platform/iphone/rhodesruby/api/IRhoRubyHash.h +15 -0
  207. data/platform/iphone/rhodesruby/api/IRhoRubyInteger.h +10 -0
  208. data/platform/iphone/rhodesruby/api/IRhoRubyMutableArray.h +9 -0
  209. data/platform/iphone/rhodesruby/api/IRhoRubyMutableBoolean.h +10 -0
  210. data/platform/iphone/rhodesruby/api/IRhoRubyMutableFloat.h +10 -0
  211. data/platform/iphone/rhodesruby/api/IRhoRubyMutableHash.h +10 -0
  212. data/platform/iphone/rhodesruby/api/IRhoRubyMutableInteger.h +10 -0
  213. data/platform/iphone/rhodesruby/api/IRhoRubyMutableString.h +10 -0
  214. data/platform/iphone/rhodesruby/api/IRhoRubyNativeCallback.h +9 -0
  215. data/platform/iphone/rhodesruby/api/IRhoRubyNil.h +10 -0
  216. data/platform/iphone/rhodesruby/api/IRhoRubyObject.h +37 -0
  217. data/platform/iphone/rhodesruby/api/IRhoRubyRunnable.h +8 -0
  218. data/platform/iphone/rhodesruby/api/IRhoRubyString.h +10 -0
  219. data/platform/iphone/rhodesruby/api/RhoRuby.h +26 -0
  220. data/platform/iphone/rhodesruby/api/RhoRubySingletone.h +14 -0
  221. data/platform/iphone/rhodesruby/impl/RhoRubyFabrique.h +10 -0
  222. data/platform/iphone/rhodesruby/impl/RhoRubyImpl.h +56 -0
  223. data/platform/iphone/rhodesruby/impl/RhoRubyImpl.mm +432 -0
  224. data/platform/iphone/rhodesruby/impl/RhoRubyMutableArrayImpl.h +24 -0
  225. data/platform/iphone/rhodesruby/impl/RhoRubyMutableArrayImpl.mm +43 -0
  226. data/platform/iphone/rhodesruby/impl/RhoRubyMutableBooleanImpl.h +23 -0
  227. data/platform/iphone/rhodesruby/impl/RhoRubyMutableBooleanImpl.mm +38 -0
  228. data/platform/iphone/rhodesruby/impl/RhoRubyMutableFloatImpl.h +23 -0
  229. data/platform/iphone/rhodesruby/impl/RhoRubyMutableFloatImpl.mm +35 -0
  230. data/platform/iphone/rhodesruby/impl/RhoRubyMutableHashImpl.h +24 -0
  231. data/platform/iphone/rhodesruby/impl/RhoRubyMutableHashImpl.mm +48 -0
  232. data/platform/iphone/rhodesruby/impl/RhoRubyMutableIntegerImpl.h +23 -0
  233. data/platform/iphone/rhodesruby/impl/RhoRubyMutableIntegerImpl.mm +35 -0
  234. data/platform/iphone/rhodesruby/impl/RhoRubyMutableStringImpl.h +23 -0
  235. data/platform/iphone/rhodesruby/impl/RhoRubyMutableStringImpl.mm +35 -0
  236. data/platform/iphone/rhodesruby/impl/RhoRubyNilImpl.h +22 -0
  237. data/platform/iphone/rhodesruby/impl/RhoRubyNilImpl.mm +11 -0
  238. data/platform/iphone/rhodesruby/impl/RhoRubyObjectImpl.h +31 -0
  239. data/platform/iphone/rhodesruby/impl/RhoRubyObjectImpl.mm +49 -0
  240. data/platform/iphone/rhodesruby/impl/RhoRubySingletone.m +19 -0
  241. data/platform/iphone/rhodesruby/impl/RubyServerResponceImpl.h +21 -0
  242. data/platform/iphone/rhodesruby/impl/RubyServerResponceImpl.mm +32 -0
  243. data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +79 -0
  244. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +91 -0
  245. data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +85 -0
  246. data/platform/osx/bin/RhoSimulator/RhoSimulator.app.zip +0 -0
  247. data/platform/shared/common/IRhoClassFactory.h +2 -0
  248. data/platform/shared/common/ISecurityTokenGenerator.h +16 -0
  249. data/platform/shared/common/RhoFile.cpp +11 -0
  250. data/platform/shared/common/RhoMath.h +14 -0
  251. data/platform/shared/common/RhoMutexLock.h +13 -0
  252. data/platform/shared/common/RhoSystem.h +1 -1
  253. data/platform/shared/common/RhoThread.cpp +25 -0
  254. data/platform/shared/common/RhodesApp.cpp +52 -6
  255. data/platform/shared/common/RhodesApp.h +25 -1
  256. data/platform/shared/common/RhodesAppBase.cpp +4 -2
  257. data/platform/shared/common/RhodesAppBase.h +5 -0
  258. data/platform/shared/common/iphone/RhoClassfactory.h +6 -0
  259. data/platform/shared/common/iphone/RhoCryptImpl.mm +21 -2
  260. data/platform/shared/common/map/BaseMapEngine.cpp +2 -2
  261. data/platform/shared/common/map/GeocodingMapEngine.cpp +1 -1
  262. data/platform/shared/common/map/GoogleMapEngine.cpp +1 -1
  263. data/platform/shared/common/map/OSMMapEngine.cpp +1 -1
  264. data/platform/shared/curl/lib/curl_config.h +28 -0
  265. data/platform/shared/db/DBAdapter.cpp +18 -10
  266. data/platform/shared/json.new/JSONIterator.cpp +2 -2
  267. data/platform/shared/net/HttpServer.cpp +32 -0
  268. data/platform/shared/net/HttpServer.h +15 -0
  269. data/platform/shared/net/INetRequest.cpp +54 -0
  270. data/platform/shared/qt/RhoRubylib.pro +10 -0
  271. data/platform/shared/qt/rhodes/impl/AlertImpl.cpp +13 -0
  272. data/platform/shared/qt/rhodes/impl/CameraImpl.cpp +6 -0
  273. data/platform/shared/qt/rhodes/impl/DateTimePickerImpl.cpp +4 -0
  274. data/platform/shared/qt/rhodes/impl/MainWindowImpl.cpp +36 -7
  275. data/platform/shared/qt/rhodes/impl/MainWindowImpl.h +12 -1
  276. data/platform/shared/qt/rhodes/impl/NativeTabbarImpl.cpp +21 -2
  277. data/platform/shared/qt/rhodes/impl/NativeTabbarImpl.h +1 -0
  278. data/platform/shared/qt/rhodes/impl/NativeToolbarImpl.cpp +10 -0
  279. data/platform/shared/qt/rhodes/impl/QtSystemImpl.cpp +55 -3
  280. data/platform/shared/qt/rhodes/impl/RhoClassFactoryImpl.h +11 -0
  281. data/platform/shared/qt/rhodes/impl/RhoThreadImpl.cpp +71 -7
  282. data/platform/shared/qt/rhodes/impl/RhoThreadImpl.h +79 -2
  283. data/platform/shared/qt/rhodes/impl/RhodesImpl.cpp +16 -6
  284. data/platform/shared/qt/rhodes/impl/SecurityTokenGeneratorImpl.cpp +37 -0
  285. data/platform/shared/qt/rhodes/impl/SecurityTokenGeneratorImpl.h +25 -0
  286. data/platform/shared/qt/rhodes/impl/SignatureImpl.cpp +2 -0
  287. data/platform/shared/qt/rhodes/impl/WebViewImpl.cpp +27 -0
  288. data/platform/shared/qt/rhodes/impl/notificationsound.cpp +16 -2
  289. data/platform/shared/qt/rhodes/impl/notificationsound.h +11 -1
  290. data/platform/shared/qt/rhodes/newVersion/QtMainWindow.cpp +25 -16
  291. data/platform/shared/qt/rhodes/newVersion/QtMainWindow.h +3 -0
  292. data/platform/shared/qt/rhodes/newVersion/WebUrlRequestInterceptor.cpp +17 -0
  293. data/platform/shared/qt/rhodes/rhodes.pro +68 -14
  294. data/platform/shared/qt/rhodes/rhorubyVersion/rhodeslib.cpp +148 -0
  295. data/platform/shared/qt/rhodes/rhorubyVersion/rhodeslib.h +12 -0
  296. data/platform/shared/qt/rholib/rholib.pro +33 -5
  297. data/platform/shared/qt/rhoruby_win32_build.bat +19 -0
  298. data/platform/shared/qt/rhoruby_win32_build_debug.bat +19 -0
  299. data/platform/shared/qt/rhosimulator_win32_build_debug.bat +19 -0
  300. data/platform/shared/qt/rubylib/rubylib.pro +1 -0
  301. data/platform/shared/qt/sqlite3/sqlite3.pro +1 -0
  302. data/platform/shared/qt/syncengine/syncengine.pro +1 -0
  303. data/platform/shared/rhoruby/api/IArray.h +20 -0
  304. data/platform/shared/rhoruby/api/IBoolean.h +17 -0
  305. data/platform/shared/rhoruby/api/IFloat.h +17 -0
  306. data/platform/shared/rhoruby/api/IHash.h +23 -0
  307. data/platform/shared/rhoruby/api/IInteger.h +18 -0
  308. data/platform/shared/rhoruby/api/IMutableArray.h +18 -0
  309. data/platform/shared/rhoruby/api/IMutableBoolean.h +18 -0
  310. data/platform/shared/rhoruby/api/IMutableFloat.h +17 -0
  311. data/platform/shared/rhoruby/api/IMutableHash.h +18 -0
  312. data/platform/shared/rhoruby/api/IMutableInteger.h +17 -0
  313. data/platform/shared/rhoruby/api/IMutableString.h +17 -0
  314. data/platform/shared/rhoruby/api/INil.h +16 -0
  315. data/platform/shared/rhoruby/api/IObject.h +46 -0
  316. data/platform/shared/rhoruby/api/IRefCountedObject.h +20 -0
  317. data/platform/shared/rhoruby/api/IRhoRuby.h +78 -0
  318. data/platform/shared/rhoruby/api/IRunnable.h +17 -0
  319. data/platform/shared/rhoruby/api/IString.h +17 -0
  320. data/platform/shared/rhoruby/api/RhoRuby.h +29 -0
  321. data/platform/shared/rhoruby/api/RhoRubySingletone.h +19 -0
  322. data/platform/shared/rhoruby/api/SmartPointer.h +27 -0
  323. data/platform/shared/rhoruby/impl/MutableArrayImpl.cpp +54 -0
  324. data/platform/shared/rhoruby/impl/MutableArrayImpl.h +48 -0
  325. data/platform/shared/rhoruby/impl/MutableBooleanImpl.cpp +44 -0
  326. data/platform/shared/rhoruby/impl/MutableBooleanImpl.h +44 -0
  327. data/platform/shared/rhoruby/impl/MutableFloatImpl.cpp +41 -0
  328. data/platform/shared/rhoruby/impl/MutableFloatImpl.h +44 -0
  329. data/platform/shared/rhoruby/impl/MutableHashImpl.cpp +64 -0
  330. data/platform/shared/rhoruby/impl/MutableHashImpl.h +49 -0
  331. data/platform/shared/rhoruby/impl/MutableIntegerImpl.cpp +41 -0
  332. data/platform/shared/rhoruby/impl/MutableIntegerImpl.h +44 -0
  333. data/platform/shared/rhoruby/impl/MutableStringImpl.cpp +52 -0
  334. data/platform/shared/rhoruby/impl/MutableStringImpl.h +44 -0
  335. data/platform/shared/rhoruby/impl/NilImpl.cpp +23 -0
  336. data/platform/shared/rhoruby/impl/NilImpl.h +32 -0
  337. data/platform/shared/rhoruby/impl/ObjectImpl.cpp +77 -0
  338. data/platform/shared/rhoruby/impl/ObjectImpl.h +53 -0
  339. data/platform/shared/rhoruby/impl/RefCountedObjectImpl.cpp +28 -0
  340. data/platform/shared/rhoruby/impl/RefCountedObjectImpl.h +33 -0
  341. data/platform/shared/rhoruby/impl/RhoRubyImpl.cpp +799 -0
  342. data/platform/shared/rhoruby/impl/RhoRubyImpl.h +81 -0
  343. data/platform/shared/rhoruby/impl/RhoRubySingletone.cpp +20 -0
  344. data/platform/shared/rhoruby/impl/RubyServerResponceImpl.cpp +32 -0
  345. data/platform/shared/rhoruby/impl/RubyServerResponceImpl.h +21 -0
  346. data/platform/shared/ruby/android/ruby/config.h +55 -3
  347. data/platform/shared/ruby/error.c +1 -1
  348. data/platform/shared/ruby/ext/rho/rhoruby.c +60 -7
  349. data/platform/shared/ruby/ext/rho/rhoruby.h +3 -0
  350. data/platform/shared/rubyext/NativeToolbarExt.h +1 -0
  351. data/platform/uwp/rhodes/rhodes_TemporaryKey.pfx +0 -0
  352. data/platform/uwp/rhoruntime/common/RhoClassFactory.h +6 -0
  353. data/platform/win32/RhoSimulator/Qt5Core.dll +0 -0
  354. data/platform/win32/RhoSimulator/Qt5Gui.dll +0 -0
  355. data/platform/win32/RhoSimulator/Qt5Multimedia.dll +0 -0
  356. data/platform/win32/RhoSimulator/Qt5Network.dll +0 -0
  357. data/platform/win32/RhoSimulator/Qt5Positioning.dll +0 -0
  358. data/platform/win32/RhoSimulator/Qt5PrintSupport.dll +0 -0
  359. data/platform/win32/RhoSimulator/Qt5Qml.dll +0 -0
  360. data/platform/win32/RhoSimulator/Qt5Quick.dll +0 -0
  361. data/platform/win32/RhoSimulator/Qt5QuickWidgets.dll +0 -0
  362. data/platform/win32/RhoSimulator/Qt5SerialPort.dll +0 -0
  363. data/platform/win32/RhoSimulator/Qt5Svg.dll +0 -0
  364. data/platform/win32/RhoSimulator/Qt5WebChannel.dll +0 -0
  365. data/platform/win32/RhoSimulator/Qt5WebEngine.dll +0 -0
  366. data/platform/win32/RhoSimulator/Qt5WebEngineCore.dll +0 -0
  367. data/platform/win32/RhoSimulator/Qt5WebEngineWidgets.dll +0 -0
  368. data/platform/win32/RhoSimulator/Qt5Widgets.dll +0 -0
  369. data/platform/win32/RhoSimulator/QtWebEngineProcess.exe +0 -0
  370. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  371. data/platform/win32/RhoSimulator/audio/qtaudio_wasapi.dll +0 -0
  372. data/platform/win32/RhoSimulator/audio/qtaudio_windows.dll +0 -0
  373. data/platform/win32/RhoSimulator/bearer/qgenericbearer.dll +0 -0
  374. data/platform/win32/RhoSimulator/iconengines/qsvgicon.dll +0 -0
  375. data/platform/win32/RhoSimulator/imageformats/qgif.dll +0 -0
  376. data/platform/win32/RhoSimulator/imageformats/qicns.dll +0 -0
  377. data/platform/win32/RhoSimulator/imageformats/qico.dll +0 -0
  378. data/platform/win32/RhoSimulator/imageformats/qjpeg.dll +0 -0
  379. data/platform/win32/RhoSimulator/imageformats/qsvg.dll +0 -0
  380. data/platform/win32/RhoSimulator/imageformats/qtga.dll +0 -0
  381. data/platform/win32/RhoSimulator/imageformats/qtiff.dll +0 -0
  382. data/platform/win32/RhoSimulator/imageformats/qwbmp.dll +0 -0
  383. data/platform/win32/RhoSimulator/imageformats/qwebp.dll +0 -0
  384. data/platform/win32/RhoSimulator/libEGL.dll +0 -0
  385. data/platform/win32/RhoSimulator/libGLESV2.dll +0 -0
  386. data/platform/win32/RhoSimulator/mediaservice/dsengine.dll +0 -0
  387. data/platform/win32/RhoSimulator/mediaservice/qtmedia_audioengine.dll +0 -0
  388. data/platform/win32/RhoSimulator/mediaservice/wmfengine.dll +0 -0
  389. data/platform/win32/RhoSimulator/platforms/qwindows.dll +0 -0
  390. data/platform/win32/RhoSimulator/playlistformats/qtmultimedia_m3u.dll +0 -0
  391. data/platform/win32/RhoSimulator/position/qtposition_geoclue.dll +0 -0
  392. data/platform/win32/RhoSimulator/position/qtposition_positionpoll.dll +0 -0
  393. data/platform/win32/RhoSimulator/position/qtposition_serialnmea.dll +0 -0
  394. data/platform/win32/RhoSimulator/position/qtposition_winrt.dll +0 -0
  395. data/platform/win32/RhoSimulator/printsupport/windowsprintersupport.dll +0 -0
  396. data/platform/wm/build/wm.rake +110 -5
  397. data/platform/wm/rhodes/rho/common/ExtManager.cpp +30 -0
  398. data/platform/wm/rhodes/rho/common/RhoClassFactory.h +6 -0
  399. data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +3 -0
  400. data/platform/wm/rubylib/rubylib.vcxproj +6 -0
  401. data/platform/wp8/rhoruntime/common/RhoClassFactory.h +6 -0
  402. data/rakefile.rb +14 -10
  403. data/res/build-tools/iphonesim/build/Release/iphonesim_8 +23 -15
  404. data/res/build-tools/maven/LICENSE +18 -89
  405. data/res/build-tools/maven/NOTICE +1 -1
  406. data/res/build-tools/maven/README.txt +12 -12
  407. data/res/build-tools/maven/bin/m2.conf +2 -2
  408. data/res/build-tools/maven/bin/mvn +122 -125
  409. data/res/build-tools/maven/bin/mvn.cmd +205 -0
  410. data/res/build-tools/maven/bin/mvnDebug +10 -176
  411. data/res/build-tools/maven/bin/mvnDebug.cmd +33 -0
  412. data/res/build-tools/maven/bin/mvnyjp +9 -181
  413. data/res/build-tools/maven/boot/plexus-classworlds-2.6.0.jar +0 -0
  414. data/res/build-tools/maven/conf/logging/simplelogger.properties +8 -1
  415. data/res/build-tools/maven/conf/settings.xml +1 -1
  416. data/res/build-tools/maven/conf/toolchains.xml +103 -0
  417. data/res/build-tools/maven/lib/animal-sniffer-annotations-1.14.jar +0 -0
  418. data/res/build-tools/maven/lib/animal-sniffer-annotations.license +14 -0
  419. data/res/build-tools/maven/lib/checker-compat-qual-2.0.0.jar +0 -0
  420. data/res/build-tools/maven/lib/checker-compat-qual.license +14 -0
  421. data/res/build-tools/maven/lib/commons-cli-1.4.jar +0 -0
  422. data/res/build-tools/maven/lib/commons-io-2.5.jar +0 -0
  423. data/res/build-tools/maven/lib/commons-lang3-3.8.1.jar +0 -0
  424. data/res/build-tools/maven/lib/error_prone_annotations-2.1.3.jar +0 -0
  425. data/res/build-tools/maven/lib/guava-25.1-android.jar +0 -0
  426. data/res/build-tools/maven/lib/guice-4.2.1-no_aop.jar +0 -0
  427. data/res/build-tools/maven/lib/j2objc-annotations-1.1.jar +0 -0
  428. data/res/build-tools/maven/lib/jansi-1.17.1.jar +0 -0
  429. data/res/build-tools/maven/lib/jansi-native/README.txt +7 -0
  430. data/res/build-tools/maven/lib/jansi-native/freebsd32/libjansi.so +0 -0
  431. data/res/build-tools/maven/lib/jansi-native/freebsd64/libjansi.so +0 -0
  432. data/res/build-tools/maven/lib/jansi-native/linux32/libjansi.so +0 -0
  433. data/res/build-tools/maven/lib/jansi-native/linux64/libjansi.so +0 -0
  434. data/res/build-tools/maven/lib/jansi-native/osx/libjansi.jnilib +0 -0
  435. data/res/build-tools/maven/lib/jansi-native/windows32/jansi.dll +0 -0
  436. data/res/build-tools/maven/lib/jansi-native/windows64/jansi.dll +0 -0
  437. data/res/build-tools/maven/lib/jcl-over-slf4j-1.7.25.jar +0 -0
  438. data/res/build-tools/maven/lib/jcl-over-slf4j.license +14 -0
  439. data/res/build-tools/maven/lib/jsr250-api.license +383 -405
  440. data/res/build-tools/maven/lib/jsr305-3.0.2.jar +0 -0
  441. data/res/build-tools/maven/lib/maven-artifact-3.6.1.jar +0 -0
  442. data/res/build-tools/maven/lib/maven-builder-support-3.6.1.jar +0 -0
  443. data/res/build-tools/maven/lib/maven-compat-3.6.1.jar +0 -0
  444. data/res/build-tools/maven/lib/maven-core-3.6.1.jar +0 -0
  445. data/res/build-tools/maven/lib/maven-embedder-3.6.1.jar +0 -0
  446. data/res/build-tools/maven/lib/maven-model-3.6.1.jar +0 -0
  447. data/res/build-tools/maven/lib/maven-model-builder-3.6.1.jar +0 -0
  448. data/res/build-tools/maven/lib/maven-plugin-api-3.6.1.jar +0 -0
  449. data/res/build-tools/maven/lib/maven-repository-metadata-3.6.1.jar +0 -0
  450. data/res/build-tools/maven/lib/maven-resolver-api-1.3.3.jar +0 -0
  451. data/res/build-tools/maven/lib/maven-resolver-connector-basic-1.3.3.jar +0 -0
  452. data/res/build-tools/maven/lib/maven-resolver-impl-1.3.3.jar +0 -0
  453. data/res/build-tools/maven/lib/maven-resolver-provider-3.6.1.jar +0 -0
  454. data/res/build-tools/maven/lib/maven-resolver-spi-1.3.3.jar +0 -0
  455. data/res/build-tools/maven/lib/maven-resolver-transport-wagon-1.3.3.jar +0 -0
  456. data/res/build-tools/maven/lib/maven-resolver-util-1.3.3.jar +0 -0
  457. data/res/build-tools/maven/lib/maven-settings-3.6.1.jar +0 -0
  458. data/res/build-tools/maven/lib/maven-settings-builder-3.6.1.jar +0 -0
  459. data/res/build-tools/maven/lib/maven-shared-utils-3.2.1.jar +0 -0
  460. data/res/build-tools/maven/lib/maven-slf4j-provider-3.6.1.jar +0 -0
  461. data/res/build-tools/maven/lib/org.eclipse.sisu.inject-0.3.3.jar +0 -0
  462. data/res/build-tools/maven/lib/org.eclipse.sisu.inject.license +210 -261
  463. data/res/build-tools/maven/lib/org.eclipse.sisu.plexus-0.3.3.jar +0 -0
  464. data/res/build-tools/maven/lib/org.eclipse.sisu.plexus.license +210 -261
  465. data/res/build-tools/maven/lib/plexus-component-annotations-1.7.1.jar +0 -0
  466. data/res/build-tools/maven/lib/plexus-interpolation-1.25.jar +0 -0
  467. data/res/build-tools/maven/lib/plexus-sec-dispatcher-1.4.jar +0 -0
  468. data/res/build-tools/maven/lib/plexus-utils-3.2.0.jar +0 -0
  469. data/res/build-tools/maven/lib/slf4j-api-1.7.25.jar +0 -0
  470. data/res/build-tools/maven/lib/slf4j-api.license +10 -186
  471. data/res/build-tools/maven/lib/wagon-file-3.3.2.jar +0 -0
  472. data/res/build-tools/maven/lib/wagon-http-3.3.2-shaded.jar +0 -0
  473. data/res/build-tools/maven/lib/wagon-provider-api-3.3.2.jar +0 -0
  474. data/res/generators/rhogen.rb +150 -0
  475. data/res/generators/templates/application/AndroidManifest.erb +13 -4
  476. data/res/generators/templates/application/build.yml +9 -0
  477. data/res/generators/templates/application/nodejs_build.yml +1 -1
  478. data/res/generators/templates/application/resources/android/res/xml/network_security_config.xml +7 -0
  479. data/res/generators/templates/application/rhoconfig.txt +13 -6
  480. data/res/generators/templates/application/rhoconfig_rubynode.txt +139 -0
  481. data/res/generators/templates/application/rubynodejs_build.yml +95 -0
  482. data/res/generators/templates/extension/extensions/montana/ext/platform/android/Rakefile +19 -0
  483. data/res/generators/templates/iphone_project/root/Entitlements.plist +1 -1
  484. data/res/generators/templates/iphone_project/root/Info.plist +1 -3
  485. data/res/generators/templates/iphone_project/root/rhorunner_development.entitlements +1 -1
  486. data/res/generators/templates/iphone_project/root/rhorunner_production.entitlements +1 -1
  487. data/rhodes.gemspec +2 -2
  488. data/version +1 -1
  489. metadata +244 -71
  490. data/res/build-tools/maven/bin/mvn.bat +0 -197
  491. data/res/build-tools/maven/bin/mvnDebug.bat +0 -200
  492. data/res/build-tools/maven/boot/plexus-classworlds-2.5.2.jar +0 -0
  493. data/res/build-tools/maven/lib/aether-api-1.0.0.v20140518.jar +0 -0
  494. data/res/build-tools/maven/lib/aether-api.license +0 -261
  495. data/res/build-tools/maven/lib/aether-connector-basic-1.0.0.v20140518.jar +0 -0
  496. data/res/build-tools/maven/lib/aether-connector-basic.license +0 -261
  497. data/res/build-tools/maven/lib/aether-impl-1.0.0.v20140518.jar +0 -0
  498. data/res/build-tools/maven/lib/aether-impl.license +0 -261
  499. data/res/build-tools/maven/lib/aether-spi-1.0.0.v20140518.jar +0 -0
  500. data/res/build-tools/maven/lib/aether-spi.license +0 -261
  501. data/res/build-tools/maven/lib/aether-transport-wagon-1.0.0.v20140518.jar +0 -0
  502. data/res/build-tools/maven/lib/aether-transport-wagon.license +0 -261
  503. data/res/build-tools/maven/lib/aether-util-1.0.0.v20140518.jar +0 -0
  504. data/res/build-tools/maven/lib/aether-util.license +0 -261
  505. data/res/build-tools/maven/lib/cdi-api.license +0 -445
  506. data/res/build-tools/maven/lib/commons-cli-1.2.jar +0 -0
  507. data/res/build-tools/maven/lib/commons-io-2.2.jar +0 -0
  508. data/res/build-tools/maven/lib/commons-lang-2.6.jar +0 -0
  509. data/res/build-tools/maven/lib/guava-18.0.jar +0 -0
  510. data/res/build-tools/maven/lib/jsoup-1.7.2.jar +0 -0
  511. data/res/build-tools/maven/lib/jsoup.license +0 -66
  512. data/res/build-tools/maven/lib/maven-aether-provider-3.2.5.jar +0 -0
  513. data/res/build-tools/maven/lib/maven-aether-provider.license +0 -202
  514. data/res/build-tools/maven/lib/maven-artifact-3.2.5.jar +0 -0
  515. data/res/build-tools/maven/lib/maven-artifact.license +0 -202
  516. data/res/build-tools/maven/lib/maven-compat-3.2.5.jar +0 -0
  517. data/res/build-tools/maven/lib/maven-compat.license +0 -202
  518. data/res/build-tools/maven/lib/maven-core-3.2.5.jar +0 -0
  519. data/res/build-tools/maven/lib/maven-core.license +0 -202
  520. data/res/build-tools/maven/lib/maven-embedder-3.2.5.jar +0 -0
  521. data/res/build-tools/maven/lib/maven-embedder.license +0 -202
  522. data/res/build-tools/maven/lib/maven-model-3.2.5.jar +0 -0
  523. data/res/build-tools/maven/lib/maven-model-builder-3.2.5.jar +0 -0
  524. data/res/build-tools/maven/lib/maven-model-builder.license +0 -202
  525. data/res/build-tools/maven/lib/maven-model.license +0 -202
  526. data/res/build-tools/maven/lib/maven-plugin-api-3.2.5.jar +0 -0
  527. data/res/build-tools/maven/lib/maven-plugin-api.license +0 -202
  528. data/res/build-tools/maven/lib/maven-repository-metadata-3.2.5.jar +0 -0
  529. data/res/build-tools/maven/lib/maven-repository-metadata.license +0 -202
  530. data/res/build-tools/maven/lib/maven-settings-3.2.5.jar +0 -0
  531. data/res/build-tools/maven/lib/maven-settings-builder-3.2.5.jar +0 -0
  532. data/res/build-tools/maven/lib/maven-settings-builder.license +0 -202
  533. data/res/build-tools/maven/lib/maven-settings.license +0 -202
  534. data/res/build-tools/maven/lib/org.eclipse.sisu.inject-0.3.0.M1.jar +0 -0
  535. data/res/build-tools/maven/lib/org.eclipse.sisu.plexus-0.3.0.M1.jar +0 -0
  536. data/res/build-tools/maven/lib/plexus-cipher.license +0 -445
  537. data/res/build-tools/maven/lib/plexus-component-annotations-1.5.5.jar +0 -0
  538. data/res/build-tools/maven/lib/plexus-interpolation-1.21.jar +0 -0
  539. data/res/build-tools/maven/lib/plexus-sec-dispatcher-1.3.jar +0 -0
  540. data/res/build-tools/maven/lib/plexus-sec-dispatcher.license +0 -445
  541. data/res/build-tools/maven/lib/plexus-utils-3.0.20.jar +0 -0
  542. data/res/build-tools/maven/lib/sisu-guice-3.2.3-no_aop.jar +0 -0
  543. data/res/build-tools/maven/lib/slf4j-api-1.7.5.jar +0 -0
  544. data/res/build-tools/maven/lib/slf4j-simple-1.7.5.jar +0 -0
  545. data/res/build-tools/maven/lib/slf4j-simple.license +0 -190
  546. data/res/build-tools/maven/lib/wagon-file-2.8.jar +0 -0
  547. data/res/build-tools/maven/lib/wagon-file.license +0 -202
  548. data/res/build-tools/maven/lib/wagon-http-2.8-shaded.jar +0 -0
  549. data/res/build-tools/maven/lib/wagon-http-shared-2.8.jar +0 -0
  550. data/res/build-tools/maven/lib/wagon-http-shared.license +0 -202
  551. data/res/build-tools/maven/lib/wagon-http.license +0 -202
  552. data/res/build-tools/maven/lib/wagon-provider-api-2.8.jar +0 -0
  553. data/res/build-tools/maven/lib/wagon-provider-api.license +0 -202
@@ -19,6 +19,13 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java
19
19
  platform/android/Rhodes/src/com/rhomobile/rhodes/PasswordDialog.java
20
20
  platform/android/Rhodes/src/com/rhomobile/rhodes/RingtoneManager.java
21
21
  platform/android/Rhodes/src/com/rhomobile/rhodes/WebView.java
22
+ platform/android/Rhodes/src/com/rhomobile/rhodes/SecurityTokenGenerator.java
23
+ platform/android/Rhodes/src/com/rhomobile/rhodes/RhoMain.java
24
+ platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyArrayObjects.java
25
+ platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyClassObject.java
26
+ platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyObject.java
27
+ platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubySingleton.java
28
+ platform/android/Rhodes/src/com/rhomobile/rhodes/RhoRubyTypes.java
22
29
  platform/android/Rhodes/src/com/rhomobile/rhodes/api/IMethodResult.java
23
30
  platform/android/Rhodes/src/com/rhomobile/rhodes/api/IRhoApiDefaultId.java
24
31
  platform/android/Rhodes/src/com/rhomobile/rhodes/api/IRhoApiFactory.java
@@ -120,5 +127,6 @@ platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunction
120
127
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality09.java
121
128
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality10.java
122
129
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality11.java
130
+ platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality26.java
123
131
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java
124
132
  platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/OsVersionManager.java
@@ -39,6 +39,7 @@ require 'tempfile'
39
39
  include FileUtils
40
40
 
41
41
  USE_OWN_STLPORT = false
42
+ $rhodes_as_lib = false
42
43
  #USE_TRACES = # see androidcommon.rb
43
44
 
44
45
  def get_market_version(apilevel)
@@ -80,9 +81,14 @@ ANDROID_CAPS_ALWAYS_ENABLED = ['network_state']
80
81
 
81
82
  def set_app_icon_android
82
83
 
84
+ if $rhodes_as_lib
85
+ puts "Skip building copy resources (not needed for aar library)"
86
+ return
87
+ end
88
+
83
89
  res_path = File.join($app_path, 'resources', 'android', 'res')
84
90
  if File.exists? res_path
85
- # NEW resource - just copy it to res folder
91
+ # NEW resource - just copy it to res folder -->>
86
92
  puts "add resources from application'sresource folder [#{res_path}] to [#{$tmpdir}]"
87
93
  cp_r res_path, $tmpdir
88
94
 
@@ -149,6 +155,10 @@ def set_app_name_android(newname)
149
155
  rm_rf $appres
150
156
  cp_r $rhores, $appres
151
157
 
158
+ buildToolsVerMajor = $build_tools_ver.split('.')[0].to_i
159
+ canRenderNetworkSecurityConfig = (($found_api_level.to_i >= 24) && (buildToolsVerMajor>=24))
160
+ rm_rf File.join($appres, 'xml', 'network_security_config.xml') if(!canRenderNetworkSecurityConfig)
161
+
152
162
  rhostrings = File.join($rhores, "values", "strings.xml")
153
163
  appstrings = File.join($appres, "values", "strings.xml")
154
164
  doc = REXML::Document.new(File.new(rhostrings))
@@ -156,6 +166,17 @@ def set_app_name_android(newname)
156
166
  File.open(appstrings, "w") { |f| doc.write f }
157
167
  end
158
168
 
169
+ def set_app_name_android_post(newname)
170
+ puts "set_app_name_post"
171
+
172
+ Dir.glob(File.join($appres, '**', 'strings.xml')).each do |res|
173
+ doc = REXML::Document.new(File.new(res))
174
+ doc.elements["resources/string[@name='app_name']"].text = newname
175
+ rm_rf res
176
+ File.open(res, "w") { |f| doc.write f }
177
+ end
178
+ end
179
+
159
180
 
160
181
  def get_boolean(arg)
161
182
  arg == 'true' or arg == 'yes' or arg == 'enabled' or arg == 'enable' or arg == '1'
@@ -443,7 +464,7 @@ def setup_ext_env( extpath, extname )
443
464
  env["RHO_APP_DIR"] = $app_path
444
465
  env["ANDROID_SDK"] = $androidsdkpath
445
466
  env["ANDROID_NDK"] = $androidndkpath
446
- env["ANDROID_API_LEVEL"] = $found_api_level.to_s
467
+ env["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
447
468
  env["RHO_ROOT"] = $startdir
448
469
  env["BUILD_DIR"] ||= $startdir + "/platform/android/build"
449
470
  env["RHO_INC"] = $appincdir
@@ -461,6 +482,30 @@ def setup_ext_env( extpath, extname )
461
482
  env
462
483
  end
463
484
 
485
+ def get_android_major_minor(version)
486
+ puts version
487
+ if version.include? '.' then
488
+ array_ver = []
489
+ array_ver = version.split('.')
490
+ if array_ver.length >= 2 then
491
+ $major_version = array_ver[0].to_i
492
+ $minor_version = array_ver[1].to_i
493
+ end
494
+ return
495
+ end
496
+
497
+ $major_version = version.to_i
498
+ end
499
+
500
+ def get_case_insensetive_property(property)
501
+ $app_config["android"].each do |x|
502
+ if (x[0].downcase == property.downcase)
503
+ return x[1]
504
+ end
505
+ end
506
+ return nil
507
+ end
508
+
464
509
  namespace "config" do
465
510
  task :set_android_platform do
466
511
  $current_platform = "android"
@@ -500,15 +545,18 @@ namespace "config" do
500
545
  end
501
546
  end
502
547
 
503
- $min_sdk_level = $app_config["android"]["minSDK"] unless $app_config["android"].nil?
504
- $min_sdk_level = $config["android"]["minSDK"] if $min_sdk_level.nil? and not $config["android"].nil?
548
+ $min_sdk_level = get_case_insensetive_property("minSDK") unless $app_config["android"].nil?
549
+ $min_sdk_level = get_case_insensetive_property("minSDK") if $min_sdk_level.nil? and not $config["android"].nil?
550
+ $min_sdk_level = get_case_insensetive_property("minSdkVer") if $min_sdk_level.nil?
505
551
  $min_sdk_level = $min_sdk_level.to_i unless $min_sdk_level.nil?
506
552
  $min_sdk_level = ANDROID_MIN_SDK_LEVEL if $min_sdk_level.nil?
507
553
 
508
-
509
- $target_sdk_level = $app_config["android"]["targetSDK"] unless $app_config["android"].nil?
510
- $target_sdk_level = $config["android"]["targetSDK"] if $target_sdk_level.nil? and not $config["android"].nil?
554
+
555
+ $target_sdk_level = get_case_insensetive_property("targetSdk") unless $app_config["android"].nil?
556
+ $target_sdk_level = get_case_insensetive_property("targetSdk") if $target_sdk_level.nil? and not $config["android"].nil?
557
+ $target_sdk_level = get_case_insensetive_property("targetSdkVer") if $target_sdk_level.nil?
511
558
  $target_sdk_level = $target_sdk_level.to_i unless $target_sdk_level.nil?
559
+
512
560
  $target_sdk_level = ANDROID_SDK_LEVEL if $target_sdk_level.nil?
513
561
 
514
562
  $max_sdk_level = $app_config["android"]["maxSDK"] unless $app_config["android"].nil?
@@ -531,6 +579,18 @@ namespace "config" do
531
579
  #If user has mentioned version under android, then select that particular api level.
532
580
  if $app_config["android"]["version"]
533
581
  apilevel = AndroidTools.get_api_level $app_config["android"]["version"]
582
+ version = $app_config["android"]["version"]
583
+ $major_version = 0
584
+ $minor_version = 0
585
+ get_android_major_minor(version)
586
+
587
+ market_version = AndroidTools.get_market_version($target_sdk_level)
588
+ if market_version.nil?
589
+ apilevel = android_api_levels.last
590
+ else
591
+ apilevel = $target_sdk_level
592
+ end
593
+
534
594
  if(!apilevel)
535
595
  apilevel = AndroidTools.get_api_level ($app_config["android"]["version"] + ".0")
536
596
  end
@@ -598,6 +658,7 @@ namespace "config" do
598
658
 
599
659
  $rhores = File.join $androidpath, 'Rhodes','res'
600
660
  $appres = File.join $tmpdir,'res'
661
+ $appres_flats = File.join $tmpdir,'flats'
601
662
  $appassets = $srcdir
602
663
  $applibs = File.join $tmpdir,'lib'
603
664
 
@@ -677,11 +738,13 @@ namespace "config" do
677
738
  end
678
739
  end
679
740
 
741
+ $aapt2 = nil
680
742
  if build_tools_path
681
743
  puts "Using Android SDK build-tools: #{build_tools_path}"
682
744
  build_tools_path = File.join $androidsdkpath,'build-tools',build_tools_path
683
745
  $dxjar = File.join(build_tools_path,'lib','dx.jar')
684
746
  $aapt = File.join(build_tools_path, "aapt#{$exe_ext}")
747
+ $aapt2 = File.join(build_tools_path, "aapt2#{$exe_ext}")
685
748
  else
686
749
  $dxjar = File.join($androidsdkpath, "platforms", $androidplatform, "tools", "lib", "dx.jar")
687
750
  $dxjar = File.join($androidsdkpath, "platform-tools", "lib", "dx.jar") unless File.exists? $dxjar
@@ -1173,6 +1236,53 @@ end
1173
1236
  namespace "build" do
1174
1237
  namespace "android" do
1175
1238
 
1239
+ task :rhodeslib_bundle, [:target_path] => ["config:set_android_platform", "config:common"] do |t, args|
1240
+ print_timestamp('build:android:rhodeslib_bundle START')
1241
+ target_path = args[:target_path]
1242
+
1243
+ $skip_build_rhodes_main = true
1244
+ $skip_build_extensions = true
1245
+ $skip_build_xmls = true
1246
+ $use_prebuild_data = true
1247
+
1248
+ Rake::Task['config:android'].invoke
1249
+
1250
+ appname = $app_config["name"] ? $app_config["name"] : "rhorunner"
1251
+ appname_fixed = appname.split(/[^a-zA-Z0-9]/).map { |w| w }.join("")
1252
+
1253
+ Rake::Task['build:android:rhobundle'].invoke
1254
+
1255
+ mkdir_p target_path if not File.exists? target_path
1256
+
1257
+ source_RhoBundle = $appassets
1258
+
1259
+ rm_rf File.join(target_path, "apps") if File.exists? File.join(target_path, "apps")
1260
+ rm_rf File.join(target_path, "db") if File.exists? File.join(target_path, "db")
1261
+ rm_rf File.join(target_path, "lib") if File.exists? File.join(target_path, "lib")
1262
+ rm_rf File.join(target_path, "hash") if File.exists? File.join(target_path, "hash")
1263
+ rm_rf File.join(target_path, "name") if File.exists? File.join(target_path, "name")
1264
+ rm_rf File.join(target_path, "rho.dat") if File.exists? File.join(target_path, "rho.dat")
1265
+
1266
+ cp_r File.join(source_RhoBundle, "apps"), target_path
1267
+ cp_r File.join(source_RhoBundle, "db"), target_path
1268
+ cp_r File.join(source_RhoBundle, "lib"), target_path
1269
+ cp_r File.join(source_RhoBundle, "hash"), target_path
1270
+ cp_r File.join(source_RhoBundle, "name"), target_path
1271
+ cp_r File.join(source_RhoBundle, "rho.dat"), target_path
1272
+
1273
+ print_timestamp('build:android:rhodeslib_bundle FINISH')
1274
+ end
1275
+
1276
+ task :rhodeslib_lib, [:target_path] => [:rhobundle] do |t, args|
1277
+ print_timestamp('build:android:rhodeslib_lib START')
1278
+ $rhodes_as_lib = true
1279
+ Rake::Task["package:android"].invoke
1280
+ target_path = args[:target_path]
1281
+ cp_r File.join($bindir, "#{$appname}-#{$app_config["version"]}.aar"), target_path
1282
+ print_timestamp('build:android:rhodeslib_lib FINISH')
1283
+ end
1284
+
1285
+
1176
1286
  desc "Build RhoBundle for android"
1177
1287
  task :rhobundle => ["config:android"] do
1178
1288
  print_timestamp('build:android:rhobundle START')
@@ -1219,7 +1329,7 @@ namespace "build" do
1219
1329
  ENV["RHO_APP_DIR"] = $app_path
1220
1330
  ENV["ANDROID_SDK"] = $androidsdkpath
1221
1331
  ENV["ANDROID_NDK"] = $androidndkpath
1222
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1332
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1223
1333
  ENV["RHO_ROOT"] = $startdir
1224
1334
  ENV["BUILD_DIR"] ||= $startdir + "/platform/android/build"
1225
1335
  ENV["RHO_INC"] = $appincdir
@@ -1276,6 +1386,8 @@ namespace "build" do
1276
1386
  args << '--trace' if USE_TRACES
1277
1387
  end
1278
1388
 
1389
+ #puts "builddata: " + builddata[1] + " args: " + args.to_s + " builddata0: " + builddata[0].to_s
1390
+ #puts ENV.to_s
1279
1391
  cc_run(builddata[1], args, builddata[0], false, nil, USE_TRACES) or raise "Extension build failed: #{builddata[0]}"
1280
1392
  else
1281
1393
  currentdir = Dir.pwd()
@@ -1364,7 +1476,7 @@ namespace "build" do
1364
1476
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1365
1477
  ENV['SOURCELIST'] = File.join($builddir, 'libsqlite_build.files')
1366
1478
  ENV["ANDROID_NDK"] = $androidndkpath
1367
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1479
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1368
1480
  ENV["RHO_ROOT"] = $startdir
1369
1481
  ENV["RHO_INC"] = $appincdir
1370
1482
  ENV["TARGETPATH"] = File.dirname($libname["sqlite"])
@@ -1408,7 +1520,7 @@ namespace "build" do
1408
1520
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1409
1521
  ENV['SOURCELIST'] = File.join($builddir, 'libcurl_build.files')
1410
1522
  ENV["ANDROID_NDK"] = $androidndkpath
1411
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1523
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1412
1524
  ENV["RHO_ROOT"] = $startdir
1413
1525
  ENV["RHO_INC"] = $appincdir
1414
1526
  ENV["TARGETPATH"] = File.dirname($libname["curl"])
@@ -1446,11 +1558,12 @@ namespace "build" do
1446
1558
  args << "-I\"#{srcdir}\""
1447
1559
  args << "-I\"#{srcdir}/..\""
1448
1560
  args << "-I\"#{srcdir}/../sqlite\""
1561
+ #args << "-I\"#{$startdir}/platform/android/Rhodes/jni/include\""
1449
1562
 
1450
1563
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1451
1564
  ENV['SOURCELIST'] = File.join($builddir, 'libruby_build.files')
1452
1565
  ENV["ANDROID_NDK"] = $androidndkpath
1453
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1566
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1454
1567
  ENV["RHO_ROOT"] = $startdir
1455
1568
  ENV["RHO_INC"] = $appincdir
1456
1569
  ENV["TARGETPATH"] = File.dirname($libname["ruby"])
@@ -1484,7 +1597,7 @@ namespace "build" do
1484
1597
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1485
1598
  ENV['SOURCELIST'] = File.join($builddir, 'libjson_build.files')
1486
1599
  ENV["ANDROID_NDK"] = $androidndkpath
1487
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1600
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1488
1601
  ENV["RHO_ROOT"] = $startdir
1489
1602
  ENV["RHO_INC"] = $appincdir
1490
1603
  ENV["TARGETPATH"] = File.dirname($libname["json"])
@@ -1517,7 +1630,7 @@ namespace "build" do
1517
1630
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1518
1631
  ENV['SOURCELIST'] = File.join($builddir, 'librholog_build.files')
1519
1632
  ENV["ANDROID_NDK"] = $androidndkpath
1520
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1633
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1521
1634
  ENV["RHO_ROOT"] = $startdir
1522
1635
  ENV["RHO_INC"] = $appincdir
1523
1636
  ENV["TARGETPATH"] = File.dirname($libname['rholog'])
@@ -1551,7 +1664,7 @@ namespace "build" do
1551
1664
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1552
1665
  ENV['SOURCELIST'] = File.join($builddir, 'librhomain_build.files')
1553
1666
  ENV["ANDROID_NDK"] = $androidndkpath
1554
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1667
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1555
1668
  ENV["RHO_ROOT"] = $startdir
1556
1669
  ENV["RHO_INC"] = $appincdir
1557
1670
  ENV["TARGETPATH"] = File.dirname($libname['rhomain'])
@@ -1586,7 +1699,7 @@ namespace "build" do
1586
1699
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1587
1700
  ENV['SOURCELIST'] = File.join($builddir, 'librhocommon_build.files')
1588
1701
  ENV["ANDROID_NDK"] = $androidndkpath
1589
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1702
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1590
1703
  ENV["RHO_ROOT"] = $startdir
1591
1704
  ENV["RHO_INC"] = $appincdir
1592
1705
  ENV["TARGETPATH"] = File.dirname($libname['rhocommon'])
@@ -1623,7 +1736,7 @@ namespace "build" do
1623
1736
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1624
1737
  ENV['SOURCELIST'] = File.join($builddir, 'librhodb_build.files')
1625
1738
  ENV["ANDROID_NDK"] = $androidndkpath
1626
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1739
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1627
1740
  ENV["RHO_ROOT"] = $startdir
1628
1741
  ENV["RHO_INC"] = $appincdir
1629
1742
  ENV["TARGETPATH"] = File.dirname($libname['rhodb'])
@@ -1658,7 +1771,7 @@ namespace "build" do
1658
1771
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1659
1772
  ENV['SOURCELIST'] = File.join($builddir, 'librhosync_build.files')
1660
1773
  ENV["ANDROID_NDK"] = $androidndkpath
1661
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1774
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1662
1775
  ENV["RHO_ROOT"] = $startdir
1663
1776
  ENV["RHO_INC"] = $appincdir
1664
1777
  ENV["TARGETPATH"] = File.dirname($libname['rhosync'])
@@ -1769,7 +1882,7 @@ namespace "build" do
1769
1882
  ENV['SOURCEPATH'] = File.join($androidpath,'..','..')
1770
1883
  ENV['SOURCELIST'] = File.join($builddir, 'librhodes_build.files')
1771
1884
  ENV["ANDROID_NDK"] = $androidndkpath
1772
- ENV["ANDROID_API_LEVEL"] = $found_api_level.to_s
1885
+ ENV["ANDROID_API_LEVEL"] = $min_sdk_level.to_s
1773
1886
  ENV["RHO_ROOT"] = $startdir
1774
1887
  ENV["RHO_INC"] = $appincdir
1775
1888
  ENV["TARGETPATH"] = File.join $app_builddir, 'librhodes', 'lib'
@@ -1885,7 +1998,7 @@ namespace "build" do
1885
1998
 
1886
1999
  version = version["major"]*1000000 + version["minor"]*10000 + version["patch"]*100 + version["build"]
1887
2000
 
1888
- usesPermissions = ['android.permission.INTERNET', 'android.permission.PERSISTENT_ACTIVITY', 'android.permission.WAKE_LOCK']
2001
+ usesPermissions = ['android.permission.RECEIVE_BOOT_COMPLETED', 'android.permission.INTERNET', 'android.permission.PERSISTENT_ACTIVITY', 'android.permission.WAKE_LOCK']
1889
2002
  $app_config["capabilities"].each do |cap|
1890
2003
  cap = ANDROID_PERMISSIONS[cap]
1891
2004
  next if cap.nil?
@@ -1920,6 +2033,10 @@ namespace "build" do
1920
2033
  generator.hardwareAcceleration = true if $app_config["capabilities"].index('hardware_acceleration')
1921
2034
  generator.apikey = $gapikey if $gapikey
1922
2035
  generator.debuggable = $debug
2036
+ generator.buildSdkVer = $found_api_level
2037
+ generator.buildToolsVer = $build_tools_ver
2038
+ generator.androidVerMaj = $major_version
2039
+ generator.androidVerMin = $minor_version
1923
2040
 
1924
2041
  generator.addUriParams $uri_scheme, $uri_host, $uri_path_prefix
1925
2042
 
@@ -2034,6 +2151,8 @@ namespace "build" do
2034
2151
  end
2035
2152
  end
2036
2153
 
2154
+ set_app_name_android_post($appname)
2155
+
2037
2156
  #copy icon after extension resources in case it overwrites them (like rhoelementsext...)
2038
2157
  set_app_icon_android
2039
2158
 
@@ -2047,11 +2166,21 @@ namespace "build" do
2047
2166
  mkdir_p File.join($applibs,'armeabi')
2048
2167
  mkdir_p File.join($applibs,'armeabi-v7a')
2049
2168
  mkdir_p File.join($applibs,'x86')
2169
+ mkdir_p File.join($applibs,'arm64-v8a')
2170
+
2050
2171
  # Add .so libraries
2051
2172
  Dir.glob($app_builddir + "/**/lib*.so").each do |lib|
2052
2173
  arch = File.basename(File.dirname(lib))
2053
2174
  file = File.basename(lib)
2175
+ arch = 'arm64-v8a' if arch == "aarch64"
2054
2176
  cp_r lib, File.join($applibs,arch,file)
2177
+
2178
+ localabi = arch
2179
+ localabi = "armeabi-v7a" if arch == "armeabi"
2180
+ llvm_stl = File.join($androidndkpath, "sources", "cxx-stl", "llvm-libc++", "libs", localabi, "libc++_shared.so")
2181
+ if File.exists? llvm_stl
2182
+ cp_r llvm_stl, File.join($applibs,arch)
2183
+ end
2055
2184
  end
2056
2185
  $ext_android_additional_lib.each do |lib|
2057
2186
  arch = File.basename(File.dirname(lib))
@@ -2169,12 +2298,57 @@ namespace "build" do
2169
2298
 
2170
2299
  puts "Generate initial R.java at #{$app_rjava_dir}"
2171
2300
 
2172
- args = ["package", "-f", "-M", $appmanifest, "-S", $appres, "-A", $appassets, "-I", $androidjar, "-J", $app_rjava_dir]
2173
- args += AndroidTools::MavenDepsExtractor.instance.aapt_args
2301
+ if ($rhodes_as_lib)
2302
+ puts $appres.to_s
2303
+ puts $app_rjava_dir.to_s
2304
+
2305
+ mkdir_p $appres_flats
2306
+
2307
+ Dir.glob(File.join($appres,'**','*.*')) do |filepath|
2308
+ args = ["compile", PathToWindowsWay(filepath), "-o", PathToWindowsWay($appres_flats)]
2309
+ args << '-v' if USE_TRACES
2310
+ Jake.run($aapt2, args)
2311
+ end
2312
+
2313
+ flat_args = []
2314
+ Dir.glob(File.join($appres_flats,'**','*.flat')) do |filepath|
2315
+ flat_args << PathToWindowsWay(filepath)
2316
+ end
2317
+
2318
+ FormatManifestToAapt2Compat($appmanifest)
2319
+
2320
+ args =
2321
+ [
2322
+ "link",
2323
+ "-o", PathToWindowsWay(File.join($bindir, "_tmp.aar")),
2324
+ "-I", PathToWindowsWay($androidjar)
2325
+ ]
2326
+ args += flat_args
2327
+ args +=
2328
+ [
2329
+ "--manifest", PathToWindowsWay($appmanifest),
2330
+ "-A", PathToWindowsWay($appassets),
2331
+ "--java", PathToWindowsWay($app_rjava_dir),
2332
+ "--output-text-symbols", PathToWindowsWay(File.join($app_rjava_dir, 'R.txt'))
2333
+ ]
2334
+ #args += AndroidTools::MavenDepsExtractor.instance.aapt_args
2335
+ else
2336
+
2337
+ args = ["package", "-f", "-M", $appmanifest, "-S", $appres, "-A", $appassets, "-I", $androidjar, "-J", $app_rjava_dir]
2338
+ args += AndroidTools::MavenDepsExtractor.instance.aapt_args
2339
+ end
2174
2340
 
2175
2341
  args << '-v' if USE_TRACES
2176
2342
 
2177
- Jake.run($aapt, args)
2343
+ if ($rhodes_as_lib)
2344
+ require 'nokogiri'
2345
+ FormatManifestToAarCompat($appmanifest)
2346
+ Jake.run($aapt2, args)
2347
+ cp_r File.join($app_rjava_dir, 'com', $vendor, $appname, 'R.java'), File.join($app_rjava_dir, 'R.java')
2348
+ rm_rf File.join($app_rjava_dir, 'com', $vendor, $appname, 'R.java')
2349
+ else
2350
+ Jake.run($aapt, args)
2351
+ end
2178
2352
 
2179
2353
  raise 'Error in AAPT: R.java' unless $?.success?
2180
2354
 
@@ -2489,9 +2663,139 @@ namespace "build" do
2489
2663
  end
2490
2664
  end
2491
2665
 
2666
+ def FormatManifestToAarCompat(path)
2667
+ doc = File.open(path) { |f| Nokogiri::XML(f) }
2668
+ root = doc.xpath("//manifest/*")
2669
+ application = root.xpath("//application/*")
2670
+
2671
+ doc2 = doc.xpath("//manifest")
2672
+ doc2[0].remove_attribute("versionCode")
2673
+ doc2[0].remove_attribute("installLocation")
2674
+ doc2[0]["xmlns:tools"] = "http://schemas.android.com/tools"
2675
+
2676
+ root.each do |node|
2677
+ node["tools:node"] = "merge" if node.name.to_s == 'uses-permission'
2678
+ node["tools:node"] = "merge" if node.name.to_s == 'uses-feature'
2679
+ if node.name.to_s == 'application'
2680
+ node["tools:node"] = "merge"
2681
+ node.remove_attribute("name")
2682
+ node.remove_attribute("label")
2683
+ node.remove_attribute("icon")
2684
+ end
2685
+ end
2686
+
2687
+ application.each do |node|
2688
+ node["tools:node"] = "merge"
2689
+ if node["android:name"] == 'com.rhomobile.rhodes.RhodesActivity'
2690
+ intent_filters = node.xpath(".//*/*")
2691
+ intent_filters.each do |child|
2692
+ if child["android:name"] == 'android.intent.action.MAIN'
2693
+ child.parent.remove
2694
+ end
2695
+ end
2696
+ end
2697
+ end
2698
+
2699
+ new_doc = Nokogiri::XML::Document.parse(doc.to_s, nil, "UTF-8")
2700
+ File.open(path, "w") {|file| file << new_doc.to_xml }
2701
+ end
2702
+
2703
+
2704
+ def prepare_aar_package
2705
+ alljars = Dir.glob(File.join($app_builddir, '**', '*.jar'))
2706
+ #alljars += AndroidTools::MavenDepsExtractor.instance.jars
2707
+
2708
+ require 'set'
2709
+ unique_jars = Set.new
2710
+
2711
+ args = ['cvf', 'classes.jar', '-C', '.', '.']
2712
+ jarNamesCounter = 0
2713
+
2714
+ $allclasses = File.join($tmpdir, 'allclasses')
2715
+ mkdir_p $allclasses
2716
+
2717
+ puts "Creating classes.jar for aar package"
2718
+
2719
+ if File.exist?(File.join($allclasses, 'classes.jar'))
2720
+ rm_rf File.join($allclasses, 'classes.jar')
2721
+ end
2722
+
2723
+ alljars.each do |jar|
2724
+ Zip::File.open(jar) do |archive|
2725
+ archive.glob("**/*.*").each do |pfile|
2726
+ next if !(pfile.name =~ /.*\.class$/)
2727
+ target = File.join($allclasses, pfile.name)
2728
+ mkdir_p File.dirname(target)
2729
+ rm target if File.file?(target)
2730
+ archive.extract( pfile, File.join(target) )
2731
+ end
2732
+ end
2733
+ end
2734
+
2735
+ rm_rf File.join($allclasses, 'com', $vendor , $appname)
2736
+
2737
+ Jake.run($jarbin, args, $allclasses)
2738
+
2739
+ unless $?.success?
2740
+ raise "Error while creating classes.jar"
2741
+ end
2742
+
2743
+ resourcepkg = File.join($bindir, "#{$appname}-#{$app_config["version"]}.aar")
2744
+
2745
+ args = ["cvf", resourcepkg, 'classes.jar']
2746
+ Jake.run($jarbin, args, $allclasses)
2747
+ unless $?.success?
2748
+ raise "Error packaging classes.jar file"
2749
+ end
2750
+
2751
+ #args = ["uf", resourcepkg, '-C', '.', 'assets']
2752
+ #Jake.run($jarbin, args, $tmpdir)
2753
+ #unless $?.success?
2754
+ # raise "Error packaging classes.jar file"
2755
+ #end
2756
+
2757
+ mkdir_p File.join($tmpdir, 'jni')
2758
+
2759
+ Dir.glob(File.join($tmpdir, 'lib', '*')).each do |lib|
2760
+ cp_r lib, File.join($tmpdir, 'jni')
2761
+ end
2762
+
2763
+ args = ["uf", resourcepkg]
2764
+ Dir.glob(File.join(File.join($tmpdir, 'jni'),'**','lib*.so')).each do |jni|
2765
+ arch = File.basename(File.dirname(jni))
2766
+ args << "jni/#{arch}/#{File.basename(jni)}"
2767
+ end
2768
+ Jake.run($jarbin, args, $tmpdir)
2769
+ unless $?.success?
2770
+ raise "Error packaging native libraries"
2771
+ end
2772
+
2773
+ args = ["uf", resourcepkg, 'R.txt']
2774
+ Jake.run($jarbin, args, $app_rjava_dir)
2775
+ unless $?.success?
2776
+ raise "Error packaging R.txt file"
2777
+ end
2778
+
2779
+ args = ["uf", resourcepkg, '-C', '.', 'res']
2780
+ Jake.run($jarbin, args, $tmpdir)
2781
+
2782
+ FormatManifestToAarCompat($appmanifest)
2783
+ args = ["uf", resourcepkg, 'AndroidManifest.xml']
2784
+ Jake.run($jarbin, args, File.dirname($appmanifest))
2785
+
2786
+ #$appmanifest
2787
+
2788
+ end
2789
+
2492
2790
  namespace "package" do
2493
2791
  task :android => "build:android:all" do
2494
2792
  print_timestamp('package:android START')
2793
+
2794
+ if $rhodes_as_lib
2795
+ prepare_aar_package()
2796
+ next
2797
+ end
2798
+
2495
2799
  puts "Running dx utility"
2496
2800
  args = []
2497
2801
  args << "-Xmx1024m"