[ https://issues.apache.org/jira/browse/CB-7253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14983691#comment-14983691 ]
ASF GitHub Bot commented on CB-7253: ------------------------------------ Github user dblotsky commented on a diff in the pull request: https://github.com/apache/cordova-plugin-file/pull/145#discussion_r43565104 --- Diff: src/android/DirectoryManager.java --- @@ -56,45 +56,46 @@ public static boolean testFileExists(String name) { } /** - * Get the free disk space - * + * Get the free space in external storage + * * @return Size in KB or -1 if not available --- End diff -- Nitpick: if we're dividing by 1024, then these are `KiB`. > window.requestFileSystem fails when no sd card is present and non-zero value > is provided for size > ------------------------------------------------------------------------------------------------- > > Key: CB-7253 > URL: https://issues.apache.org/jira/browse/CB-7253 > Project: Apache Cordova > Issue Type: Bug > Components: Plugin File > Affects Versions: 3.5.0 > Environment: I discovered this issue on a Nexus7 emulator running > android 4.4.2 with no sd card. > Reporter: Vincent Scuorzo > Assignee: Jason Ginchereau > Priority: Minor > Labels: easyfix > > The problem is that when no external storage is present the size parameter is > compared to the available storage space on the internal file system which is > incorrectly reported as 0. After reading a post on stack overflow > (http://stackoverflow.com/questions/4799643/getting-all-the-total-and-available-space-on-android) > I noticed that they were checking available space in a different way so I > tried it and the issue went away. > You can see this bug in action by setting up an emulator as I described and > running an app with the file plugin that can execute the following javascript: > window.requestFileSystem(PERSISTENT, 1024, function(fs){ console.log(fs); }, > function(e){ console.log(e); }); > With the current release you will get an error related to reaching the > storage quota since the available space is reported incorrectly. Change line > 72 of src/android/DirectoryManager.java to read the following: > freeSpace = > freeSpaceCalculation(Environment.getRootDirectory().getAbsolutePath()); > Run the same line of javascript as before and you will now have success, > assuming you actually have the available space. > You can easily bypass this issue and access the filesystem by just passing 0 > for the size but doing so will also circumvent the checks that ensure you > don't try to use more space than is available. In my case, my app was > handicapping itself because it thought it didn't have enough space to > download additional resources when it should not have had any issues. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org