mobox 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +89 -0
- data/Rakefile +2 -0
- data/bin/mobox +275 -0
- data/lib/mobox.rb +34 -0
- data/lib/mobox/config.rb +36 -0
- data/lib/mobox/helpers.rb +9 -0
- data/lib/mobox/render_scope.rb +9 -0
- data/lib/mobox/server.rb +91 -0
- data/lib/mobox/version.rb +3 -0
- data/mobox.gemspec +31 -0
- data/template/.mobox +2 -0
- data/template/Gemfile +3 -0
- data/template/config.ru +76 -0
- data/template/src/assets/images/mobox-logo-inkscape.svg +177 -0
- data/template/src/assets/images/mobox-logo.pdf +0 -0
- data/template/src/assets/images/mobox-logo.png +0 -0
- data/template/src/assets/images/mobox-logo.svg +120 -0
- data/template/src/assets/javascripts/app/config.js.coffee.erb +2 -0
- data/template/src/assets/javascripts/app/controllers/.gitignore +0 -0
- data/template/src/assets/javascripts/app/controllers/home.js.coffee +10 -0
- data/template/src/assets/javascripts/app/helpers/.gitignore +0 -0
- data/template/src/assets/javascripts/app/index.js.coffee +7 -0
- data/template/src/assets/javascripts/app/lib/.gitignore +0 -0
- data/template/src/assets/javascripts/app/lib/app.js.coffee +6 -0
- data/template/src/assets/javascripts/app/lib/config.js.coffee +3 -0
- data/template/src/assets/javascripts/app/lib/view.js.coffee +18 -0
- data/template/src/assets/javascripts/app/models/.gitignore +0 -0
- data/template/src/assets/javascripts/app/views/.gitignore +0 -0
- data/template/src/assets/javascripts/app/views/home/index.jst.hamljs +8 -0
- data/template/src/assets/javascripts/application.js.coffee +25 -0
- data/template/src/assets/javascripts/vendor/1140gs/css3-mediaqueries.js +779 -0
- data/template/src/assets/javascripts/vendor/cordova-2.0.0.js +5240 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.cube.js +161 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.effects.js +330 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.flip.js +52 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.js +93 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.overlay.js +81 -0
- data/template/src/assets/javascripts/vendor/gfx/index.js +5 -0
- data/template/src/assets/javascripts/vendor/hammer/.gitignore +1 -0
- data/template/src/assets/javascripts/vendor/hammer/LICENSE +19 -0
- data/template/src/assets/javascripts/vendor/hammer/hammer.js +741 -0
- data/template/src/assets/javascripts/vendor/hammer/index.coffee +2 -0
- data/template/src/assets/javascripts/vendor/hammer/jquery.hammer.js +26 -0
- data/template/src/assets/javascripts/vendor/hammer/jquery.specialevent.hammer.js +39 -0
- data/template/src/assets/javascripts/vendor/jquery.js +4 -0
- data/template/src/assets/javascripts/vendor/jquery_transit/index.coffee +1 -0
- data/template/src/assets/javascripts/vendor/jquery_transit/jquery.transit.js +658 -0
- data/template/src/assets/javascripts/vendor/spine/ajax.js +318 -0
- data/template/src/assets/javascripts/vendor/spine/list.js +74 -0
- data/template/src/assets/javascripts/vendor/spine/local.js +30 -0
- data/template/src/assets/javascripts/vendor/spine/manager.js +158 -0
- data/template/src/assets/javascripts/vendor/spine/panel.js +132 -0
- data/template/src/assets/javascripts/vendor/spine/relation.js +255 -0
- data/template/src/assets/javascripts/vendor/spine/route.js +220 -0
- data/template/src/assets/javascripts/vendor/spine/spine.js +913 -0
- data/template/src/assets/javascripts/vendor/spine/stage.js +146 -0
- data/template/src/assets/javascripts/vendor/spine/tabs.js +66 -0
- data/template/src/assets/javascripts/vendor/spine/tmpl.js +22 -0
- data/template/src/assets/javascripts/vendor/spine/touch.js +79 -0
- data/template/src/assets/stylesheets/application.css.sass +3 -0
- data/template/src/assets/stylesheets/base.sass +78 -0
- data/template/src/assets/stylesheets/vendor/1140gs/1140gs.sass +110 -0
- data/template/src/assets/stylesheets/vendor/1140gs/conditionals.sass +34 -0
- data/template/src/assets/stylesheets/vendor/1140gs/ie.css +43 -0
- data/template/src/assets/stylesheets/vendor/1140gs/index.sass +1 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/index.sass +1 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/mixin.sass +89 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/spine_mobile.sass +57 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/theme.sass +79 -0
- data/template/src/config.yml +2 -0
- data/template/src/index.haml +21 -0
- data/vendor/compass-sprockets/README.md +5 -0
- data/vendor/compass-sprockets/lib/compass-sprockets.rb +32 -0
- data/vendor/compass-sprockets/lib/compass/sprockets.rb +56 -0
- data/vendor/compass-sprockets/lib/compass/sprockets/version.rb +6 -0
- data/vendor/compass-sprockets/lib/sprockets/compressors.rb +96 -0
- data/vendor/compass-sprockets/lib/sprockets/static_compiler.rb +62 -0
- data/vendor/haml-sprockets/Gemfile +4 -0
- data/vendor/haml-sprockets/LICENSE +8 -0
- data/vendor/haml-sprockets/README.md +33 -0
- data/vendor/haml-sprockets/Rakefile +1 -0
- data/vendor/haml-sprockets/lib/haml-sprockets.rb +34 -0
- data/vendor/haml-sprockets/lib/haml-sprockets/engine.rb +7 -0
- data/vendor/haml-sprockets/lib/haml-sprockets/version.rb +5 -0
- data/vendor/haml-sprockets/spec/lib/haml-sprockets_spec.rb +43 -0
- data/vendor/haml-sprockets/spec/spec_helper.rb +2 -0
- data/vendor/haml-sprockets/vendor/assets/javascripts/haml.js +651 -0
- data/vendor/phonegap/.gitignore +19 -0
- data/vendor/phonegap/LICENSE +426 -0
- data/vendor/phonegap/README.md +49 -0
- data/vendor/phonegap/VERSION +1 -0
- data/vendor/phonegap/changelog +205 -0
- data/vendor/phonegap/doc/LICENSE +548 -0
- data/vendor/phonegap/doc/NOTICE +11 -0
- data/vendor/phonegap/doc/_index.html +355 -0
- data/vendor/phonegap/doc/_index.json +1 -0
- data/vendor/phonegap/doc/arrow.png +0 -0
- data/vendor/phonegap/doc/cordova_accelerometer_accelerometer.md.html +728 -0
- data/vendor/phonegap/doc/cordova_camera_camera.cleanup.md.html +159 -0
- data/vendor/phonegap/doc/cordova_camera_camera.md.html +670 -0
- data/vendor/phonegap/doc/cordova_compass_compass.md.html +707 -0
- data/vendor/phonegap/doc/cordova_connection_connection.md.html +355 -0
- data/vendor/phonegap/doc/cordova_contacts_contacts.md.html +1715 -0
- data/vendor/phonegap/doc/cordova_device_device.md.html +682 -0
- data/vendor/phonegap/doc/cordova_events_events.md.html +1538 -0
- data/vendor/phonegap/doc/cordova_file_file.md.html +2306 -0
- data/vendor/phonegap/doc/cordova_geolocation_geolocation.md.html +1002 -0
- data/vendor/phonegap/doc/cordova_media_capture_capture.md.html +1256 -0
- data/vendor/phonegap/doc/cordova_media_media.md.html +1745 -0
- data/vendor/phonegap/doc/cordova_notification_notification.md.html +691 -0
- data/vendor/phonegap/doc/cordova_storage_storage.md.html +988 -0
- data/vendor/phonegap/doc/guide_command-line_index.md.html +323 -0
- data/vendor/phonegap/doc/guide_cordova-webview_android.md.html +180 -0
- data/vendor/phonegap/doc/guide_cordova-webview_index.md.html +131 -0
- data/vendor/phonegap/doc/guide_cordova-webview_ios.md.html +275 -0
- data/vendor/phonegap/doc/guide_getting-started_android_index.md.html +291 -0
- data/vendor/phonegap/doc/guide_getting-started_bada_index.md.html +225 -0
- data/vendor/phonegap/doc/guide_getting-started_blackberry_index.md.html +267 -0
- data/vendor/phonegap/doc/guide_getting-started_index.md.html +132 -0
- data/vendor/phonegap/doc/guide_getting-started_ios_index.md.html +248 -0
- data/vendor/phonegap/doc/guide_getting-started_symbian_index.md.html +198 -0
- data/vendor/phonegap/doc/guide_getting-started_webos_index.md.html +200 -0
- data/vendor/phonegap/doc/guide_getting-started_windows-phone_index.md.html +228 -0
- data/vendor/phonegap/doc/guide_plugin-development_android_index.md.html +275 -0
- data/vendor/phonegap/doc/guide_plugin-development_bada_index.md.html +192 -0
- data/vendor/phonegap/doc/guide_plugin-development_blackberry_index.md.html +259 -0
- data/vendor/phonegap/doc/guide_plugin-development_index.md.html +230 -0
- data/vendor/phonegap/doc/guide_plugin-development_ios_index.md.html +282 -0
- data/vendor/phonegap/doc/guide_plugin-development_webos_index.md.html +125 -0
- data/vendor/phonegap/doc/guide_plugin-development_windows-phone_index.md.html +125 -0
- data/vendor/phonegap/doc/guide_upgrading_android_index.md.html +321 -0
- data/vendor/phonegap/doc/guide_upgrading_bada_index.md.html +165 -0
- data/vendor/phonegap/doc/guide_upgrading_blackberry_index.md.html +244 -0
- data/vendor/phonegap/doc/guide_upgrading_index.md.html +136 -0
- data/vendor/phonegap/doc/guide_upgrading_ios_index.md.html +547 -0
- data/vendor/phonegap/doc/guide_upgrading_symbian_index.md.html +123 -0
- data/vendor/phonegap/doc/guide_upgrading_webos_index.md.html +161 -0
- data/vendor/phonegap/doc/guide_upgrading_windows-phone_index.md.html +332 -0
- data/vendor/phonegap/doc/guide_whitelist_index.md.html +299 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/AndroidFlow.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/buildPath.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/javaSrc.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/new_android_project.jpeg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_1.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_2.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_3.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_4.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_5.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_1_run.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_2_run.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_project.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_set_target.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project_2.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/HelloWorldiPhone4.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/XCode4-templates.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_create_project.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_folder.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/create-folder-reference.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/index-not-found.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/project.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/www-folder.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/xcode4-name_your_app.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wp7projectstructure.PNG +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpd.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpfirstrun.PNG +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpnewproj.PNG +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wprun.png +0 -0
- data/vendor/phonegap/doc/index.css +404 -0
- data/vendor/phonegap/doc/index.html +210 -0
- data/vendor/phonegap/doc/index.js +74 -0
- data/vendor/phonegap/doc/line.png +0 -0
- data/vendor/phonegap/doc/mobile.css +139 -0
- data/vendor/phonegap/doc/prettify/LICENSE +191 -0
- data/vendor/phonegap/doc/prettify/lang-apollo.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-css.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-hs.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-lisp.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-lua.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-ml.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-proto.js +1 -0
- data/vendor/phonegap/doc/prettify/lang-scala.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-sql.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-vb.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-vhdl.js +3 -0
- data/vendor/phonegap/doc/prettify/lang-wiki.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-yaml.js +2 -0
- data/vendor/phonegap/doc/prettify/prettify.css +44 -0
- data/vendor/phonegap/doc/prettify/prettify.js +33 -0
- data/vendor/phonegap/keys +201 -0
- data/vendor/phonegap/lib/DISCLAIMER +8 -0
- data/vendor/phonegap/lib/LICENSE +548 -0
- data/vendor/phonegap/lib/NOTICE +11 -0
- data/vendor/phonegap/lib/README.MD +54 -0
- data/vendor/phonegap/lib/android/LICENSE +202 -0
- data/vendor/phonegap/lib/android/NOTICE +5 -0
- data/vendor/phonegap/lib/android/README.md +114 -0
- data/vendor/phonegap/lib/android/VERSION +1 -0
- data/vendor/phonegap/lib/android/bin/create +147 -0
- data/vendor/phonegap/lib/android/bin/create.bat +15 -0
- data/vendor/phonegap/lib/android/bin/create.js +188 -0
- data/vendor/phonegap/lib/android/bin/create.xml +98 -0
- data/vendor/phonegap/lib/android/bin/package.json +22 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.class +0 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.java +44 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/appinfo.jar +0 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/clean +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/clean.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/cordova +85 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.bat +15 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.js +104 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/debug +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/debug.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/emulate +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/emulate.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/log +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/log.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/project/Activity.java +35 -0
- data/vendor/phonegap/lib/android/bin/templates/project/AndroidManifest.xml +61 -0
- data/vendor/phonegap/lib/android/bin/templates/project/assets/www/index.html +60 -0
- data/vendor/phonegap/lib/android/bin/templates/project/assets/www/main.js +165 -0
- data/vendor/phonegap/lib/android/bin/templates/project/assets/www/master.css +116 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-hdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-ldpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-mdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-xhdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/tests/test_create_unix.js +135 -0
- data/vendor/phonegap/lib/android/bin/tests/test_create_win.js +143 -0
- data/vendor/phonegap/lib/android/cordova-2.0.0.jar +0 -0
- data/vendor/phonegap/lib/android/cordova-2.0.0.js +5724 -0
- data/vendor/phonegap/lib/android/example/AndroidManifest.xml +61 -0
- data/vendor/phonegap/lib/android/example/ant.properties +17 -0
- data/vendor/phonegap/lib/android/example/assets/www/cordova-2.0.0.js +5724 -0
- data/vendor/phonegap/lib/android/example/assets/www/index.html +60 -0
- data/vendor/phonegap/lib/android/example/assets/www/main.js +165 -0
- data/vendor/phonegap/lib/android/example/assets/www/master.css +116 -0
- data/vendor/phonegap/lib/android/example/build.xml +83 -0
- data/vendor/phonegap/lib/android/example/cordova/BOOM +7 -0
- data/vendor/phonegap/lib/android/example/cordova/appinfo.jar +0 -0
- data/vendor/phonegap/lib/android/example/cordova/clean +7 -0
- data/vendor/phonegap/lib/android/example/cordova/cordova +85 -0
- data/vendor/phonegap/lib/android/example/cordova/debug +7 -0
- data/vendor/phonegap/lib/android/example/cordova/emulate +7 -0
- data/vendor/phonegap/lib/android/example/cordova/log +7 -0
- data/vendor/phonegap/lib/android/example/libs/cordova-2.0.0.jar +0 -0
- data/vendor/phonegap/lib/android/example/proguard-project.txt +20 -0
- data/vendor/phonegap/lib/android/example/project.properties +14 -0
- data/vendor/phonegap/lib/android/example/res/drawable-hdpi/ic_launcher.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-hdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-ldpi/ic_launcher.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-ldpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-mdpi/ic_launcher.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-mdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-xhdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/layout/main.xml +13 -0
- data/vendor/phonegap/lib/android/example/res/values/strings.xml +4 -0
- data/vendor/phonegap/lib/android/example/res/xml/config.xml +54 -0
- data/vendor/phonegap/lib/android/example/src/org/apache/cordova/example/cordovaExample.java +35 -0
- data/vendor/phonegap/lib/android/xml/config.xml +54 -0
- data/vendor/phonegap/lib/bada/Icons/Cordova.png +0 -0
- data/vendor/phonegap/lib/bada/Icons/Cordova_Splash.png +0 -0
- data/vendor/phonegap/lib/bada/LICENSE +202 -0
- data/vendor/phonegap/lib/bada/NOTICE +5 -0
- data/vendor/phonegap/lib/bada/README.md +48 -0
- data/vendor/phonegap/lib/bada/Res/cordova/accelerometer.js +131 -0
- data/vendor/phonegap/lib/bada/Res/cordova/camera.js +102 -0
- data/vendor/phonegap/lib/bada/Res/cordova/compass.js +77 -0
- data/vendor/phonegap/lib/bada/Res/cordova/contact.js +355 -0
- data/vendor/phonegap/lib/bada/Res/cordova/cordova.base.js +561 -0
- data/vendor/phonegap/lib/bada/Res/cordova/cordova.bat +21 -0
- data/vendor/phonegap/lib/bada/Res/cordova/cordova.js +1661 -0
- data/vendor/phonegap/lib/bada/Res/cordova/debugconsole.js +126 -0
- data/vendor/phonegap/lib/bada/Res/cordova/device.js +46 -0
- data/vendor/phonegap/lib/bada/Res/cordova/file.js +682 -0
- data/vendor/phonegap/lib/bada/Res/cordova/geolocation.js +152 -0
- data/vendor/phonegap/lib/bada/Res/cordova/network.js +70 -0
- data/vendor/phonegap/lib/bada/Res/cordova/notification.js +117 -0
- data/vendor/phonegap/lib/bada/Res/cordova/position.js +74 -0
- data/vendor/phonegap/lib/bada/Res/eng-GB.xml +26 -0
- data/vendor/phonegap/lib/bada/Res/images/cordova_logo_normal_dark.png +0 -0
- data/vendor/phonegap/lib/bada/Res/index.html +108 -0
- data/vendor/phonegap/lib/bada/Res/main.js +390 -0
- data/vendor/phonegap/lib/bada/VERSION +1 -0
- data/vendor/phonegap/lib/bada/application.xml +45 -0
- data/vendor/phonegap/lib/bada/inc/Accelerometer.h +54 -0
- data/vendor/phonegap/lib/bada/inc/Compass.h +52 -0
- data/vendor/phonegap/lib/bada/inc/Contacts.h +62 -0
- data/vendor/phonegap/lib/bada/inc/Cordova.h +82 -0
- data/vendor/phonegap/lib/bada/inc/CordovaCommand.h +46 -0
- data/vendor/phonegap/lib/bada/inc/DebugConsole.h +41 -0
- data/vendor/phonegap/lib/bada/inc/Device.h +43 -0
- data/vendor/phonegap/lib/bada/inc/GeoLocation.h +52 -0
- data/vendor/phonegap/lib/bada/inc/Kamera.h +49 -0
- data/vendor/phonegap/lib/bada/inc/Network.h +56 -0
- data/vendor/phonegap/lib/bada/inc/Notification.h +50 -0
- data/vendor/phonegap/lib/bada/inc/WebForm.h +97 -0
- data/vendor/phonegap/lib/bada/manifest.xml +61 -0
- data/vendor/phonegap/lib/bada/src/Accelerometer.cpp +135 -0
- data/vendor/phonegap/lib/bada/src/Compass.cpp +131 -0
- data/vendor/phonegap/lib/bada/src/Contacts.cpp +600 -0
- data/vendor/phonegap/lib/bada/src/Cordova.cpp +139 -0
- data/vendor/phonegap/lib/bada/src/CordovaCommand.cpp +33 -0
- data/vendor/phonegap/lib/bada/src/CordovaEntry.cpp +60 -0
- data/vendor/phonegap/lib/bada/src/DebugConsole.cpp +81 -0
- data/vendor/phonegap/lib/bada/src/Device.cpp +81 -0
- data/vendor/phonegap/lib/bada/src/GeoLocation.cpp +144 -0
- data/vendor/phonegap/lib/bada/src/Kamera.cpp +121 -0
- data/vendor/phonegap/lib/bada/src/Network.cpp +123 -0
- data/vendor/phonegap/lib/bada/src/Notification.cpp +176 -0
- data/vendor/phonegap/lib/bada/src/WebForm.cpp +231 -0
- data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type4.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type5.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_icon_type5.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type3.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type4.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_splash_type3.png +0 -0
- data/vendor/phonegap/lib/badaWac/LICENSE +201 -0
- data/vendor/phonegap/lib/badaWac/NOTICE +5 -0
- data/vendor/phonegap/lib/badaWac/README.md +12 -0
- data/vendor/phonegap/lib/badaWac/Res/config.xml +47 -0
- data/vendor/phonegap/lib/badaWac/Res/cordova-2.0.0.js +5676 -0
- data/vendor/phonegap/lib/badaWac/Res/css/index.css +100 -0
- data/vendor/phonegap/lib/badaWac/Res/img/cordova.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/index.html +24 -0
- data/vendor/phonegap/lib/badaWac/Res/js/index.js +15 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_128.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_16.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_24.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_256.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_32.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_48.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_512.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_64.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_36.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_48.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_72.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_96.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_bb_80.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_114.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_144.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_57.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_72.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_300.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_400.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/windows_phone_portrait.jpg +0 -0
- data/vendor/phonegap/lib/badaWac/Res/sample/index.html +167 -0
- data/vendor/phonegap/lib/badaWac/Res/sample/js/cordova.js +5576 -0
- data/vendor/phonegap/lib/badaWac/Res/sample/js/sample.js +404 -0
- data/vendor/phonegap/lib/badaWac/Res/spec.html +50 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/helper.js +11 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/index.js +49 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
- data/vendor/phonegap/lib/badaWac/VERSION +1 -0
- data/vendor/phonegap/lib/badaWac/application.xml +51 -0
- data/vendor/phonegap/lib/badaWac/manifest.xml +58 -0
- data/vendor/phonegap/lib/blackberry/LICENSE +268 -0
- data/vendor/phonegap/lib/blackberry/NOTICE +8 -0
- data/vendor/phonegap/lib/blackberry/README.md +90 -0
- data/vendor/phonegap/lib/blackberry/VERSION +1 -0
- data/vendor/phonegap/lib/blackberry/bin/create +84 -0
- data/vendor/phonegap/lib/blackberry/bin/create.bat +14 -0
- data/vendor/phonegap/lib/blackberry/bin/create.js +94 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/dist/README.md +90 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/blackberry.xml +356 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/build.xml +138 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/debug +53 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/emulate +40 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/LICENSE.txt +47 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/playbook.xml +283 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/project.properties +97 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/config.xml +82 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/index.html +976 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/json2.js +482 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/plugins.xml +34 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/icon.png +0 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/loading_foreground.png +0 -0
- data/vendor/phonegap/lib/blackberry/sample/blackberry.xml +356 -0
- data/vendor/phonegap/lib/blackberry/sample/build.xml +138 -0
- data/vendor/phonegap/lib/blackberry/sample/cordova/debug +53 -0
- data/vendor/phonegap/lib/blackberry/sample/cordova/emulate +40 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/LICENSE.txt +47 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/library.xml +40 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext/cordova.2.0.0.jar +0 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/cordova-2.0.0.js +6407 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/playbook/cordova-2.0.0.js +6845 -0
- data/vendor/phonegap/lib/blackberry/sample/playbook.xml +283 -0
- data/vendor/phonegap/lib/blackberry/sample/project.properties +97 -0
- data/vendor/phonegap/lib/blackberry/sample/www/config.xml +82 -0
- data/vendor/phonegap/lib/blackberry/sample/www/cordova-2.0.0.js +6407 -0
- data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/library.xml +40 -0
- data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
- data/vendor/phonegap/lib/blackberry/sample/www/ext/cordova.2.0.0.jar +0 -0
- data/vendor/phonegap/lib/blackberry/sample/www/index.html +976 -0
- data/vendor/phonegap/lib/blackberry/sample/www/json2.js +482 -0
- data/vendor/phonegap/lib/blackberry/sample/www/playbook/cordova-2.0.0.js +6845 -0
- data/vendor/phonegap/lib/blackberry/sample/www/plugins.xml +34 -0
- data/vendor/phonegap/lib/blackberry/sample/www/resources/icon.png +0 -0
- data/vendor/phonegap/lib/blackberry/sample/www/resources/loading_foreground.png +0 -0
- data/vendor/phonegap/lib/blackberry/www/config.xml +82 -0
- data/vendor/phonegap/lib/blackberry/www/cordova-2.0.0.js +6407 -0
- data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/library.xml +40 -0
- data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
- data/vendor/phonegap/lib/blackberry/www/ext/cordova.2.0.0.jar +0 -0
- data/vendor/phonegap/lib/blackberry/www/playbook/cordova-2.0.0.js +6845 -0
- data/vendor/phonegap/lib/blackberry/www/plugins.xml +34 -0
- data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg +0 -0
- data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg.SHA1 +1 -0
- data/vendor/phonegap/lib/ios/LICENSE +394 -0
- data/vendor/phonegap/lib/ios/NOTICE +5 -0
- data/vendor/phonegap/lib/ios/bin/BOOM +27 -0
- data/vendor/phonegap/lib/ios/bin/README.md +29 -0
- data/vendor/phonegap/lib/ios/bin/_build.sh +92 -0
- data/vendor/phonegap/lib/ios/bin/autotest +24 -0
- data/vendor/phonegap/lib/ios/bin/bench +48 -0
- data/vendor/phonegap/lib/ios/bin/create +99 -0
- data/vendor/phonegap/lib/ios/bin/package.json +15 -0
- data/vendor/phonegap/lib/ios/bin/replaces +28 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateIcon.icns +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateInfo.plist +28 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/project.pbxproj +638 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/.gitignore +6 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.h +45 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.m +135 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.h +32 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.m +141 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.xib +138 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Cordova.plist +83 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/CordovaBuildSettings.xcconfig +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Plugins/README +20 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/de.lproj/Localizable.strings +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/en.lproj/Localizable.strings +25 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/es.lproj/Localizable.strings +25 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/se.lproj/Localizable.strings +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default@2x~iphone.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default~iphone.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Info.plist +78 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/main.m +35 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/cordova/debug +47 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/cordova/emulate +58 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/cordova/log +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/config.xml +47 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/cordova-2.0.0.js +5240 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/css/index.css +100 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/index.html +44 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/js/index.js +20 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_128.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_16.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_24.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_256.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_32.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_48.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_512.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_64.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_36.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_48.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_72.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_96.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_bb_80.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_114.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_144.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_57.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_72.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_300.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_400.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/windows_phone_portrait.jpg +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/spec.html +50 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/helper.js +11 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/index.js +49 -0
- data/vendor/phonegap/lib/ios/bin/test +44 -0
- data/vendor/phonegap/lib/ios/bin/tests/autotest.coffee +24 -0
- data/vendor/phonegap/lib/ios/bin/tests/create.coffee +34 -0
- data/vendor/phonegap/lib/ios/bin/tests/debug.coffee +18 -0
- data/vendor/phonegap/lib/ios/bin/tests/test.coffee +18 -0
- data/vendor/phonegap/lib/symbian/deprecated.txt +1 -0
- data/vendor/phonegap/lib/webos/LICENSE +202 -0
- data/vendor/phonegap/lib/webos/Makefile +127 -0
- data/vendor/phonegap/lib/webos/NOTICE +11 -0
- data/vendor/phonegap/lib/webos/README.md +52 -0
- data/vendor/phonegap/lib/webos/VERSION +1 -0
- data/vendor/phonegap/lib/webos/framework/appinfo.json +10 -0
- data/vendor/phonegap/lib/webos/framework/config.xml +47 -0
- data/vendor/phonegap/lib/webos/framework/cordova_48.png +0 -0
- data/vendor/phonegap/lib/webos/framework/css/index.css +100 -0
- data/vendor/phonegap/lib/webos/framework/img/cordova.png +0 -0
- data/vendor/phonegap/lib/webos/framework/index.html +24 -0
- data/vendor/phonegap/lib/webos/framework/js/index.js +20 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_128.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_16.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_24.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_256.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_32.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_48.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_512.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_64.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_36.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_48.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_72.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_96.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_bb_80.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_114.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_144.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_57.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_72.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_300.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_400.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/windows_phone_portrait.jpg +0 -0
- data/vendor/phonegap/lib/webos/framework/spec.html +50 -0
- data/vendor/phonegap/lib/webos/framework/spec/helper.js +11 -0
- data/vendor/phonegap/lib/webos/framework/spec/index.js +49 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
- data/vendor/phonegap/lib/webos/js/acceleration.js +59 -0
- data/vendor/phonegap/lib/webos/js/accelerometer.js +133 -0
- data/vendor/phonegap/lib/webos/js/application.js +54 -0
- data/vendor/phonegap/lib/webos/js/audio.js +113 -0
- data/vendor/phonegap/lib/webos/js/camera.js +60 -0
- data/vendor/phonegap/lib/webos/js/compass.js +167 -0
- data/vendor/phonegap/lib/webos/js/contacts.js +69 -0
- data/vendor/phonegap/lib/webos/js/cordova-core.js +405 -0
- data/vendor/phonegap/lib/webos/js/debugconsole.js +62 -0
- data/vendor/phonegap/lib/webos/js/device.js +98 -0
- data/vendor/phonegap/lib/webos/js/file.js +79 -0
- data/vendor/phonegap/lib/webos/js/geolocation.js +232 -0
- data/vendor/phonegap/lib/webos/js/map.js +67 -0
- data/vendor/phonegap/lib/webos/js/mojo.js +81 -0
- data/vendor/phonegap/lib/webos/js/mouse.js +40 -0
- data/vendor/phonegap/lib/webos/js/network.js +96 -0
- data/vendor/phonegap/lib/webos/js/notification.js +139 -0
- data/vendor/phonegap/lib/webos/js/orientation.js +124 -0
- data/vendor/phonegap/lib/webos/js/position.js +87 -0
- data/vendor/phonegap/lib/webos/js/service.js +74 -0
- data/vendor/phonegap/lib/webos/js/sms.js +60 -0
- data/vendor/phonegap/lib/webos/js/telephony.js +45 -0
- data/vendor/phonegap/lib/webos/js/window.js +88 -0
- data/vendor/phonegap/lib/webos/js/windowproperties.js +31 -0
- data/vendor/phonegap/lib/webos/lib/thumbs.0.5.2.js +104 -0
- data/vendor/phonegap/lib/windows-phone/LICENSE +12 -0
- data/vendor/phonegap/lib/windows-phone/NOTICE +5 -0
- data/vendor/phonegap/lib/windows-phone/README.md +50 -0
- data/vendor/phonegap/lib/windows-phone/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/bin/create.bat +1 -0
- data/vendor/phonegap/lib/windows-phone/bin/create.js +154 -0
- data/vendor/phonegap/lib/windows-phone/example/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/example/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/example/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/example/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/example/BuildManifestProcessor.js +81 -0
- data/vendor/phonegap/lib/windows-phone/example/CordovaExample.csproj +195 -0
- data/vendor/phonegap/lib/windows-phone/example/CordovaExample.sln +28 -0
- data/vendor/phonegap/lib/windows-phone/example/CordovaSourceDictionary.xml +4 -0
- data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml.cs +70 -0
- data/vendor/phonegap/lib/windows-phone/example/Plugins/Calculator.cs +46 -0
- data/vendor/phonegap/lib/windows-phone/example/Properties/AppManifest.xml +24 -0
- data/vendor/phonegap/lib/windows-phone/example/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/example/Properties/WMAppManifest.xml +59 -0
- data/vendor/phonegap/lib/windows-phone/example/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/example/www/accelerometer.html +164 -0
- data/vendor/phonegap/lib/windows-phone/example/www/accelerometer2.html +175 -0
- data/vendor/phonegap/lib/windows-phone/example/www/audio.html +267 -0
- data/vendor/phonegap/lib/windows-phone/example/www/calculator.html +84 -0
- data/vendor/phonegap/lib/windows-phone/example/www/camera.html +115 -0
- data/vendor/phonegap/lib/windows-phone/example/www/capture.html +207 -0
- data/vendor/phonegap/lib/windows-phone/example/www/compass.html +150 -0
- data/vendor/phonegap/lib/windows-phone/example/www/contacts.html +169 -0
- data/vendor/phonegap/lib/windows-phone/example/www/cordova-2.0.0.js +5658 -0
- data/vendor/phonegap/lib/windows-phone/example/www/events.html +146 -0
- data/vendor/phonegap/lib/windows-phone/example/www/file.html +284 -0
- data/vendor/phonegap/lib/windows-phone/example/www/index.html +108 -0
- data/vendor/phonegap/lib/windows-phone/example/www/location.html +165 -0
- data/vendor/phonegap/lib/windows-phone/example/www/master.css +156 -0
- data/vendor/phonegap/lib/windows-phone/example/www/network.html +96 -0
- data/vendor/phonegap/lib/windows-phone/example/www/notification.html +112 -0
- data/vendor/phonegap/lib/windows-phone/example/www/storage.html +78 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.back.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.close.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.feature.video.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.next.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.save.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.stop.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Properties/AssemblyInfo.cs +35 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.csproj +281 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.sln +20 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLibBare.csproj +127 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7GapClassLibBare.sln +20 -0
- data/vendor/phonegap/lib/windows-phone/framework/resources/notification-beep.wav +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/CordovaStarter-2.0.0.zip +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/BuildManifestProcessor.js +83 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaAppProj.csproj +152 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSolution.sln +22 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSourceDictionary.xml +23 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml.cs +72 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/WMAppManifest.xml +32 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/cordova-2.0.0.js +5672 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/css/index.css +100 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/index.html +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/js/index.js +20 -0
- data/vendor/phonegap/lib/windows-phone/templates/description.txt +4 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/BuildManifestProcessor.js +80 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaAppProj.csproj +153 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaLib/WP7CordovaClassLib.dll +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSolution.sln +22 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSourceDictionary.xml +9 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml.cs +72 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Properties/WMAppManifest.xml +41 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/cordova/debug.bat +68 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/cordova/emulate.bat +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/cordova-2.0.0.js +5672 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/css/index.css +100 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/index.html +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/js/index.js +20 -0
- data/vendor/phonegap/lib/windows-phone/templates/pg_templateIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/pg_templatePreview.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/BuildManifestProcessor.js +80 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaAppProj.csproj +231 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSolution.sln +22 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSourceDictionary.xml +4 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml.cs +72 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/WMAppManifest.xml +42 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/debug.bat +68 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/emulate.bat +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/BrowserMouseHelper.cs +345 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CommandFactory.cs +104 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Accelerometer.cs +195 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/AudioPlayer.cs +617 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/BaseCommand.cs +129 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Battery.cs +79 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Camera.cs +490 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Capture.cs +735 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Compass.cs +364 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Contacts.cs +643 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/DebugConsole.cs +49 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Device.cs +124 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/File.cs +1441 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/FileTransfer.cs +525 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/GeoLocation.cs +34 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/ImageExifHelper.cs +222 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Media.cs +522 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/MimeTypeMapper.cs +99 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/NetworkStatus.cs +124 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Notification.cs +322 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaCommandCall.cs +86 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml +65 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml.cs +451 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/DOMStorageHelper.cs +145 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.back.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.close.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.feature.video.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.next.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.save.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.stop.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/JSON/JsonHelper.cs +97 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/NativeExecution.cs +207 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/OrientationHelper.cs +128 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/PluginResult.cs +165 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/ScriptCallback.cs +80 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioCaptureTask.cs +105 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml +66 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml.cs +387 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml +26 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml.cs +107 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml +62 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml.cs +41 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoCaptureTask.cs +104 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml.cs +405 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/resources/notification-beep.wav +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/cordova-2.0.0.js +5672 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/css/index.css +100 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/index.html +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/js/index.js +20 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.cs +64 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.csproj +174 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/GlobalSuppressions.cs +11 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Guids.cs +14 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Key.snk +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Properties/AssemblyInfo.cs +36 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.Designer.cs +63 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.resx +129 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources/Package.ico +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/VSPackage.resx +140 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templateIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templatePreview.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/source.extension.vsixmanifest +30 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml +38 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml.cs +158 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/BuildManifestProcessor.js +80 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/CordovaSourceDictionary.xml +4 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml.cs +42 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.csproj +141 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.sln +28 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AssemblyInfo.cs +35 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/WMAppManifest.xml +35 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/cordova-2.0.0.js +5658 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/index.html +43 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/master.css +112 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy.sln +20 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/CordovaDeploy.csproj +79 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Program.cs +219 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Properties/AssemblyInfo.cs +36 -0
- data/vendor/phonegap/lib/windows-phone/tooling/scripts/debug.bat +68 -0
- data/vendor/phonegap/lib/windows-phone/tooling/scripts/emulate.bat +24 -0
- metadata +1040 -0
data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/DebugConsole.cs
ADDED
@@ -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
|
+
}
|