mobox 0.0.1

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