mobox 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (833) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +89 -0
  5. data/Rakefile +2 -0
  6. data/bin/mobox +275 -0
  7. data/lib/mobox.rb +34 -0
  8. data/lib/mobox/config.rb +36 -0
  9. data/lib/mobox/helpers.rb +9 -0
  10. data/lib/mobox/render_scope.rb +9 -0
  11. data/lib/mobox/server.rb +91 -0
  12. data/lib/mobox/version.rb +3 -0
  13. data/mobox.gemspec +31 -0
  14. data/template/.mobox +2 -0
  15. data/template/Gemfile +3 -0
  16. data/template/config.ru +76 -0
  17. data/template/src/assets/images/mobox-logo-inkscape.svg +177 -0
  18. data/template/src/assets/images/mobox-logo.pdf +0 -0
  19. data/template/src/assets/images/mobox-logo.png +0 -0
  20. data/template/src/assets/images/mobox-logo.svg +120 -0
  21. data/template/src/assets/javascripts/app/config.js.coffee.erb +2 -0
  22. data/template/src/assets/javascripts/app/controllers/.gitignore +0 -0
  23. data/template/src/assets/javascripts/app/controllers/home.js.coffee +10 -0
  24. data/template/src/assets/javascripts/app/helpers/.gitignore +0 -0
  25. data/template/src/assets/javascripts/app/index.js.coffee +7 -0
  26. data/template/src/assets/javascripts/app/lib/.gitignore +0 -0
  27. data/template/src/assets/javascripts/app/lib/app.js.coffee +6 -0
  28. data/template/src/assets/javascripts/app/lib/config.js.coffee +3 -0
  29. data/template/src/assets/javascripts/app/lib/view.js.coffee +18 -0
  30. data/template/src/assets/javascripts/app/models/.gitignore +0 -0
  31. data/template/src/assets/javascripts/app/views/.gitignore +0 -0
  32. data/template/src/assets/javascripts/app/views/home/index.jst.hamljs +8 -0
  33. data/template/src/assets/javascripts/application.js.coffee +25 -0
  34. data/template/src/assets/javascripts/vendor/1140gs/css3-mediaqueries.js +779 -0
  35. data/template/src/assets/javascripts/vendor/cordova-2.0.0.js +5240 -0
  36. data/template/src/assets/javascripts/vendor/gfx/gfx.cube.js +161 -0
  37. data/template/src/assets/javascripts/vendor/gfx/gfx.effects.js +330 -0
  38. data/template/src/assets/javascripts/vendor/gfx/gfx.flip.js +52 -0
  39. data/template/src/assets/javascripts/vendor/gfx/gfx.js +93 -0
  40. data/template/src/assets/javascripts/vendor/gfx/gfx.overlay.js +81 -0
  41. data/template/src/assets/javascripts/vendor/gfx/index.js +5 -0
  42. data/template/src/assets/javascripts/vendor/hammer/.gitignore +1 -0
  43. data/template/src/assets/javascripts/vendor/hammer/LICENSE +19 -0
  44. data/template/src/assets/javascripts/vendor/hammer/hammer.js +741 -0
  45. data/template/src/assets/javascripts/vendor/hammer/index.coffee +2 -0
  46. data/template/src/assets/javascripts/vendor/hammer/jquery.hammer.js +26 -0
  47. data/template/src/assets/javascripts/vendor/hammer/jquery.specialevent.hammer.js +39 -0
  48. data/template/src/assets/javascripts/vendor/jquery.js +4 -0
  49. data/template/src/assets/javascripts/vendor/jquery_transit/index.coffee +1 -0
  50. data/template/src/assets/javascripts/vendor/jquery_transit/jquery.transit.js +658 -0
  51. data/template/src/assets/javascripts/vendor/spine/ajax.js +318 -0
  52. data/template/src/assets/javascripts/vendor/spine/list.js +74 -0
  53. data/template/src/assets/javascripts/vendor/spine/local.js +30 -0
  54. data/template/src/assets/javascripts/vendor/spine/manager.js +158 -0
  55. data/template/src/assets/javascripts/vendor/spine/panel.js +132 -0
  56. data/template/src/assets/javascripts/vendor/spine/relation.js +255 -0
  57. data/template/src/assets/javascripts/vendor/spine/route.js +220 -0
  58. data/template/src/assets/javascripts/vendor/spine/spine.js +913 -0
  59. data/template/src/assets/javascripts/vendor/spine/stage.js +146 -0
  60. data/template/src/assets/javascripts/vendor/spine/tabs.js +66 -0
  61. data/template/src/assets/javascripts/vendor/spine/tmpl.js +22 -0
  62. data/template/src/assets/javascripts/vendor/spine/touch.js +79 -0
  63. data/template/src/assets/stylesheets/application.css.sass +3 -0
  64. data/template/src/assets/stylesheets/base.sass +78 -0
  65. data/template/src/assets/stylesheets/vendor/1140gs/1140gs.sass +110 -0
  66. data/template/src/assets/stylesheets/vendor/1140gs/conditionals.sass +34 -0
  67. data/template/src/assets/stylesheets/vendor/1140gs/ie.css +43 -0
  68. data/template/src/assets/stylesheets/vendor/1140gs/index.sass +1 -0
  69. data/template/src/assets/stylesheets/vendor/spine_mobile/index.sass +1 -0
  70. data/template/src/assets/stylesheets/vendor/spine_mobile/mixin.sass +89 -0
  71. data/template/src/assets/stylesheets/vendor/spine_mobile/spine_mobile.sass +57 -0
  72. data/template/src/assets/stylesheets/vendor/spine_mobile/theme.sass +79 -0
  73. data/template/src/config.yml +2 -0
  74. data/template/src/index.haml +21 -0
  75. data/vendor/compass-sprockets/README.md +5 -0
  76. data/vendor/compass-sprockets/lib/compass-sprockets.rb +32 -0
  77. data/vendor/compass-sprockets/lib/compass/sprockets.rb +56 -0
  78. data/vendor/compass-sprockets/lib/compass/sprockets/version.rb +6 -0
  79. data/vendor/compass-sprockets/lib/sprockets/compressors.rb +96 -0
  80. data/vendor/compass-sprockets/lib/sprockets/static_compiler.rb +62 -0
  81. data/vendor/haml-sprockets/Gemfile +4 -0
  82. data/vendor/haml-sprockets/LICENSE +8 -0
  83. data/vendor/haml-sprockets/README.md +33 -0
  84. data/vendor/haml-sprockets/Rakefile +1 -0
  85. data/vendor/haml-sprockets/lib/haml-sprockets.rb +34 -0
  86. data/vendor/haml-sprockets/lib/haml-sprockets/engine.rb +7 -0
  87. data/vendor/haml-sprockets/lib/haml-sprockets/version.rb +5 -0
  88. data/vendor/haml-sprockets/spec/lib/haml-sprockets_spec.rb +43 -0
  89. data/vendor/haml-sprockets/spec/spec_helper.rb +2 -0
  90. data/vendor/haml-sprockets/vendor/assets/javascripts/haml.js +651 -0
  91. data/vendor/phonegap/.gitignore +19 -0
  92. data/vendor/phonegap/LICENSE +426 -0
  93. data/vendor/phonegap/README.md +49 -0
  94. data/vendor/phonegap/VERSION +1 -0
  95. data/vendor/phonegap/changelog +205 -0
  96. data/vendor/phonegap/doc/LICENSE +548 -0
  97. data/vendor/phonegap/doc/NOTICE +11 -0
  98. data/vendor/phonegap/doc/_index.html +355 -0
  99. data/vendor/phonegap/doc/_index.json +1 -0
  100. data/vendor/phonegap/doc/arrow.png +0 -0
  101. data/vendor/phonegap/doc/cordova_accelerometer_accelerometer.md.html +728 -0
  102. data/vendor/phonegap/doc/cordova_camera_camera.cleanup.md.html +159 -0
  103. data/vendor/phonegap/doc/cordova_camera_camera.md.html +670 -0
  104. data/vendor/phonegap/doc/cordova_compass_compass.md.html +707 -0
  105. data/vendor/phonegap/doc/cordova_connection_connection.md.html +355 -0
  106. data/vendor/phonegap/doc/cordova_contacts_contacts.md.html +1715 -0
  107. data/vendor/phonegap/doc/cordova_device_device.md.html +682 -0
  108. data/vendor/phonegap/doc/cordova_events_events.md.html +1538 -0
  109. data/vendor/phonegap/doc/cordova_file_file.md.html +2306 -0
  110. data/vendor/phonegap/doc/cordova_geolocation_geolocation.md.html +1002 -0
  111. data/vendor/phonegap/doc/cordova_media_capture_capture.md.html +1256 -0
  112. data/vendor/phonegap/doc/cordova_media_media.md.html +1745 -0
  113. data/vendor/phonegap/doc/cordova_notification_notification.md.html +691 -0
  114. data/vendor/phonegap/doc/cordova_storage_storage.md.html +988 -0
  115. data/vendor/phonegap/doc/guide_command-line_index.md.html +323 -0
  116. data/vendor/phonegap/doc/guide_cordova-webview_android.md.html +180 -0
  117. data/vendor/phonegap/doc/guide_cordova-webview_index.md.html +131 -0
  118. data/vendor/phonegap/doc/guide_cordova-webview_ios.md.html +275 -0
  119. data/vendor/phonegap/doc/guide_getting-started_android_index.md.html +291 -0
  120. data/vendor/phonegap/doc/guide_getting-started_bada_index.md.html +225 -0
  121. data/vendor/phonegap/doc/guide_getting-started_blackberry_index.md.html +267 -0
  122. data/vendor/phonegap/doc/guide_getting-started_index.md.html +132 -0
  123. data/vendor/phonegap/doc/guide_getting-started_ios_index.md.html +248 -0
  124. data/vendor/phonegap/doc/guide_getting-started_symbian_index.md.html +198 -0
  125. data/vendor/phonegap/doc/guide_getting-started_webos_index.md.html +200 -0
  126. data/vendor/phonegap/doc/guide_getting-started_windows-phone_index.md.html +228 -0
  127. data/vendor/phonegap/doc/guide_plugin-development_android_index.md.html +275 -0
  128. data/vendor/phonegap/doc/guide_plugin-development_bada_index.md.html +192 -0
  129. data/vendor/phonegap/doc/guide_plugin-development_blackberry_index.md.html +259 -0
  130. data/vendor/phonegap/doc/guide_plugin-development_index.md.html +230 -0
  131. data/vendor/phonegap/doc/guide_plugin-development_ios_index.md.html +282 -0
  132. data/vendor/phonegap/doc/guide_plugin-development_webos_index.md.html +125 -0
  133. data/vendor/phonegap/doc/guide_plugin-development_windows-phone_index.md.html +125 -0
  134. data/vendor/phonegap/doc/guide_upgrading_android_index.md.html +321 -0
  135. data/vendor/phonegap/doc/guide_upgrading_bada_index.md.html +165 -0
  136. data/vendor/phonegap/doc/guide_upgrading_blackberry_index.md.html +244 -0
  137. data/vendor/phonegap/doc/guide_upgrading_index.md.html +136 -0
  138. data/vendor/phonegap/doc/guide_upgrading_ios_index.md.html +547 -0
  139. data/vendor/phonegap/doc/guide_upgrading_symbian_index.md.html +123 -0
  140. data/vendor/phonegap/doc/guide_upgrading_webos_index.md.html +161 -0
  141. data/vendor/phonegap/doc/guide_upgrading_windows-phone_index.md.html +332 -0
  142. data/vendor/phonegap/doc/guide_whitelist_index.md.html +299 -0
  143. data/vendor/phonegap/doc/img/guide/getting-started/android/AndroidFlow.png +0 -0
  144. data/vendor/phonegap/doc/img/guide/getting-started/android/buildPath.jpg +0 -0
  145. data/vendor/phonegap/doc/img/guide/getting-started/android/javaSrc.jpg +0 -0
  146. data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.jpg +0 -0
  147. data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.png +0 -0
  148. data/vendor/phonegap/doc/img/guide/getting-started/android/new_android_project.jpeg +0 -0
  149. data/vendor/phonegap/doc/img/guide/getting-started/android/step_1.png +0 -0
  150. data/vendor/phonegap/doc/img/guide/getting-started/android/step_2.png +0 -0
  151. data/vendor/phonegap/doc/img/guide/getting-started/android/step_3.png +0 -0
  152. data/vendor/phonegap/doc/img/guide/getting-started/android/step_4.png +0 -0
  153. data/vendor/phonegap/doc/img/guide/getting-started/android/step_5.png +0 -0
  154. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_1_run.png +0 -0
  155. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_2_run.png +0 -0
  156. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_project.png +0 -0
  157. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_set_target.png +0 -0
  158. data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project.png +0 -0
  159. data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project_2.png +0 -0
  160. data/vendor/phonegap/doc/img/guide/getting-started/ios/HelloWorldiPhone4.png +0 -0
  161. data/vendor/phonegap/doc/img/guide/getting-started/ios/XCode4-templates.png +0 -0
  162. data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_create_project.png +0 -0
  163. data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_folder.png +0 -0
  164. data/vendor/phonegap/doc/img/guide/getting-started/ios/create-folder-reference.png +0 -0
  165. data/vendor/phonegap/doc/img/guide/getting-started/ios/index-not-found.png +0 -0
  166. data/vendor/phonegap/doc/img/guide/getting-started/ios/project.jpg +0 -0
  167. data/vendor/phonegap/doc/img/guide/getting-started/ios/www-folder.png +0 -0
  168. data/vendor/phonegap/doc/img/guide/getting-started/ios/xcode4-name_your_app.png +0 -0
  169. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wp7projectstructure.PNG +0 -0
  170. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpd.png +0 -0
  171. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpfirstrun.PNG +0 -0
  172. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpnewproj.PNG +0 -0
  173. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wprun.png +0 -0
  174. data/vendor/phonegap/doc/index.css +404 -0
  175. data/vendor/phonegap/doc/index.html +210 -0
  176. data/vendor/phonegap/doc/index.js +74 -0
  177. data/vendor/phonegap/doc/line.png +0 -0
  178. data/vendor/phonegap/doc/mobile.css +139 -0
  179. data/vendor/phonegap/doc/prettify/LICENSE +191 -0
  180. data/vendor/phonegap/doc/prettify/lang-apollo.js +2 -0
  181. data/vendor/phonegap/doc/prettify/lang-css.js +2 -0
  182. data/vendor/phonegap/doc/prettify/lang-hs.js +2 -0
  183. data/vendor/phonegap/doc/prettify/lang-lisp.js +2 -0
  184. data/vendor/phonegap/doc/prettify/lang-lua.js +2 -0
  185. data/vendor/phonegap/doc/prettify/lang-ml.js +2 -0
  186. data/vendor/phonegap/doc/prettify/lang-proto.js +1 -0
  187. data/vendor/phonegap/doc/prettify/lang-scala.js +2 -0
  188. data/vendor/phonegap/doc/prettify/lang-sql.js +2 -0
  189. data/vendor/phonegap/doc/prettify/lang-vb.js +2 -0
  190. data/vendor/phonegap/doc/prettify/lang-vhdl.js +3 -0
  191. data/vendor/phonegap/doc/prettify/lang-wiki.js +2 -0
  192. data/vendor/phonegap/doc/prettify/lang-yaml.js +2 -0
  193. data/vendor/phonegap/doc/prettify/prettify.css +44 -0
  194. data/vendor/phonegap/doc/prettify/prettify.js +33 -0
  195. data/vendor/phonegap/keys +201 -0
  196. data/vendor/phonegap/lib/DISCLAIMER +8 -0
  197. data/vendor/phonegap/lib/LICENSE +548 -0
  198. data/vendor/phonegap/lib/NOTICE +11 -0
  199. data/vendor/phonegap/lib/README.MD +54 -0
  200. data/vendor/phonegap/lib/android/LICENSE +202 -0
  201. data/vendor/phonegap/lib/android/NOTICE +5 -0
  202. data/vendor/phonegap/lib/android/README.md +114 -0
  203. data/vendor/phonegap/lib/android/VERSION +1 -0
  204. data/vendor/phonegap/lib/android/bin/create +147 -0
  205. data/vendor/phonegap/lib/android/bin/create.bat +15 -0
  206. data/vendor/phonegap/lib/android/bin/create.js +188 -0
  207. data/vendor/phonegap/lib/android/bin/create.xml +98 -0
  208. data/vendor/phonegap/lib/android/bin/package.json +22 -0
  209. data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.class +0 -0
  210. data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.java +44 -0
  211. data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM +7 -0
  212. data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM.bat +1 -0
  213. data/vendor/phonegap/lib/android/bin/templates/cordova/appinfo.jar +0 -0
  214. data/vendor/phonegap/lib/android/bin/templates/cordova/clean +7 -0
  215. data/vendor/phonegap/lib/android/bin/templates/cordova/clean.bat +1 -0
  216. data/vendor/phonegap/lib/android/bin/templates/cordova/cordova +85 -0
  217. data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.bat +15 -0
  218. data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.js +104 -0
  219. data/vendor/phonegap/lib/android/bin/templates/cordova/debug +7 -0
  220. data/vendor/phonegap/lib/android/bin/templates/cordova/debug.bat +1 -0
  221. data/vendor/phonegap/lib/android/bin/templates/cordova/emulate +7 -0
  222. data/vendor/phonegap/lib/android/bin/templates/cordova/emulate.bat +1 -0
  223. data/vendor/phonegap/lib/android/bin/templates/cordova/log +7 -0
  224. data/vendor/phonegap/lib/android/bin/templates/cordova/log.bat +1 -0
  225. data/vendor/phonegap/lib/android/bin/templates/project/Activity.java +35 -0
  226. data/vendor/phonegap/lib/android/bin/templates/project/AndroidManifest.xml +61 -0
  227. data/vendor/phonegap/lib/android/bin/templates/project/assets/www/index.html +60 -0
  228. data/vendor/phonegap/lib/android/bin/templates/project/assets/www/main.js +165 -0
  229. data/vendor/phonegap/lib/android/bin/templates/project/assets/www/master.css +116 -0
  230. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-hdpi/icon.png +0 -0
  231. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-ldpi/icon.png +0 -0
  232. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-mdpi/icon.png +0 -0
  233. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-xhdpi/icon.png +0 -0
  234. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable/icon.png +0 -0
  235. data/vendor/phonegap/lib/android/bin/tests/test_create_unix.js +135 -0
  236. data/vendor/phonegap/lib/android/bin/tests/test_create_win.js +143 -0
  237. data/vendor/phonegap/lib/android/cordova-2.0.0.jar +0 -0
  238. data/vendor/phonegap/lib/android/cordova-2.0.0.js +5724 -0
  239. data/vendor/phonegap/lib/android/example/AndroidManifest.xml +61 -0
  240. data/vendor/phonegap/lib/android/example/ant.properties +17 -0
  241. data/vendor/phonegap/lib/android/example/assets/www/cordova-2.0.0.js +5724 -0
  242. data/vendor/phonegap/lib/android/example/assets/www/index.html +60 -0
  243. data/vendor/phonegap/lib/android/example/assets/www/main.js +165 -0
  244. data/vendor/phonegap/lib/android/example/assets/www/master.css +116 -0
  245. data/vendor/phonegap/lib/android/example/build.xml +83 -0
  246. data/vendor/phonegap/lib/android/example/cordova/BOOM +7 -0
  247. data/vendor/phonegap/lib/android/example/cordova/appinfo.jar +0 -0
  248. data/vendor/phonegap/lib/android/example/cordova/clean +7 -0
  249. data/vendor/phonegap/lib/android/example/cordova/cordova +85 -0
  250. data/vendor/phonegap/lib/android/example/cordova/debug +7 -0
  251. data/vendor/phonegap/lib/android/example/cordova/emulate +7 -0
  252. data/vendor/phonegap/lib/android/example/cordova/log +7 -0
  253. data/vendor/phonegap/lib/android/example/libs/cordova-2.0.0.jar +0 -0
  254. data/vendor/phonegap/lib/android/example/proguard-project.txt +20 -0
  255. data/vendor/phonegap/lib/android/example/project.properties +14 -0
  256. data/vendor/phonegap/lib/android/example/res/drawable-hdpi/ic_launcher.png +0 -0
  257. data/vendor/phonegap/lib/android/example/res/drawable-hdpi/icon.png +0 -0
  258. data/vendor/phonegap/lib/android/example/res/drawable-ldpi/ic_launcher.png +0 -0
  259. data/vendor/phonegap/lib/android/example/res/drawable-ldpi/icon.png +0 -0
  260. data/vendor/phonegap/lib/android/example/res/drawable-mdpi/ic_launcher.png +0 -0
  261. data/vendor/phonegap/lib/android/example/res/drawable-mdpi/icon.png +0 -0
  262. data/vendor/phonegap/lib/android/example/res/drawable-xhdpi/icon.png +0 -0
  263. data/vendor/phonegap/lib/android/example/res/drawable/icon.png +0 -0
  264. data/vendor/phonegap/lib/android/example/res/layout/main.xml +13 -0
  265. data/vendor/phonegap/lib/android/example/res/values/strings.xml +4 -0
  266. data/vendor/phonegap/lib/android/example/res/xml/config.xml +54 -0
  267. data/vendor/phonegap/lib/android/example/src/org/apache/cordova/example/cordovaExample.java +35 -0
  268. data/vendor/phonegap/lib/android/xml/config.xml +54 -0
  269. data/vendor/phonegap/lib/bada/Icons/Cordova.png +0 -0
  270. data/vendor/phonegap/lib/bada/Icons/Cordova_Splash.png +0 -0
  271. data/vendor/phonegap/lib/bada/LICENSE +202 -0
  272. data/vendor/phonegap/lib/bada/NOTICE +5 -0
  273. data/vendor/phonegap/lib/bada/README.md +48 -0
  274. data/vendor/phonegap/lib/bada/Res/cordova/accelerometer.js +131 -0
  275. data/vendor/phonegap/lib/bada/Res/cordova/camera.js +102 -0
  276. data/vendor/phonegap/lib/bada/Res/cordova/compass.js +77 -0
  277. data/vendor/phonegap/lib/bada/Res/cordova/contact.js +355 -0
  278. data/vendor/phonegap/lib/bada/Res/cordova/cordova.base.js +561 -0
  279. data/vendor/phonegap/lib/bada/Res/cordova/cordova.bat +21 -0
  280. data/vendor/phonegap/lib/bada/Res/cordova/cordova.js +1661 -0
  281. data/vendor/phonegap/lib/bada/Res/cordova/debugconsole.js +126 -0
  282. data/vendor/phonegap/lib/bada/Res/cordova/device.js +46 -0
  283. data/vendor/phonegap/lib/bada/Res/cordova/file.js +682 -0
  284. data/vendor/phonegap/lib/bada/Res/cordova/geolocation.js +152 -0
  285. data/vendor/phonegap/lib/bada/Res/cordova/network.js +70 -0
  286. data/vendor/phonegap/lib/bada/Res/cordova/notification.js +117 -0
  287. data/vendor/phonegap/lib/bada/Res/cordova/position.js +74 -0
  288. data/vendor/phonegap/lib/bada/Res/eng-GB.xml +26 -0
  289. data/vendor/phonegap/lib/bada/Res/images/cordova_logo_normal_dark.png +0 -0
  290. data/vendor/phonegap/lib/bada/Res/index.html +108 -0
  291. data/vendor/phonegap/lib/bada/Res/main.js +390 -0
  292. data/vendor/phonegap/lib/bada/VERSION +1 -0
  293. data/vendor/phonegap/lib/bada/application.xml +45 -0
  294. data/vendor/phonegap/lib/bada/inc/Accelerometer.h +54 -0
  295. data/vendor/phonegap/lib/bada/inc/Compass.h +52 -0
  296. data/vendor/phonegap/lib/bada/inc/Contacts.h +62 -0
  297. data/vendor/phonegap/lib/bada/inc/Cordova.h +82 -0
  298. data/vendor/phonegap/lib/bada/inc/CordovaCommand.h +46 -0
  299. data/vendor/phonegap/lib/bada/inc/DebugConsole.h +41 -0
  300. data/vendor/phonegap/lib/bada/inc/Device.h +43 -0
  301. data/vendor/phonegap/lib/bada/inc/GeoLocation.h +52 -0
  302. data/vendor/phonegap/lib/bada/inc/Kamera.h +49 -0
  303. data/vendor/phonegap/lib/bada/inc/Network.h +56 -0
  304. data/vendor/phonegap/lib/bada/inc/Notification.h +50 -0
  305. data/vendor/phonegap/lib/bada/inc/WebForm.h +97 -0
  306. data/vendor/phonegap/lib/bada/manifest.xml +61 -0
  307. data/vendor/phonegap/lib/bada/src/Accelerometer.cpp +135 -0
  308. data/vendor/phonegap/lib/bada/src/Compass.cpp +131 -0
  309. data/vendor/phonegap/lib/bada/src/Contacts.cpp +600 -0
  310. data/vendor/phonegap/lib/bada/src/Cordova.cpp +139 -0
  311. data/vendor/phonegap/lib/bada/src/CordovaCommand.cpp +33 -0
  312. data/vendor/phonegap/lib/bada/src/CordovaEntry.cpp +60 -0
  313. data/vendor/phonegap/lib/bada/src/DebugConsole.cpp +81 -0
  314. data/vendor/phonegap/lib/bada/src/Device.cpp +81 -0
  315. data/vendor/phonegap/lib/bada/src/GeoLocation.cpp +144 -0
  316. data/vendor/phonegap/lib/bada/src/Kamera.cpp +121 -0
  317. data/vendor/phonegap/lib/bada/src/Network.cpp +123 -0
  318. data/vendor/phonegap/lib/bada/src/Notification.cpp +176 -0
  319. data/vendor/phonegap/lib/bada/src/WebForm.cpp +231 -0
  320. data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type4.png +0 -0
  321. data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type5.png +0 -0
  322. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_icon_type5.png +0 -0
  323. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type3.png +0 -0
  324. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type4.png +0 -0
  325. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_splash_type3.png +0 -0
  326. data/vendor/phonegap/lib/badaWac/LICENSE +201 -0
  327. data/vendor/phonegap/lib/badaWac/NOTICE +5 -0
  328. data/vendor/phonegap/lib/badaWac/README.md +12 -0
  329. data/vendor/phonegap/lib/badaWac/Res/config.xml +47 -0
  330. data/vendor/phonegap/lib/badaWac/Res/cordova-2.0.0.js +5676 -0
  331. data/vendor/phonegap/lib/badaWac/Res/css/index.css +100 -0
  332. data/vendor/phonegap/lib/badaWac/Res/img/cordova.png +0 -0
  333. data/vendor/phonegap/lib/badaWac/Res/index.html +24 -0
  334. data/vendor/phonegap/lib/badaWac/Res/js/index.js +15 -0
  335. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_128.png +0 -0
  336. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_16.png +0 -0
  337. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_24.png +0 -0
  338. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_256.png +0 -0
  339. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_32.png +0 -0
  340. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_48.png +0 -0
  341. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_512.png +0 -0
  342. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_64.png +0 -0
  343. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_36.png +0 -0
  344. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_48.png +0 -0
  345. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_72.png +0 -0
  346. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_96.png +0 -0
  347. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_bb_80.png +0 -0
  348. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_114.png +0 -0
  349. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_144.png +0 -0
  350. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_57.png +0 -0
  351. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_72.png +0 -0
  352. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_landscape.png +0 -0
  353. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_portrait.png +0 -0
  354. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_landscape.png +0 -0
  355. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_portrait.png +0 -0
  356. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_landscape.png +0 -0
  357. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_portrait.png +0 -0
  358. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_landscape.png +0 -0
  359. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_portrait.png +0 -0
  360. data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_300.png +0 -0
  361. data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_400.png +0 -0
  362. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_landscape.png +0 -0
  363. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_portrait.png +0 -0
  364. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_landscape.png +0 -0
  365. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_portrait.png +0 -0
  366. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_landscape.png +0 -0
  367. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_portrait.png +0 -0
  368. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_landscape.png +0 -0
  369. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_portrait.png +0 -0
  370. data/vendor/phonegap/lib/badaWac/Res/res/screen/windows_phone_portrait.jpg +0 -0
  371. data/vendor/phonegap/lib/badaWac/Res/sample/index.html +167 -0
  372. data/vendor/phonegap/lib/badaWac/Res/sample/js/cordova.js +5576 -0
  373. data/vendor/phonegap/lib/badaWac/Res/sample/js/sample.js +404 -0
  374. data/vendor/phonegap/lib/badaWac/Res/spec.html +50 -0
  375. data/vendor/phonegap/lib/badaWac/Res/spec/helper.js +11 -0
  376. data/vendor/phonegap/lib/badaWac/Res/spec/index.js +49 -0
  377. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
  378. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
  379. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
  380. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
  381. data/vendor/phonegap/lib/badaWac/VERSION +1 -0
  382. data/vendor/phonegap/lib/badaWac/application.xml +51 -0
  383. data/vendor/phonegap/lib/badaWac/manifest.xml +58 -0
  384. data/vendor/phonegap/lib/blackberry/LICENSE +268 -0
  385. data/vendor/phonegap/lib/blackberry/NOTICE +8 -0
  386. data/vendor/phonegap/lib/blackberry/README.md +90 -0
  387. data/vendor/phonegap/lib/blackberry/VERSION +1 -0
  388. data/vendor/phonegap/lib/blackberry/bin/create +84 -0
  389. data/vendor/phonegap/lib/blackberry/bin/create.bat +14 -0
  390. data/vendor/phonegap/lib/blackberry/bin/create.js +94 -0
  391. data/vendor/phonegap/lib/blackberry/bin/templates/dist/README.md +90 -0
  392. data/vendor/phonegap/lib/blackberry/bin/templates/project/blackberry.xml +356 -0
  393. data/vendor/phonegap/lib/blackberry/bin/templates/project/build.xml +138 -0
  394. data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/debug +53 -0
  395. data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/emulate +40 -0
  396. data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/LICENSE.txt +47 -0
  397. data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
  398. data/vendor/phonegap/lib/blackberry/bin/templates/project/playbook.xml +283 -0
  399. data/vendor/phonegap/lib/blackberry/bin/templates/project/project.properties +97 -0
  400. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/config.xml +82 -0
  401. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/index.html +976 -0
  402. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/json2.js +482 -0
  403. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/plugins.xml +34 -0
  404. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/icon.png +0 -0
  405. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/loading_foreground.png +0 -0
  406. data/vendor/phonegap/lib/blackberry/sample/blackberry.xml +356 -0
  407. data/vendor/phonegap/lib/blackberry/sample/build.xml +138 -0
  408. data/vendor/phonegap/lib/blackberry/sample/cordova/debug +53 -0
  409. data/vendor/phonegap/lib/blackberry/sample/cordova/emulate +40 -0
  410. data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/LICENSE.txt +47 -0
  411. data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
  412. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/library.xml +40 -0
  413. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
  414. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext/cordova.2.0.0.jar +0 -0
  415. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/cordova-2.0.0.js +6407 -0
  416. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/playbook/cordova-2.0.0.js +6845 -0
  417. data/vendor/phonegap/lib/blackberry/sample/playbook.xml +283 -0
  418. data/vendor/phonegap/lib/blackberry/sample/project.properties +97 -0
  419. data/vendor/phonegap/lib/blackberry/sample/www/config.xml +82 -0
  420. data/vendor/phonegap/lib/blackberry/sample/www/cordova-2.0.0.js +6407 -0
  421. data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/library.xml +40 -0
  422. data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
  423. data/vendor/phonegap/lib/blackberry/sample/www/ext/cordova.2.0.0.jar +0 -0
  424. data/vendor/phonegap/lib/blackberry/sample/www/index.html +976 -0
  425. data/vendor/phonegap/lib/blackberry/sample/www/json2.js +482 -0
  426. data/vendor/phonegap/lib/blackberry/sample/www/playbook/cordova-2.0.0.js +6845 -0
  427. data/vendor/phonegap/lib/blackberry/sample/www/plugins.xml +34 -0
  428. data/vendor/phonegap/lib/blackberry/sample/www/resources/icon.png +0 -0
  429. data/vendor/phonegap/lib/blackberry/sample/www/resources/loading_foreground.png +0 -0
  430. data/vendor/phonegap/lib/blackberry/www/config.xml +82 -0
  431. data/vendor/phonegap/lib/blackberry/www/cordova-2.0.0.js +6407 -0
  432. data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/library.xml +40 -0
  433. data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
  434. data/vendor/phonegap/lib/blackberry/www/ext/cordova.2.0.0.jar +0 -0
  435. data/vendor/phonegap/lib/blackberry/www/playbook/cordova-2.0.0.js +6845 -0
  436. data/vendor/phonegap/lib/blackberry/www/plugins.xml +34 -0
  437. data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg +0 -0
  438. data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg.SHA1 +1 -0
  439. data/vendor/phonegap/lib/ios/LICENSE +394 -0
  440. data/vendor/phonegap/lib/ios/NOTICE +5 -0
  441. data/vendor/phonegap/lib/ios/bin/BOOM +27 -0
  442. data/vendor/phonegap/lib/ios/bin/README.md +29 -0
  443. data/vendor/phonegap/lib/ios/bin/_build.sh +92 -0
  444. data/vendor/phonegap/lib/ios/bin/autotest +24 -0
  445. data/vendor/phonegap/lib/ios/bin/bench +48 -0
  446. data/vendor/phonegap/lib/ios/bin/create +99 -0
  447. data/vendor/phonegap/lib/ios/bin/package.json +15 -0
  448. data/vendor/phonegap/lib/ios/bin/replaces +28 -0
  449. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateIcon.icns +0 -0
  450. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateInfo.plist +28 -0
  451. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/project.pbxproj +638 -0
  452. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/.gitignore +6 -0
  453. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.h +45 -0
  454. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.m +135 -0
  455. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.h +32 -0
  456. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.m +141 -0
  457. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.xib +138 -0
  458. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Cordova.plist +83 -0
  459. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/CordovaBuildSettings.xcconfig +26 -0
  460. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Plugins/README +20 -0
  461. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg.png +0 -0
  462. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x.png +0 -0
  463. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x~ipad.png +0 -0
  464. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg~ipad.png +0 -0
  465. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone.png +0 -0
  466. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x.png +0 -0
  467. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x~ipad.png +0 -0
  468. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone~ipad.png +0 -0
  469. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button.png +0 -0
  470. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x.png +0 -0
  471. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x~ipad.png +0 -0
  472. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button~ipad.png +0 -0
  473. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg.png +0 -0
  474. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x.png +0 -0
  475. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x~ipad.png +0 -0
  476. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg~ipad.png +0 -0
  477. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button.png +0 -0
  478. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x.png +0 -0
  479. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x~ipad.png +0 -0
  480. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button~ipad.png +0 -0
  481. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/de.lproj/Localizable.strings +26 -0
  482. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/en.lproj/Localizable.strings +25 -0
  483. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/es.lproj/Localizable.strings +25 -0
  484. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72.png +0 -0
  485. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72@2x.png +0 -0
  486. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon.png +0 -0
  487. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon@2x.png +0 -0
  488. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/se.lproj/Localizable.strings +26 -0
  489. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape@2x~ipad.png +0 -0
  490. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape~ipad.png +0 -0
  491. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait@2x~ipad.png +0 -0
  492. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait~ipad.png +0 -0
  493. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default@2x~iphone.png +0 -0
  494. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default~iphone.png +0 -0
  495. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Info.plist +78 -0
  496. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch +26 -0
  497. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/main.m +35 -0
  498. data/vendor/phonegap/lib/ios/bin/templates/project/cordova/debug +47 -0
  499. data/vendor/phonegap/lib/ios/bin/templates/project/cordova/emulate +58 -0
  500. data/vendor/phonegap/lib/ios/bin/templates/project/cordova/log +26 -0
  501. data/vendor/phonegap/lib/ios/bin/templates/project/www/config.xml +47 -0
  502. data/vendor/phonegap/lib/ios/bin/templates/project/www/cordova-2.0.0.js +5240 -0
  503. data/vendor/phonegap/lib/ios/bin/templates/project/www/css/index.css +100 -0
  504. data/vendor/phonegap/lib/ios/bin/templates/project/www/img/cordova.png +0 -0
  505. data/vendor/phonegap/lib/ios/bin/templates/project/www/index.html +44 -0
  506. data/vendor/phonegap/lib/ios/bin/templates/project/www/js/index.js +20 -0
  507. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_128.png +0 -0
  508. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_16.png +0 -0
  509. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_24.png +0 -0
  510. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_256.png +0 -0
  511. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_32.png +0 -0
  512. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_48.png +0 -0
  513. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_512.png +0 -0
  514. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_64.png +0 -0
  515. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_36.png +0 -0
  516. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_48.png +0 -0
  517. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_72.png +0 -0
  518. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_96.png +0 -0
  519. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_bb_80.png +0 -0
  520. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_114.png +0 -0
  521. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_144.png +0 -0
  522. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_57.png +0 -0
  523. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_72.png +0 -0
  524. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_landscape.png +0 -0
  525. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_portrait.png +0 -0
  526. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_landscape.png +0 -0
  527. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_portrait.png +0 -0
  528. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_landscape.png +0 -0
  529. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_portrait.png +0 -0
  530. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_landscape.png +0 -0
  531. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_portrait.png +0 -0
  532. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_300.png +0 -0
  533. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_400.png +0 -0
  534. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_landscape.png +0 -0
  535. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_portrait.png +0 -0
  536. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_landscape.png +0 -0
  537. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_portrait.png +0 -0
  538. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_landscape.png +0 -0
  539. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_portrait.png +0 -0
  540. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_landscape.png +0 -0
  541. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_portrait.png +0 -0
  542. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/windows_phone_portrait.jpg +0 -0
  543. data/vendor/phonegap/lib/ios/bin/templates/project/www/spec.html +50 -0
  544. data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/helper.js +11 -0
  545. data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/index.js +49 -0
  546. data/vendor/phonegap/lib/ios/bin/test +44 -0
  547. data/vendor/phonegap/lib/ios/bin/tests/autotest.coffee +24 -0
  548. data/vendor/phonegap/lib/ios/bin/tests/create.coffee +34 -0
  549. data/vendor/phonegap/lib/ios/bin/tests/debug.coffee +18 -0
  550. data/vendor/phonegap/lib/ios/bin/tests/test.coffee +18 -0
  551. data/vendor/phonegap/lib/symbian/deprecated.txt +1 -0
  552. data/vendor/phonegap/lib/webos/LICENSE +202 -0
  553. data/vendor/phonegap/lib/webos/Makefile +127 -0
  554. data/vendor/phonegap/lib/webos/NOTICE +11 -0
  555. data/vendor/phonegap/lib/webos/README.md +52 -0
  556. data/vendor/phonegap/lib/webos/VERSION +1 -0
  557. data/vendor/phonegap/lib/webos/framework/appinfo.json +10 -0
  558. data/vendor/phonegap/lib/webos/framework/config.xml +47 -0
  559. data/vendor/phonegap/lib/webos/framework/cordova_48.png +0 -0
  560. data/vendor/phonegap/lib/webos/framework/css/index.css +100 -0
  561. data/vendor/phonegap/lib/webos/framework/img/cordova.png +0 -0
  562. data/vendor/phonegap/lib/webos/framework/index.html +24 -0
  563. data/vendor/phonegap/lib/webos/framework/js/index.js +20 -0
  564. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_128.png +0 -0
  565. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_16.png +0 -0
  566. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_24.png +0 -0
  567. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_256.png +0 -0
  568. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_32.png +0 -0
  569. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_48.png +0 -0
  570. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_512.png +0 -0
  571. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_64.png +0 -0
  572. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_36.png +0 -0
  573. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_48.png +0 -0
  574. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_72.png +0 -0
  575. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_96.png +0 -0
  576. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_bb_80.png +0 -0
  577. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_114.png +0 -0
  578. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_144.png +0 -0
  579. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_57.png +0 -0
  580. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_72.png +0 -0
  581. data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_landscape.png +0 -0
  582. data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_portrait.png +0 -0
  583. data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_landscape.png +0 -0
  584. data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_portrait.png +0 -0
  585. data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_landscape.png +0 -0
  586. data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_portrait.png +0 -0
  587. data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_landscape.png +0 -0
  588. data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_portrait.png +0 -0
  589. data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_300.png +0 -0
  590. data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_400.png +0 -0
  591. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_landscape.png +0 -0
  592. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_portrait.png +0 -0
  593. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_landscape.png +0 -0
  594. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_portrait.png +0 -0
  595. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_landscape.png +0 -0
  596. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_portrait.png +0 -0
  597. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_landscape.png +0 -0
  598. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_portrait.png +0 -0
  599. data/vendor/phonegap/lib/webos/framework/res/screen/windows_phone_portrait.jpg +0 -0
  600. data/vendor/phonegap/lib/webos/framework/spec.html +50 -0
  601. data/vendor/phonegap/lib/webos/framework/spec/helper.js +11 -0
  602. data/vendor/phonegap/lib/webos/framework/spec/index.js +49 -0
  603. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
  604. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
  605. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
  606. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
  607. data/vendor/phonegap/lib/webos/js/acceleration.js +59 -0
  608. data/vendor/phonegap/lib/webos/js/accelerometer.js +133 -0
  609. data/vendor/phonegap/lib/webos/js/application.js +54 -0
  610. data/vendor/phonegap/lib/webos/js/audio.js +113 -0
  611. data/vendor/phonegap/lib/webos/js/camera.js +60 -0
  612. data/vendor/phonegap/lib/webos/js/compass.js +167 -0
  613. data/vendor/phonegap/lib/webos/js/contacts.js +69 -0
  614. data/vendor/phonegap/lib/webos/js/cordova-core.js +405 -0
  615. data/vendor/phonegap/lib/webos/js/debugconsole.js +62 -0
  616. data/vendor/phonegap/lib/webos/js/device.js +98 -0
  617. data/vendor/phonegap/lib/webos/js/file.js +79 -0
  618. data/vendor/phonegap/lib/webos/js/geolocation.js +232 -0
  619. data/vendor/phonegap/lib/webos/js/map.js +67 -0
  620. data/vendor/phonegap/lib/webos/js/mojo.js +81 -0
  621. data/vendor/phonegap/lib/webos/js/mouse.js +40 -0
  622. data/vendor/phonegap/lib/webos/js/network.js +96 -0
  623. data/vendor/phonegap/lib/webos/js/notification.js +139 -0
  624. data/vendor/phonegap/lib/webos/js/orientation.js +124 -0
  625. data/vendor/phonegap/lib/webos/js/position.js +87 -0
  626. data/vendor/phonegap/lib/webos/js/service.js +74 -0
  627. data/vendor/phonegap/lib/webos/js/sms.js +60 -0
  628. data/vendor/phonegap/lib/webos/js/telephony.js +45 -0
  629. data/vendor/phonegap/lib/webos/js/window.js +88 -0
  630. data/vendor/phonegap/lib/webos/js/windowproperties.js +31 -0
  631. data/vendor/phonegap/lib/webos/lib/thumbs.0.5.2.js +104 -0
  632. data/vendor/phonegap/lib/windows-phone/LICENSE +12 -0
  633. data/vendor/phonegap/lib/windows-phone/NOTICE +5 -0
  634. data/vendor/phonegap/lib/windows-phone/README.md +50 -0
  635. data/vendor/phonegap/lib/windows-phone/VERSION +1 -0
  636. data/vendor/phonegap/lib/windows-phone/bin/create.bat +1 -0
  637. data/vendor/phonegap/lib/windows-phone/bin/create.js +154 -0
  638. data/vendor/phonegap/lib/windows-phone/example/App.xaml +37 -0
  639. data/vendor/phonegap/lib/windows-phone/example/App.xaml.cs +154 -0
  640. data/vendor/phonegap/lib/windows-phone/example/ApplicationIcon.png +0 -0
  641. data/vendor/phonegap/lib/windows-phone/example/Background.png +0 -0
  642. data/vendor/phonegap/lib/windows-phone/example/BuildManifestProcessor.js +81 -0
  643. data/vendor/phonegap/lib/windows-phone/example/CordovaExample.csproj +195 -0
  644. data/vendor/phonegap/lib/windows-phone/example/CordovaExample.sln +28 -0
  645. data/vendor/phonegap/lib/windows-phone/example/CordovaSourceDictionary.xml +4 -0
  646. data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml +52 -0
  647. data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml.cs +70 -0
  648. data/vendor/phonegap/lib/windows-phone/example/Plugins/Calculator.cs +46 -0
  649. data/vendor/phonegap/lib/windows-phone/example/Properties/AppManifest.xml +24 -0
  650. data/vendor/phonegap/lib/windows-phone/example/Properties/AssemblyInfo.cs +38 -0
  651. data/vendor/phonegap/lib/windows-phone/example/Properties/WMAppManifest.xml +59 -0
  652. data/vendor/phonegap/lib/windows-phone/example/SplashScreenImage.jpg +0 -0
  653. data/vendor/phonegap/lib/windows-phone/example/www/accelerometer.html +164 -0
  654. data/vendor/phonegap/lib/windows-phone/example/www/accelerometer2.html +175 -0
  655. data/vendor/phonegap/lib/windows-phone/example/www/audio.html +267 -0
  656. data/vendor/phonegap/lib/windows-phone/example/www/calculator.html +84 -0
  657. data/vendor/phonegap/lib/windows-phone/example/www/camera.html +115 -0
  658. data/vendor/phonegap/lib/windows-phone/example/www/capture.html +207 -0
  659. data/vendor/phonegap/lib/windows-phone/example/www/compass.html +150 -0
  660. data/vendor/phonegap/lib/windows-phone/example/www/contacts.html +169 -0
  661. data/vendor/phonegap/lib/windows-phone/example/www/cordova-2.0.0.js +5658 -0
  662. data/vendor/phonegap/lib/windows-phone/example/www/events.html +146 -0
  663. data/vendor/phonegap/lib/windows-phone/example/www/file.html +284 -0
  664. data/vendor/phonegap/lib/windows-phone/example/www/index.html +108 -0
  665. data/vendor/phonegap/lib/windows-phone/example/www/location.html +165 -0
  666. data/vendor/phonegap/lib/windows-phone/example/www/master.css +156 -0
  667. data/vendor/phonegap/lib/windows-phone/example/www/network.html +96 -0
  668. data/vendor/phonegap/lib/windows-phone/example/www/notification.html +112 -0
  669. data/vendor/phonegap/lib/windows-phone/example/www/storage.html +78 -0
  670. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.back.rest.png +0 -0
  671. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.close.rest.png +0 -0
  672. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.feature.video.rest.png +0 -0
  673. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.next.rest.png +0 -0
  674. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.save.rest.png +0 -0
  675. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.stop.rest.png +0 -0
  676. data/vendor/phonegap/lib/windows-phone/framework/Properties/AssemblyInfo.cs +35 -0
  677. data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.csproj +281 -0
  678. data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.sln +20 -0
  679. data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLibBare.csproj +127 -0
  680. data/vendor/phonegap/lib/windows-phone/framework/WP7GapClassLibBare.sln +20 -0
  681. data/vendor/phonegap/lib/windows-phone/framework/resources/notification-beep.wav +0 -0
  682. data/vendor/phonegap/lib/windows-phone/templates/CordovaStarter-2.0.0.zip +0 -0
  683. data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml +37 -0
  684. data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml.cs +154 -0
  685. data/vendor/phonegap/lib/windows-phone/templates/custom/ApplicationIcon.png +0 -0
  686. data/vendor/phonegap/lib/windows-phone/templates/custom/Background.png +0 -0
  687. data/vendor/phonegap/lib/windows-phone/templates/custom/BuildManifestProcessor.js +83 -0
  688. data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaAppProj.csproj +152 -0
  689. data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSolution.sln +22 -0
  690. data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSourceDictionary.xml +23 -0
  691. data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml +52 -0
  692. data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml.cs +72 -0
  693. data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AppManifest.xml +6 -0
  694. data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AssemblyInfo.cs +38 -0
  695. data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/WMAppManifest.xml +32 -0
  696. data/vendor/phonegap/lib/windows-phone/templates/custom/SplashScreenImage.jpg +0 -0
  697. data/vendor/phonegap/lib/windows-phone/templates/custom/VERSION +1 -0
  698. data/vendor/phonegap/lib/windows-phone/templates/custom/www/cordova-2.0.0.js +5672 -0
  699. data/vendor/phonegap/lib/windows-phone/templates/custom/www/css/index.css +100 -0
  700. data/vendor/phonegap/lib/windows-phone/templates/custom/www/img/cordova.png +0 -0
  701. data/vendor/phonegap/lib/windows-phone/templates/custom/www/index.html +24 -0
  702. data/vendor/phonegap/lib/windows-phone/templates/custom/www/js/index.js +20 -0
  703. data/vendor/phonegap/lib/windows-phone/templates/description.txt +4 -0
  704. data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml +37 -0
  705. data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml.cs +154 -0
  706. data/vendor/phonegap/lib/windows-phone/templates/full/ApplicationIcon.png +0 -0
  707. data/vendor/phonegap/lib/windows-phone/templates/full/Background.png +0 -0
  708. data/vendor/phonegap/lib/windows-phone/templates/full/BuildManifestProcessor.js +80 -0
  709. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaAppProj.csproj +153 -0
  710. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaLib/WP7CordovaClassLib.dll +0 -0
  711. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSolution.sln +22 -0
  712. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSourceDictionary.xml +9 -0
  713. data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml +52 -0
  714. data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml.cs +72 -0
  715. data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AppManifest.xml +6 -0
  716. data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AssemblyInfo.cs +38 -0
  717. data/vendor/phonegap/lib/windows-phone/templates/full/Properties/WMAppManifest.xml +41 -0
  718. data/vendor/phonegap/lib/windows-phone/templates/full/SplashScreenImage.jpg +0 -0
  719. data/vendor/phonegap/lib/windows-phone/templates/full/VERSION +1 -0
  720. data/vendor/phonegap/lib/windows-phone/templates/full/cordova/debug.bat +68 -0
  721. data/vendor/phonegap/lib/windows-phone/templates/full/cordova/emulate.bat +24 -0
  722. data/vendor/phonegap/lib/windows-phone/templates/full/www/cordova-2.0.0.js +5672 -0
  723. data/vendor/phonegap/lib/windows-phone/templates/full/www/css/index.css +100 -0
  724. data/vendor/phonegap/lib/windows-phone/templates/full/www/img/cordova.png +0 -0
  725. data/vendor/phonegap/lib/windows-phone/templates/full/www/index.html +24 -0
  726. data/vendor/phonegap/lib/windows-phone/templates/full/www/js/index.js +20 -0
  727. data/vendor/phonegap/lib/windows-phone/templates/pg_templateIcon.png +0 -0
  728. data/vendor/phonegap/lib/windows-phone/templates/pg_templatePreview.jpg +0 -0
  729. data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml +37 -0
  730. data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml.cs +154 -0
  731. data/vendor/phonegap/lib/windows-phone/templates/standalone/ApplicationIcon.png +0 -0
  732. data/vendor/phonegap/lib/windows-phone/templates/standalone/Background.png +0 -0
  733. data/vendor/phonegap/lib/windows-phone/templates/standalone/BuildManifestProcessor.js +80 -0
  734. data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaAppProj.csproj +231 -0
  735. data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSolution.sln +22 -0
  736. data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSourceDictionary.xml +4 -0
  737. data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml +52 -0
  738. data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml.cs +72 -0
  739. data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AppManifest.xml +6 -0
  740. data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AssemblyInfo.cs +38 -0
  741. data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/WMAppManifest.xml +42 -0
  742. data/vendor/phonegap/lib/windows-phone/templates/standalone/SplashScreenImage.jpg +0 -0
  743. data/vendor/phonegap/lib/windows-phone/templates/standalone/VERSION +1 -0
  744. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/debug.bat +68 -0
  745. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/emulate.bat +24 -0
  746. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/BrowserMouseHelper.cs +345 -0
  747. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CommandFactory.cs +104 -0
  748. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Accelerometer.cs +195 -0
  749. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/AudioPlayer.cs +617 -0
  750. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/BaseCommand.cs +129 -0
  751. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Battery.cs +79 -0
  752. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Camera.cs +490 -0
  753. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Capture.cs +735 -0
  754. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Compass.cs +364 -0
  755. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Contacts.cs +643 -0
  756. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/DebugConsole.cs +49 -0
  757. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Device.cs +124 -0
  758. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/File.cs +1441 -0
  759. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/FileTransfer.cs +525 -0
  760. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/GeoLocation.cs +34 -0
  761. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/ImageExifHelper.cs +222 -0
  762. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Media.cs +522 -0
  763. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/MimeTypeMapper.cs +99 -0
  764. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/NetworkStatus.cs +124 -0
  765. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Notification.cs +322 -0
  766. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaCommandCall.cs +86 -0
  767. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml +65 -0
  768. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml.cs +451 -0
  769. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/DOMStorageHelper.cs +145 -0
  770. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.back.rest.png +0 -0
  771. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.close.rest.png +0 -0
  772. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.feature.video.rest.png +0 -0
  773. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.next.rest.png +0 -0
  774. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.save.rest.png +0 -0
  775. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.stop.rest.png +0 -0
  776. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/JSON/JsonHelper.cs +97 -0
  777. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/NativeExecution.cs +207 -0
  778. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/OrientationHelper.cs +128 -0
  779. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/PluginResult.cs +165 -0
  780. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/ScriptCallback.cs +80 -0
  781. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioCaptureTask.cs +105 -0
  782. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml +66 -0
  783. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml.cs +387 -0
  784. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml +26 -0
  785. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml.cs +107 -0
  786. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml +62 -0
  787. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml.cs +41 -0
  788. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoCaptureTask.cs +104 -0
  789. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml +52 -0
  790. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml.cs +405 -0
  791. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/resources/notification-beep.wav +0 -0
  792. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/cordova-2.0.0.js +5672 -0
  793. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/css/index.css +100 -0
  794. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/img/cordova.png +0 -0
  795. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/index.html +24 -0
  796. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/js/index.js +20 -0
  797. data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.cs +64 -0
  798. data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.csproj +174 -0
  799. data/vendor/phonegap/lib/windows-phone/templates/vspackage/GlobalSuppressions.cs +11 -0
  800. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Guids.cs +14 -0
  801. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Key.snk +0 -0
  802. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Properties/AssemblyInfo.cs +36 -0
  803. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.Designer.cs +63 -0
  804. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.resx +129 -0
  805. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources/Package.ico +0 -0
  806. data/vendor/phonegap/lib/windows-phone/templates/vspackage/VSPackage.resx +140 -0
  807. data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templateIcon.png +0 -0
  808. data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templatePreview.jpg +0 -0
  809. data/vendor/phonegap/lib/windows-phone/templates/vspackage/source.extension.vsixmanifest +30 -0
  810. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml +38 -0
  811. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml.cs +158 -0
  812. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/ApplicationIcon.png +0 -0
  813. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Background.png +0 -0
  814. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/BuildManifestProcessor.js +80 -0
  815. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/CordovaSourceDictionary.xml +4 -0
  816. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml +52 -0
  817. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml.cs +42 -0
  818. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.csproj +141 -0
  819. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.sln +28 -0
  820. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AppManifest.xml +6 -0
  821. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AssemblyInfo.cs +35 -0
  822. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/WMAppManifest.xml +35 -0
  823. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/SplashScreenImage.jpg +0 -0
  824. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/cordova-2.0.0.js +5658 -0
  825. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/index.html +43 -0
  826. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/master.css +112 -0
  827. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy.sln +20 -0
  828. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/CordovaDeploy.csproj +79 -0
  829. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Program.cs +219 -0
  830. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Properties/AssemblyInfo.cs +36 -0
  831. data/vendor/phonegap/lib/windows-phone/tooling/scripts/debug.bat +68 -0
  832. data/vendor/phonegap/lib/windows-phone/tooling/scripts/emulate.bat +24 -0
  833. metadata +1040 -0
@@ -0,0 +1,49 @@
1
+ /*
2
+ Licensed under the Apache License, Version 2.0 (the "License");
3
+ you may not use this file except in compliance with the License.
4
+ You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+ */
14
+
15
+ using System;
16
+ using System.Net;
17
+ using System.Windows;
18
+ using System.Windows.Controls;
19
+ using System.Windows.Documents;
20
+ using System.Windows.Ink;
21
+ using System.Windows.Input;
22
+ using System.Windows.Media;
23
+ using System.Windows.Media.Animation;
24
+ using System.Windows.Shapes;
25
+ using System.Diagnostics;
26
+
27
+ namespace WP7CordovaClassLib.Cordova.Commands
28
+ {
29
+
30
+ public class DebugConsole : BaseCommand
31
+ {
32
+ // warn, error
33
+ public void log(string msg)
34
+ {
35
+ Debug.WriteLine("Log:" + msg);
36
+ }
37
+
38
+ public void error(string msg)
39
+ {
40
+ Debug.WriteLine("Error:" + msg);
41
+ }
42
+
43
+ public void warn(string msg)
44
+ {
45
+ Debug.WriteLine("Warn:" + msg);
46
+ }
47
+
48
+ }
49
+ }
@@ -0,0 +1,124 @@
1
+ /*
2
+ Licensed under the Apache License, Version 2.0 (the "License");
3
+ you may not use this file except in compliance with the License.
4
+ You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+ */
14
+
15
+ using System;
16
+ using System.Net;
17
+ using System.Windows;
18
+ using System.Windows.Controls;
19
+ using System.Windows.Documents;
20
+ using System.Windows.Ink;
21
+ using System.Windows.Input;
22
+ using System.Windows.Media;
23
+ using System.Windows.Media.Animation;
24
+ using System.Windows.Shapes;
25
+ using Microsoft.Phone.Info;
26
+ using System.IO.IsolatedStorage;
27
+ using System.Windows.Resources;
28
+ using System.IO;
29
+ using System.Diagnostics;
30
+
31
+ namespace WP7CordovaClassLib.Cordova.Commands
32
+ {
33
+ public class Device : BaseCommand
34
+ {
35
+ public void getDeviceInfo(string notused)
36
+ {
37
+
38
+ string res = String.Format("\"name\":\"{0}\",\"cordova\":\"{1}\",\"platform\":\"{2}\",\"uuid\":\"{3}\",\"version\":\"{4}\"",
39
+ this.name,
40
+ this.cordova,
41
+ this.platform,
42
+ this.uuid,
43
+ this.version);
44
+
45
+
46
+
47
+ res = "{" + res + "}";
48
+ //Debug.WriteLine("Result::" + res);
49
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, res));
50
+ }
51
+
52
+ public string name
53
+ {
54
+ get
55
+ {
56
+ return DeviceStatus.DeviceName;
57
+ }
58
+ }
59
+
60
+ public string cordova
61
+ {
62
+ get
63
+ {
64
+ // TODO: should be able to dynamically read the Cordova version from somewhere...
65
+ return "2.0.0";
66
+ }
67
+ }
68
+
69
+ public string platform
70
+ {
71
+ get
72
+ {
73
+ return Environment.OSVersion.Platform.ToString();
74
+ }
75
+ }
76
+
77
+ public string uuid
78
+ {
79
+ get
80
+ {
81
+ string returnVal = "";
82
+ object id;
83
+ UserExtendedProperties.TryGetValue("ANID", out id);
84
+
85
+ if (id != null)
86
+ {
87
+ returnVal = id.ToString().Substring(2, 32);
88
+ }
89
+ else
90
+ {
91
+ returnVal = "???unknown???";
92
+
93
+ using (IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication())
94
+ {
95
+ try
96
+ {
97
+ IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream("DeviceID.txt", FileMode.Open, FileAccess.Read, appStorage);
98
+
99
+ using (StreamReader reader = new StreamReader(fileStream))
100
+ {
101
+ returnVal = reader.ReadLine();
102
+ }
103
+ }
104
+ catch (Exception /*ex*/)
105
+ {
106
+
107
+ }
108
+ }
109
+ }
110
+
111
+ return returnVal;
112
+ }
113
+ }
114
+
115
+ public string version
116
+ {
117
+ get
118
+ {
119
+ return Environment.OSVersion.Version.ToString();
120
+ }
121
+ }
122
+
123
+ }
124
+ }
@@ -0,0 +1,1441 @@
1
+ /*
2
+ Licensed under the Apache License, Version 2.0 (the "License");
3
+ you may not use this file except in compliance with the License.
4
+ You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+ */
14
+
15
+ using System;
16
+ using System.Collections.Generic;
17
+ using System.IO;
18
+ using System.IO.IsolatedStorage;
19
+ using System.Runtime.Serialization;
20
+ using System.Security;
21
+ using System.Text;
22
+ using System.Diagnostics;
23
+
24
+ namespace WP7CordovaClassLib.Cordova.Commands
25
+ {
26
+ /// <summary>
27
+ /// Provides access to isolated storage
28
+ /// </summary>
29
+ public class File : BaseCommand
30
+ {
31
+ // Error codes
32
+ public const int NOT_FOUND_ERR = 1;
33
+ public const int SECURITY_ERR = 2;
34
+ public const int ABORT_ERR = 3;
35
+ public const int NOT_READABLE_ERR = 4;
36
+ public const int ENCODING_ERR = 5;
37
+ public const int NO_MODIFICATION_ALLOWED_ERR = 6;
38
+ public const int INVALID_STATE_ERR = 7;
39
+ public const int SYNTAX_ERR = 8;
40
+ public const int INVALID_MODIFICATION_ERR = 9;
41
+ public const int QUOTA_EXCEEDED_ERR = 10;
42
+ public const int TYPE_MISMATCH_ERR = 11;
43
+ public const int PATH_EXISTS_ERR = 12;
44
+
45
+ // File system options
46
+ public const int TEMPORARY = 0;
47
+ public const int PERSISTENT = 1;
48
+ public const int RESOURCE = 2;
49
+ public const int APPLICATION = 3;
50
+
51
+ /// <summary>
52
+ /// Temporary directory name
53
+ /// </summary>
54
+ private readonly string TMP_DIRECTORY_NAME = "tmp";
55
+
56
+ /// <summary>
57
+ /// Represents error code for callback
58
+ /// </summary>
59
+ [DataContract]
60
+ public class ErrorCode
61
+ {
62
+ /// <summary>
63
+ /// Error code
64
+ /// </summary>
65
+ [DataMember(IsRequired = true, Name = "code")]
66
+ public int Code { get; set; }
67
+
68
+ /// <summary>
69
+ /// Creates ErrorCode object
70
+ /// </summary>
71
+ public ErrorCode(int code)
72
+ {
73
+ this.Code = code;
74
+ }
75
+ }
76
+
77
+ /// <summary>
78
+ /// Represents File action options.
79
+ /// </summary>
80
+ [DataContract]
81
+ public class FileOptions
82
+ {
83
+ /// <summary>
84
+ /// File path
85
+ /// </summary>
86
+ ///
87
+ private string _fileName;
88
+ [DataMember(Name = "fileName")]
89
+ public string FilePath
90
+ {
91
+ get
92
+ {
93
+ return this._fileName;
94
+ }
95
+
96
+ set
97
+ {
98
+ int index = value.IndexOfAny(new char[] { '#', '?' });
99
+ this._fileName = index > -1 ? value.Substring(0, index) : value;
100
+ }
101
+ }
102
+
103
+ /// <summary>
104
+ /// Full entryPath
105
+ /// </summary>
106
+ [DataMember(Name = "fullPath")]
107
+ public string FullPath { get; set; }
108
+
109
+ /// <summary>
110
+ /// Directory name
111
+ /// </summary>
112
+ [DataMember(Name = "dirName")]
113
+ public string DirectoryName { get; set; }
114
+
115
+ /// <summary>
116
+ /// Path to create file/directory
117
+ /// </summary>
118
+ [DataMember(Name = "path")]
119
+ public string Path { get; set; }
120
+
121
+ /// <summary>
122
+ /// The encoding to use to encode the file's content. Default is UTF8.
123
+ /// </summary>
124
+ [DataMember(Name = "encoding")]
125
+ public string Encoding { get; set; }
126
+
127
+ /// <summary>
128
+ /// Uri to get file
129
+ /// </summary>
130
+ ///
131
+ private string _uri;
132
+ [DataMember(Name = "uri")]
133
+ public string Uri
134
+ {
135
+ get
136
+ {
137
+ return this._uri;
138
+ }
139
+
140
+ set
141
+ {
142
+ int index = value.IndexOfAny(new char[] { '#', '?' });
143
+ this._uri = index > -1 ? value.Substring(0, index) : value;
144
+ }
145
+ }
146
+
147
+ /// <summary>
148
+ /// Size to truncate file
149
+ /// </summary>
150
+ [DataMember(Name = "size")]
151
+ public long Size { get; set; }
152
+
153
+ /// <summary>
154
+ /// Data to write in file
155
+ /// </summary>
156
+ [DataMember(Name = "data")]
157
+ public string Data { get; set; }
158
+
159
+ /// <summary>
160
+ /// Position the writing starts with
161
+ /// </summary>
162
+ [DataMember(Name = "position")]
163
+ public int Position { get; set; }
164
+
165
+ /// <summary>
166
+ /// Type of file system requested
167
+ /// </summary>
168
+ [DataMember(Name = "type")]
169
+ public int FileSystemType { get; set; }
170
+
171
+ /// <summary>
172
+ /// New file/directory name
173
+ /// </summary>
174
+ [DataMember(Name = "newName")]
175
+ public string NewName { get; set; }
176
+
177
+ /// <summary>
178
+ /// Destination directory to copy/move file/directory
179
+ /// </summary>
180
+ [DataMember(Name = "parent")]
181
+ public string Parent { get; set; }
182
+
183
+ /// <summary>
184
+ /// Options for getFile/getDirectory methods
185
+ /// </summary>
186
+ [DataMember(Name = "options")]
187
+ public CreatingOptions CreatingOpt { get; set; }
188
+
189
+ /// <summary>
190
+ /// Creates options object with default parameters
191
+ /// </summary>
192
+ public FileOptions()
193
+ {
194
+ this.SetDefaultValues(new StreamingContext());
195
+ }
196
+
197
+ /// <summary>
198
+ /// Initializes default values for class fields.
199
+ /// Implemented in separate method because default constructor is not invoked during deserialization.
200
+ /// </summary>
201
+ /// <param name="context"></param>
202
+ [OnDeserializing()]
203
+ public void SetDefaultValues(StreamingContext context)
204
+ {
205
+ this.Encoding = "UTF-8";
206
+ this.FilePath = "";
207
+ this.FileSystemType = -1;
208
+ }
209
+ }
210
+
211
+ /// <summary>
212
+ /// Stores image info
213
+ /// </summary>
214
+ [DataContract]
215
+ public class FileMetadata
216
+ {
217
+ [DataMember(Name = "fileName")]
218
+ public string FileName { get; set; }
219
+
220
+ [DataMember(Name = "fullPath")]
221
+ public string FullPath { get; set; }
222
+
223
+ [DataMember(Name = "type")]
224
+ public string Type { get; set; }
225
+
226
+ [DataMember(Name = "lastModifiedDate")]
227
+ public string LastModifiedDate { get; set; }
228
+
229
+ [DataMember(Name = "size")]
230
+ public long Size { get; set; }
231
+
232
+ public FileMetadata(string filePath)
233
+ {
234
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
235
+ {
236
+ if ((string.IsNullOrEmpty(filePath)) || (!isoFile.FileExists(filePath)))
237
+ {
238
+ throw new FileNotFoundException("File doesn't exist");
239
+ }
240
+ //TODO get file size the other way if possible
241
+ using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filePath, FileMode.Open, FileAccess.Read, isoFile))
242
+ {
243
+ this.Size = stream.Length;
244
+ }
245
+ this.FullPath = filePath;
246
+ this.FileName = System.IO.Path.GetFileName(filePath);
247
+ this.Type = MimeTypeMapper.GetMimeType(filePath);
248
+ this.LastModifiedDate = isoFile.GetLastWriteTime(filePath).DateTime.ToString();
249
+ }
250
+ }
251
+ }
252
+
253
+ /// <summary>
254
+ /// Represents file or directory modification metadata
255
+ /// </summary>
256
+ [DataContract]
257
+ public class ModificationMetadata
258
+ {
259
+ /// <summary>
260
+ /// Modification time
261
+ /// </summary>
262
+ [DataMember]
263
+ public string modificationTime { get; set; }
264
+ }
265
+
266
+ /// <summary>
267
+ /// Represents file or directory entry
268
+ /// </summary>
269
+ [DataContract]
270
+ public class FileEntry
271
+ {
272
+
273
+ /// <summary>
274
+ /// File type
275
+ /// </summary>
276
+ [DataMember(Name = "isFile")]
277
+ public bool IsFile { get; set; }
278
+
279
+ /// <summary>
280
+ /// Directory type
281
+ /// </summary>
282
+ [DataMember(Name = "isDirectory")]
283
+ public bool IsDirectory { get; set; }
284
+
285
+ /// <summary>
286
+ /// File/directory name
287
+ /// </summary>
288
+ [DataMember(Name = "name")]
289
+ public string Name { get; set; }
290
+
291
+ /// <summary>
292
+ /// Full path to file/directory
293
+ /// </summary>
294
+ [DataMember(Name = "fullPath")]
295
+ public string FullPath { get; set; }
296
+
297
+ public static FileEntry GetEntry(string filePath)
298
+ {
299
+ FileEntry entry = null;
300
+ try
301
+ {
302
+ entry = new FileEntry(filePath);
303
+
304
+ }
305
+ catch (Exception)
306
+ {
307
+ Debug.WriteLine("Exception in GetEntry for filePath :: " + filePath);
308
+ }
309
+ return entry;
310
+ }
311
+
312
+ /// <summary>
313
+ /// Creates object and sets necessary properties
314
+ /// </summary>
315
+ /// <param name="filePath"></param>
316
+ public FileEntry(string filePath)
317
+ {
318
+ if (string.IsNullOrEmpty(filePath))
319
+ {
320
+ throw new ArgumentException();
321
+ }
322
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
323
+ {
324
+ this.IsFile = isoFile.FileExists(filePath);
325
+ this.IsDirectory = isoFile.DirectoryExists(filePath);
326
+ if (IsFile)
327
+ {
328
+ this.Name = Path.GetFileName(filePath);
329
+ }
330
+ else if (IsDirectory)
331
+ {
332
+ this.Name = this.GetDirectoryName(filePath);
333
+ if (string.IsNullOrEmpty(Name))
334
+ {
335
+ this.Name = "/";
336
+ }
337
+ }
338
+ else
339
+ {
340
+ throw new FileNotFoundException();
341
+ }
342
+
343
+ this.FullPath = new Uri(filePath).LocalPath;
344
+ }
345
+ }
346
+
347
+ /// <summary>
348
+ /// Extracts directory name from path string
349
+ /// Path should refer to a directory, for example \foo\ or /foo.
350
+ /// </summary>
351
+ /// <param name="path"></param>
352
+ /// <returns></returns>
353
+ private string GetDirectoryName(string path)
354
+ {
355
+ if (String.IsNullOrEmpty(path))
356
+ {
357
+ return path;
358
+ }
359
+
360
+ string[] split = path.Split(new char[] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries);
361
+ if (split.Length < 1)
362
+ {
363
+ return null;
364
+ }
365
+ else
366
+ {
367
+ return split[split.Length - 1];
368
+ }
369
+ }
370
+ }
371
+
372
+
373
+ /// <summary>
374
+ /// Represents info about requested file system
375
+ /// </summary>
376
+ [DataContract]
377
+ public class FileSystemInfo
378
+ {
379
+ /// <summary>
380
+ /// file system type
381
+ /// </summary>
382
+ [DataMember(Name = "name", IsRequired = true)]
383
+ public string Name { get; set; }
384
+
385
+ /// <summary>
386
+ /// Root directory entry
387
+ /// </summary>
388
+ [DataMember(Name = "root", EmitDefaultValue = false)]
389
+ public FileEntry Root { get; set; }
390
+
391
+ /// <summary>
392
+ /// Creates class instance
393
+ /// </summary>
394
+ /// <param name="name"></param>
395
+ /// <param name="rootEntry"> Root directory</param>
396
+ public FileSystemInfo(string name, FileEntry rootEntry = null)
397
+ {
398
+ Name = name;
399
+ Root = rootEntry;
400
+ }
401
+ }
402
+
403
+ [DataContract]
404
+ public class CreatingOptions
405
+ {
406
+ /// <summary>
407
+ /// Create file/directory if is doesn't exist
408
+ /// </summary>
409
+ [DataMember(Name = "create")]
410
+ public bool Create { get; set; }
411
+
412
+ /// <summary>
413
+ /// Generate an exception if create=true and file/directory already exists
414
+ /// </summary>
415
+ [DataMember(Name = "exclusive")]
416
+ public bool Exclusive { get; set; }
417
+
418
+
419
+ }
420
+
421
+ /// <summary>
422
+ /// File options
423
+ /// </summary>
424
+ private FileOptions fileOptions;
425
+
426
+ private bool LoadFileOptions(string options)
427
+ {
428
+ try
429
+ {
430
+ fileOptions = JSON.JsonHelper.Deserialize<FileOptions>(options);
431
+ }
432
+ catch (Exception)
433
+ {
434
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
435
+ return false;
436
+ }
437
+ return true;
438
+ }
439
+
440
+ // returns null value if it fails.
441
+ private string getSingleStringOption(string options)
442
+ {
443
+ string result = null;
444
+ try
445
+ {
446
+ result = JSON.JsonHelper.Deserialize<string[]>(options)[0];
447
+ }
448
+ catch (Exception)
449
+ {
450
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
451
+ }
452
+ return result;
453
+ }
454
+
455
+ /// <summary>
456
+ /// Gets amount of free space available for Isolated Storage
457
+ /// </summary>
458
+ /// <param name="options">No options is needed for this method</param>
459
+ public void getFreeDiskSpace(string options)
460
+ {
461
+ try
462
+ {
463
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
464
+ {
465
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, isoFile.AvailableFreeSpace));
466
+ }
467
+ }
468
+ catch (IsolatedStorageException)
469
+ {
470
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
471
+ }
472
+ catch (Exception ex)
473
+ {
474
+ if (!this.HandleException(ex))
475
+ {
476
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
477
+ }
478
+ }
479
+ }
480
+
481
+ /// <summary>
482
+ /// Check if file exists
483
+ /// </summary>
484
+ /// <param name="options">File path</param>
485
+ public void testFileExists(string options)
486
+ {
487
+ IsDirectoryOrFileExist(options, false);
488
+ }
489
+
490
+ /// <summary>
491
+ /// Check if directory exists
492
+ /// </summary>
493
+ /// <param name="options">directory name</param>
494
+ public void testDirectoryExists(string options)
495
+ {
496
+ IsDirectoryOrFileExist(options, true);
497
+ }
498
+
499
+ /// <summary>
500
+ /// Check if file or directory exist
501
+ /// </summary>
502
+ /// <param name="options">File path/Directory name</param>
503
+ /// <param name="isDirectory">Flag to recognize what we should check</param>
504
+ public void IsDirectoryOrFileExist(string options, bool isDirectory)
505
+ {
506
+ if (!LoadFileOptions(options))
507
+ {
508
+ return;
509
+ }
510
+
511
+ try
512
+ {
513
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
514
+ {
515
+ bool isExist;
516
+ if (isDirectory)
517
+ {
518
+ isExist = isoFile.DirectoryExists(fileOptions.DirectoryName);
519
+ }
520
+ else
521
+ {
522
+ isExist = isoFile.FileExists(fileOptions.FilePath);
523
+ }
524
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, isExist));
525
+ }
526
+ }
527
+ catch (IsolatedStorageException) // default handler throws INVALID_MODIFICATION_ERR
528
+ {
529
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
530
+ }
531
+ catch (Exception ex)
532
+ {
533
+ if (!this.HandleException(ex))
534
+ {
535
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
536
+ }
537
+ }
538
+
539
+ }
540
+
541
+ public void readAsDataURL(string options)
542
+ {
543
+ // exception+PluginResult are handled by getSingleStringOptions
544
+ string filePath = getSingleStringOption(options);
545
+ if (filePath != null)
546
+ {
547
+ try
548
+ {
549
+ string base64URL = null;
550
+
551
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
552
+ {
553
+ if (!isoFile.FileExists(filePath))
554
+ {
555
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
556
+ return;
557
+ }
558
+ string mimeType = MimeTypeMapper.GetMimeType(filePath);
559
+
560
+ using (IsolatedStorageFileStream stream = isoFile.OpenFile(filePath, FileMode.Open, FileAccess.Read))
561
+ {
562
+ string base64String = GetFileContent(stream);
563
+ base64URL = "data:" + mimeType + ";base64," + base64String;
564
+ }
565
+ }
566
+
567
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, base64URL));
568
+ }
569
+ catch (Exception ex)
570
+ {
571
+ if (!this.HandleException(ex))
572
+ {
573
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
574
+ }
575
+ }
576
+ }
577
+ }
578
+
579
+ public void readAsText(string options)
580
+ {
581
+ // TODO: try/catch
582
+ string[] optStrings = JSON.JsonHelper.Deserialize<string[]>(options);
583
+ string filePath = optStrings[0];
584
+ string encStr = optStrings[1];
585
+
586
+
587
+ try
588
+ {
589
+ string text;
590
+
591
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
592
+ {
593
+ if (!isoFile.FileExists(filePath))
594
+ {
595
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
596
+ return;
597
+ }
598
+ Encoding encoding = Encoding.GetEncoding(encStr);
599
+
600
+ using (TextReader reader = new StreamReader(isoFile.OpenFile(filePath, FileMode.Open, FileAccess.Read), encoding))
601
+ {
602
+ text = reader.ReadToEnd();
603
+ }
604
+ }
605
+
606
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, text));
607
+ }
608
+ catch (Exception ex)
609
+ {
610
+ if (!this.HandleException(ex))
611
+ {
612
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
613
+ }
614
+ }
615
+ }
616
+
617
+
618
+ public void truncate(string options)
619
+ {
620
+ // TODO: try/catch
621
+ string[] optStrings = JSON.JsonHelper.Deserialize<string[]>(options);
622
+
623
+ string filePath = optStrings[0];
624
+ int size = int.Parse(optStrings[1]);
625
+
626
+ try
627
+ {
628
+ long streamLength = 0;
629
+
630
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
631
+ {
632
+ if (!isoFile.FileExists(filePath))
633
+ {
634
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
635
+ return;
636
+ }
637
+
638
+ using (FileStream stream = new IsolatedStorageFileStream(filePath, FileMode.Open, FileAccess.ReadWrite, isoFile))
639
+ {
640
+ if (0 <= size && size < stream.Length)
641
+ {
642
+ stream.SetLength(size);
643
+ }
644
+
645
+ streamLength = stream.Length;
646
+ }
647
+ }
648
+
649
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, streamLength));
650
+ }
651
+ catch (Exception ex)
652
+ {
653
+ if (!this.HandleException(ex))
654
+ {
655
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
656
+ }
657
+ }
658
+ }
659
+
660
+ //write:["filePath","data","position"],
661
+ public void write(string options)
662
+ {
663
+ // TODO: try/catch
664
+ string[] optStrings = JSON.JsonHelper.Deserialize<string[]>(options);
665
+
666
+ string filePath = optStrings[0];
667
+ string data = optStrings[1];
668
+ int position = int.Parse(optStrings[2]);
669
+
670
+ try
671
+ {
672
+ if (string.IsNullOrEmpty(data))
673
+ {
674
+ Debug.WriteLine("Expected some data to be send in the write command to {0}", filePath);
675
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
676
+ return;
677
+ }
678
+
679
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
680
+ {
681
+ // create the file if not exists
682
+ if (!isoFile.FileExists(filePath))
683
+ {
684
+ var file = isoFile.CreateFile(filePath);
685
+ file.Close();
686
+ }
687
+
688
+ using (FileStream stream = new IsolatedStorageFileStream(filePath, FileMode.Open, FileAccess.ReadWrite, isoFile))
689
+ {
690
+ if (0 <= position && position < stream.Length)
691
+ {
692
+ stream.SetLength(position);
693
+ }
694
+ using (BinaryWriter writer = new BinaryWriter(stream))
695
+ {
696
+ writer.Seek(0, SeekOrigin.End);
697
+ writer.Write(data.ToCharArray());
698
+ }
699
+ }
700
+ }
701
+
702
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, data.Length));
703
+ }
704
+ catch (Exception ex)
705
+ {
706
+ if (!this.HandleException(ex))
707
+ {
708
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
709
+ }
710
+ }
711
+ }
712
+
713
+ /// <summary>
714
+ /// Look up metadata about this entry.
715
+ /// </summary>
716
+ /// <param name="options">filePath to entry</param>
717
+ public void getMetadata(string options)
718
+ {
719
+ string filePath = getSingleStringOption(options);
720
+
721
+ if (filePath != null)
722
+ {
723
+ try
724
+ {
725
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
726
+ {
727
+ if (isoFile.FileExists(filePath))
728
+ {
729
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK,
730
+ new ModificationMetadata() { modificationTime = isoFile.GetLastWriteTime(filePath).DateTime.ToString() }));
731
+ }
732
+ else if (isoFile.DirectoryExists(filePath))
733
+ {
734
+ string modTime = isoFile.GetLastWriteTime(filePath).DateTime.ToString();
735
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, new ModificationMetadata() { modificationTime = modTime }));
736
+ }
737
+ else
738
+ {
739
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
740
+ }
741
+
742
+ }
743
+ }
744
+ catch (IsolatedStorageException)
745
+ {
746
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
747
+ }
748
+ catch (Exception ex)
749
+ {
750
+ if (!this.HandleException(ex))
751
+ {
752
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
753
+ }
754
+ }
755
+ }
756
+
757
+ }
758
+
759
+
760
+ /// <summary>
761
+ /// Returns a File that represents the current state of the file that this FileEntry represents.
762
+ /// </summary>
763
+ /// <param name="filePath">filePath to entry</param>
764
+ /// <returns></returns>
765
+ public void getFileMetadata(string options)
766
+ {
767
+ string filePath = getSingleStringOption(options);
768
+ if (filePath != null)
769
+ {
770
+ try
771
+ {
772
+ FileMetadata metaData = new FileMetadata(filePath);
773
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, metaData));
774
+ }
775
+ catch (IsolatedStorageException)
776
+ {
777
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
778
+ }
779
+ catch (Exception ex)
780
+ {
781
+ if (!this.HandleException(ex))
782
+ {
783
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_READABLE_ERR));
784
+ }
785
+ }
786
+ }
787
+ }
788
+
789
+ /// <summary>
790
+ /// Look up the parent DirectoryEntry containing this Entry.
791
+ /// If this Entry is the root of IsolatedStorage, its parent is itself.
792
+ /// </summary>
793
+ /// <param name="options"></param>
794
+ public void getParent(string options)
795
+ {
796
+ string filePath = getSingleStringOption(options);
797
+ if (filePath != null)
798
+ {
799
+ try
800
+ {
801
+ if (string.IsNullOrEmpty(filePath))
802
+ {
803
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
804
+ return;
805
+ }
806
+
807
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
808
+ {
809
+ FileEntry entry;
810
+
811
+ if (isoFile.FileExists(filePath) || isoFile.DirectoryExists(filePath))
812
+ {
813
+ string path = this.GetParentDirectory(filePath);
814
+ entry = FileEntry.GetEntry(path);
815
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, entry));
816
+ }
817
+ else
818
+ {
819
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
820
+ }
821
+
822
+ }
823
+ }
824
+ catch (Exception ex)
825
+ {
826
+ if (!this.HandleException(ex))
827
+ {
828
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
829
+ }
830
+ }
831
+ }
832
+ }
833
+
834
+ public void remove(string options)
835
+ {
836
+ string filePath = getSingleStringOption(options);
837
+ if (filePath != null)
838
+ {
839
+ try
840
+ {
841
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
842
+ {
843
+ if (isoFile.FileExists(filePath))
844
+ {
845
+ isoFile.DeleteFile(filePath);
846
+ }
847
+ else
848
+ {
849
+ if (isoFile.DirectoryExists(filePath))
850
+ {
851
+ isoFile.DeleteDirectory(filePath);
852
+ }
853
+ else
854
+ {
855
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
856
+ return;
857
+ }
858
+ }
859
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
860
+ }
861
+ }
862
+ catch (Exception ex)
863
+ {
864
+ if (!this.HandleException(ex))
865
+ {
866
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
867
+ }
868
+ }
869
+ }
870
+ }
871
+
872
+ public void removeRecursively(string options)
873
+ {
874
+ string filePath = getSingleStringOption(options);
875
+ if (filePath != null)
876
+ {
877
+ if (string.IsNullOrEmpty(filePath))
878
+ {
879
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
880
+ }
881
+ else
882
+ {
883
+ removeDirRecursively(filePath);
884
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
885
+ }
886
+ }
887
+ }
888
+
889
+ public void readEntries(string options)
890
+ {
891
+ string filePath = getSingleStringOption(options);
892
+ if (filePath != null)
893
+ {
894
+ try
895
+ {
896
+ if (string.IsNullOrEmpty(filePath))
897
+ {
898
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
899
+ return;
900
+ }
901
+
902
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
903
+ {
904
+ if (isoFile.DirectoryExists(filePath))
905
+ {
906
+ string path = File.AddSlashToDirectory(filePath);
907
+ List<FileEntry> entries = new List<FileEntry>();
908
+ string[] files = isoFile.GetFileNames(path + "*");
909
+ string[] dirs = isoFile.GetDirectoryNames(path + "*");
910
+ foreach (string file in files)
911
+ {
912
+ entries.Add(FileEntry.GetEntry(path + file));
913
+ }
914
+ foreach (string dir in dirs)
915
+ {
916
+ entries.Add(FileEntry.GetEntry(path + dir + "/"));
917
+ }
918
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, entries));
919
+ }
920
+ else
921
+ {
922
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
923
+ }
924
+ }
925
+ }
926
+ //catch (SecurityException)
927
+ //{
928
+ // DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, SECURITY_ERR));
929
+ //}
930
+ catch (Exception ex)
931
+ {
932
+ if (!this.HandleException(ex))
933
+ {
934
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
935
+ }
936
+ }
937
+ }
938
+ }
939
+
940
+ public void requestFileSystem(string options)
941
+ {
942
+ // TODO: try/catch
943
+ double[] optVals = JSON.JsonHelper.Deserialize<double[]>(options);
944
+
945
+ double fileSystemType = optVals[0];
946
+ double size = optVals[1];
947
+
948
+ if (size > (10 * 1024 * 1024)) // 10 MB, compier will clean this up!
949
+ {
950
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, QUOTA_EXCEEDED_ERR));
951
+ return;
952
+ }
953
+
954
+ try
955
+ {
956
+ if (size != 0)
957
+ {
958
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
959
+ {
960
+ long availableSize = isoFile.AvailableFreeSpace;
961
+ if (size > availableSize)
962
+ {
963
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, QUOTA_EXCEEDED_ERR));
964
+ return;
965
+ }
966
+ }
967
+ }
968
+
969
+ if (fileSystemType == PERSISTENT)
970
+ {
971
+ // TODO: this should be in it's own folder to prevent overwriting of the app assets, which are also in ISO
972
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, new FileSystemInfo("persistent", FileEntry.GetEntry("/"))));
973
+ }
974
+ else if (fileSystemType == TEMPORARY)
975
+ {
976
+ using (IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
977
+ {
978
+ if (!isoStorage.FileExists(TMP_DIRECTORY_NAME))
979
+ {
980
+ isoStorage.CreateDirectory(TMP_DIRECTORY_NAME);
981
+ }
982
+ }
983
+
984
+ string tmpFolder = "/" + TMP_DIRECTORY_NAME + "/";
985
+
986
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, new FileSystemInfo("temporary", FileEntry.GetEntry(tmpFolder))));
987
+ }
988
+ else if (fileOptions.FileSystemType == RESOURCE)
989
+ {
990
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, new FileSystemInfo("resource")));
991
+ }
992
+ else if (fileOptions.FileSystemType == APPLICATION)
993
+ {
994
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, new FileSystemInfo("application")));
995
+ }
996
+ else
997
+ {
998
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
999
+ }
1000
+
1001
+ }
1002
+ //catch (SecurityException)
1003
+ //{
1004
+ // DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, SECURITY_ERR));
1005
+ //}
1006
+ //catch (FileNotFoundException)
1007
+ //{
1008
+ // DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1009
+ //}
1010
+ catch (Exception ex)
1011
+ {
1012
+ if (!this.HandleException(ex))
1013
+ {
1014
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
1015
+ }
1016
+ }
1017
+ }
1018
+
1019
+ public void resolveLocalFileSystemURI(string options)
1020
+ {
1021
+ string uri = getSingleStringOption(options);
1022
+ if (uri != null)
1023
+ {
1024
+
1025
+ try
1026
+ {
1027
+ if (!Uri.IsWellFormedUriString(uri, UriKind.Absolute))
1028
+ {
1029
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, ENCODING_ERR));
1030
+ return;
1031
+ }
1032
+
1033
+ Uri fileUri = new Uri(Uri.UnescapeDataString(uri));
1034
+ string path = fileUri.LocalPath;
1035
+
1036
+ // TODO: research this :
1037
+ //if (Uri.UriSchemeFile == fileUri.Scheme)
1038
+ //{
1039
+ //}
1040
+
1041
+ FileEntry uriEntry = FileEntry.GetEntry(path);
1042
+ if (uriEntry != null)
1043
+ {
1044
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, uriEntry));
1045
+ }
1046
+ else
1047
+ {
1048
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1049
+ }
1050
+ }
1051
+ //catch (SecurityException)
1052
+ //{
1053
+ // DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, SECURITY_ERR));
1054
+ //}
1055
+ catch (Exception ex)
1056
+ {
1057
+ if (!this.HandleException(ex))
1058
+ {
1059
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
1060
+ }
1061
+ }
1062
+ }
1063
+ }
1064
+
1065
+ public void copyTo(string options)
1066
+ {
1067
+ TransferTo(options, false);
1068
+ }
1069
+
1070
+ public void moveTo(string options)
1071
+ {
1072
+ TransferTo(options, true);
1073
+ }
1074
+
1075
+ public void getFile(string options)
1076
+ {
1077
+ GetFileOrDirectory(options, false);
1078
+ }
1079
+
1080
+ public void getDirectory(string options)
1081
+ {
1082
+ GetFileOrDirectory(options, true);
1083
+ }
1084
+
1085
+ #region internal functionality
1086
+
1087
+ /// <summary>
1088
+ /// Retrieves the parent directory name of the specified path,
1089
+ /// </summary>
1090
+ /// <param name="path">Path</param>
1091
+ /// <returns>Parent directory name</returns>
1092
+ private string GetParentDirectory(string path)
1093
+ {
1094
+ if (String.IsNullOrEmpty(path) || path == "/")
1095
+ {
1096
+ return "/";
1097
+ }
1098
+
1099
+ if (path.EndsWith(@"/") || path.EndsWith(@"\"))
1100
+ {
1101
+ return this.GetParentDirectory(Path.GetDirectoryName(path));
1102
+ }
1103
+
1104
+ return Path.GetDirectoryName(path);
1105
+ }
1106
+
1107
+ private void removeDirRecursively(string fullPath)
1108
+ {
1109
+ try
1110
+ {
1111
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
1112
+ {
1113
+ if (isoFile.DirectoryExists(fullPath))
1114
+ {
1115
+ string path = File.AddSlashToDirectory(fullPath);
1116
+ string[] files = isoFile.GetFileNames(path + "*");
1117
+ if (files.Length > 0)
1118
+ {
1119
+ foreach (string file in files)
1120
+ {
1121
+ isoFile.DeleteFile(path + file);
1122
+ }
1123
+ }
1124
+ string[] dirs = isoFile.GetDirectoryNames(path + "*");
1125
+ if (dirs.Length > 0)
1126
+ {
1127
+ foreach (string dir in dirs)
1128
+ {
1129
+ removeDirRecursively(path + dir + "/");
1130
+ }
1131
+ }
1132
+ isoFile.DeleteDirectory(Path.GetDirectoryName(path));
1133
+ }
1134
+ else
1135
+ {
1136
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1137
+ }
1138
+ }
1139
+ }
1140
+ catch (Exception ex)
1141
+ {
1142
+ if (!this.HandleException(ex))
1143
+ {
1144
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
1145
+ }
1146
+ }
1147
+ }
1148
+
1149
+ /*
1150
+ * copyTo:["fullPath","parent", "newName"],
1151
+ * moveTo:["fullPath","parent", "newName"],
1152
+ */
1153
+ private void TransferTo(string options, bool move)
1154
+ {
1155
+ // TODO: try/catch
1156
+ string[] optStrings = JSON.JsonHelper.Deserialize<string[]>(options);
1157
+ string fullPath = optStrings[0];
1158
+ string parent = optStrings[1];
1159
+ string newFileName = optStrings[2];
1160
+
1161
+ try
1162
+ {
1163
+ if ((parent == null) || (string.IsNullOrEmpty(parent)) || (string.IsNullOrEmpty(fullPath)))
1164
+ {
1165
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1166
+ return;
1167
+ }
1168
+
1169
+ string parentPath = File.AddSlashToDirectory(parent);
1170
+ string currentPath = fullPath;
1171
+
1172
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
1173
+ {
1174
+ bool isFileExist = isoFile.FileExists(currentPath);
1175
+ bool isDirectoryExist = isoFile.DirectoryExists(currentPath);
1176
+ bool isParentExist = isoFile.DirectoryExists(parentPath);
1177
+
1178
+ if (((!isFileExist) && (!isDirectoryExist)) || (!isParentExist))
1179
+ {
1180
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1181
+ return;
1182
+ }
1183
+ string newName;
1184
+ string newPath;
1185
+ if (isFileExist)
1186
+ {
1187
+ newName = (string.IsNullOrEmpty(newFileName))
1188
+ ? Path.GetFileName(currentPath)
1189
+ : newFileName;
1190
+
1191
+ newPath = Path.Combine(parentPath, newName);
1192
+
1193
+ // remove destination file if exists, in other case there will be exception
1194
+ if (!newPath.Equals(currentPath) && isoFile.FileExists(newPath))
1195
+ {
1196
+ isoFile.DeleteFile(newPath);
1197
+ }
1198
+
1199
+ if (move)
1200
+ {
1201
+ isoFile.MoveFile(currentPath, newPath);
1202
+ }
1203
+ else
1204
+ {
1205
+ isoFile.CopyFile(currentPath, newPath, true);
1206
+ }
1207
+ }
1208
+ else
1209
+ {
1210
+ newName = (string.IsNullOrEmpty(newFileName))
1211
+ ? currentPath
1212
+ : newFileName;
1213
+
1214
+ newPath = Path.Combine(parentPath, newName);
1215
+
1216
+ if (move)
1217
+ {
1218
+
1219
+ // remove destination directory if exists, in other case there will be exception
1220
+ // target directory should be empty
1221
+ if (!newPath.Equals(currentPath) && isoFile.DirectoryExists(newPath))
1222
+ {
1223
+ isoFile.DeleteDirectory(newPath);
1224
+ }
1225
+
1226
+ isoFile.MoveDirectory(currentPath, newPath);
1227
+ }
1228
+ else
1229
+ {
1230
+ this.CopyDirectory(currentPath, newPath, isoFile);
1231
+ }
1232
+ }
1233
+ FileEntry entry = FileEntry.GetEntry(newPath);
1234
+ if (entry != null)
1235
+ {
1236
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, entry));
1237
+ }
1238
+ else
1239
+ {
1240
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1241
+ }
1242
+ }
1243
+
1244
+ }
1245
+ catch (Exception ex)
1246
+ {
1247
+ if (!this.HandleException(ex))
1248
+ {
1249
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
1250
+ }
1251
+ }
1252
+ }
1253
+
1254
+ private bool HandleException(Exception ex)
1255
+ {
1256
+ bool handled = false;
1257
+ if (ex is SecurityException)
1258
+ {
1259
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, SECURITY_ERR));
1260
+ handled = true;
1261
+ }
1262
+ else if (ex is FileNotFoundException)
1263
+ {
1264
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1265
+ handled = true;
1266
+ }
1267
+ else if (ex is ArgumentException)
1268
+ {
1269
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, ENCODING_ERR));
1270
+ handled = true;
1271
+ }
1272
+ else if (ex is IsolatedStorageException)
1273
+ {
1274
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, INVALID_MODIFICATION_ERR));
1275
+ handled = true;
1276
+ }
1277
+ else if (ex is DirectoryNotFoundException)
1278
+ {
1279
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1280
+ handled = true;
1281
+ }
1282
+ return handled;
1283
+ }
1284
+
1285
+ private void CopyDirectory(string sourceDir, string destDir, IsolatedStorageFile isoFile)
1286
+ {
1287
+ string path = File.AddSlashToDirectory(sourceDir);
1288
+
1289
+ if (!isoFile.DirectoryExists(destDir))
1290
+ {
1291
+ isoFile.CreateDirectory(destDir);
1292
+ }
1293
+ destDir = File.AddSlashToDirectory(destDir);
1294
+ string[] files = isoFile.GetFileNames(path + "*");
1295
+ if (files.Length > 0)
1296
+ {
1297
+ foreach (string file in files)
1298
+ {
1299
+ isoFile.CopyFile(path + file, destDir + file);
1300
+ }
1301
+ }
1302
+ string[] dirs = isoFile.GetDirectoryNames(path + "*");
1303
+ if (dirs.Length > 0)
1304
+ {
1305
+ foreach (string dir in dirs)
1306
+ {
1307
+ CopyDirectory(path + dir, destDir + dir, isoFile);
1308
+ }
1309
+ }
1310
+ }
1311
+
1312
+ // TODO: this is NOT working, object is not valid ...
1313
+ private void GetFileOrDirectory(string options, bool getDirectory)
1314
+ {
1315
+ FileOptions fOptions = new FileOptions();
1316
+ try
1317
+ {
1318
+ string[] args = JSON.JsonHelper.Deserialize<string[]>(options);
1319
+
1320
+ fOptions.FullPath = args[0];
1321
+ fOptions.Path = args[1];
1322
+ fOptions.CreatingOpt = JSON.JsonHelper.Deserialize<CreatingOptions>(args[2]);
1323
+ }
1324
+ catch (Exception)
1325
+ {
1326
+ DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
1327
+ return;
1328
+ }
1329
+
1330
+ try
1331
+ {
1332
+ if ((string.IsNullOrEmpty(fOptions.Path)) || (string.IsNullOrEmpty(fOptions.FullPath)))
1333
+ {
1334
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1335
+ return;
1336
+ }
1337
+
1338
+ string path;
1339
+
1340
+ try
1341
+ {
1342
+ path = Path.Combine(fOptions.FullPath + "/", fOptions.Path);
1343
+ }
1344
+ catch (Exception)
1345
+ {
1346
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, ENCODING_ERR));
1347
+ return;
1348
+ }
1349
+
1350
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
1351
+ {
1352
+ bool isFile = isoFile.FileExists(path);
1353
+ bool isDirectory = isoFile.DirectoryExists(path);
1354
+ bool create = (fOptions.CreatingOpt == null) ? false : fOptions.CreatingOpt.Create;
1355
+ bool exclusive = (fOptions.CreatingOpt == null) ? false : fOptions.CreatingOpt.Exclusive;
1356
+ if (create)
1357
+ {
1358
+ if (exclusive && (isoFile.FileExists(path) || isoFile.DirectoryExists(path)))
1359
+ {
1360
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, PATH_EXISTS_ERR));
1361
+ return;
1362
+ }
1363
+
1364
+ if ((getDirectory) && (!isDirectory))
1365
+ {
1366
+ isoFile.CreateDirectory(path);
1367
+ }
1368
+ else
1369
+ {
1370
+ if ((!getDirectory) && (!isFile))
1371
+ {
1372
+
1373
+ IsolatedStorageFileStream fileStream = isoFile.CreateFile(path);
1374
+ fileStream.Close();
1375
+ }
1376
+ }
1377
+
1378
+ }
1379
+ else
1380
+ {
1381
+ if ((!isFile) && (!isDirectory))
1382
+ {
1383
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1384
+ return;
1385
+ }
1386
+ if (((getDirectory) && (!isDirectory)) || ((!getDirectory) && (!isFile)))
1387
+ {
1388
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, TYPE_MISMATCH_ERR));
1389
+ return;
1390
+ }
1391
+ }
1392
+ FileEntry entry = FileEntry.GetEntry(path);
1393
+ if (entry != null)
1394
+ {
1395
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK, entry));
1396
+ }
1397
+ else
1398
+ {
1399
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NOT_FOUND_ERR));
1400
+ }
1401
+ }
1402
+ }
1403
+ catch (Exception ex)
1404
+ {
1405
+ if (!this.HandleException(ex))
1406
+ {
1407
+ DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, NO_MODIFICATION_ALLOWED_ERR));
1408
+ }
1409
+ }
1410
+ }
1411
+
1412
+ private static string AddSlashToDirectory(string dirPath)
1413
+ {
1414
+ if (dirPath.EndsWith("/"))
1415
+ {
1416
+ return dirPath;
1417
+ }
1418
+ else
1419
+ {
1420
+ return dirPath + "/";
1421
+ }
1422
+ }
1423
+
1424
+ /// <summary>
1425
+ /// Returns file content in a form of base64 string
1426
+ /// </summary>
1427
+ /// <param name="stream">File stream</param>
1428
+ /// <returns>Base64 representation of the file</returns>
1429
+ private string GetFileContent(Stream stream)
1430
+ {
1431
+ int streamLength = (int)stream.Length;
1432
+ byte[] fileData = new byte[streamLength + 1];
1433
+ stream.Read(fileData, 0, streamLength);
1434
+ stream.Close();
1435
+ return Convert.ToBase64String(fileData);
1436
+ }
1437
+
1438
+ #endregion
1439
+
1440
+ }
1441
+ }