diff --git a/README.md b/README.md index e86a75c..606910f 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,25 @@ Firefox OS 2.2 and up are supported. Sadly 2.0 and 1.3 miss a lot of ES6 functio ![Mobile Portrait Mockup](https://github.com/mdibaiee/Hawk/raw/master/Mobile%20Portrait.png) -#Thanks to +# Thanks to Sergio Muriel [@tfeserver](https://twitter.com/tfeserver) for testing application Mohammad Jahani [@mamal72](https://twitter.com/mamal72) for ideas, and helping in designing the [webpage](http://dibaiee.ir/Hawk) +# Frequently Asked Questions + +**Q: Why does Hawk create an `.empty` file inside new folders I create?** + +This happens on Firefox OS devices below version 3, and that's because the API doesn't allow +listing empty folders, in order to show you the folder, Hawk has to fake the folder to have a child. + + +**Q: Why is Hawk slow?** + +Hawk is much faster on Firefox OS 3.0 and up, and that's because the way old Device Storage API works, +it's slow by nature. Nothing we can do about it, sadly. + + # Features Version 1.0 diff --git a/build/main.js b/build/main.js index bf7ca28..f9f12a2 100644 --- a/build/main.js +++ b/build/main.js @@ -30057,7 +30057,9 @@ var createDirectory = _asyncToGenerator(function* () { var parent = yield root(); return parent.createDirectory.apply(parent, args).then(function () { - return createFile(args[0] + '/.empty'); + if (window.needsShim) { + return createFile(args[0] + '/.empty'); + } }); }); diff --git a/build/polyfill.js b/build/polyfill.js index 1a2bdab..f5fd5aa 100644 --- a/build/polyfill.js +++ b/build/polyfill.js @@ -21,8 +21,11 @@ function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPr }; }(Element.prototype)); +window.needsShim = false; + function shimDirectory(directory) { if (!directory.getFilesAndDirectories) { + window.needsShim = true; directory.toString = function() { return '[object Directory]' }; directory.getFilesAndDirectories = function getFilesAndDirectories() { var current = (this.path || '') + this.name; diff --git a/releases/hawk-1.0.0.zip b/releases/hawk-1.0.0.zip index 84da1a2..c07b178 100644 Binary files a/releases/hawk-1.0.0.zip and b/releases/hawk-1.0.0.zip differ diff --git a/src/js/api/files.js b/src/js/api/files.js index b7a8b31..cfe0a07 100644 --- a/src/js/api/files.js +++ b/src/js/api/files.js @@ -84,7 +84,9 @@ export async function createDirectory(...args) { let parent = await root(); return parent.createDirectory(...args).then(() => { - return createFile(args[0] + '/.empty'); + if (window.needsShim) { + return createFile(args[0] + '/.empty'); + } }); } diff --git a/src/polyfill.js b/src/polyfill.js index 1a2bdab..f5fd5aa 100644 --- a/src/polyfill.js +++ b/src/polyfill.js @@ -21,8 +21,11 @@ function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPr }; }(Element.prototype)); +window.needsShim = false; + function shimDirectory(directory) { if (!directory.getFilesAndDirectories) { + window.needsShim = true; directory.toString = function() { return '[object Directory]' }; directory.getFilesAndDirectories = function getFilesAndDirectories() { var current = (this.path || '') + this.name;