You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by Simon MacDonald <si...@gmail.com> on 2015/07/22 21:47:20 UTC

Make internal storage default on Android

*TL;DR Summary*

We should switch the default for the Cordova Android File System to be on
internal storage, not the SD Card (or emulated SD card).


*Long Version*

Currently in Cordova Android when you use this code "window.
requestFileSystem(PERSISTENT, 0, win, fail);" the root file system path
that is returned is "/storage/emulated/0" i.e. "/sdcard".

Why you may ask? Because back in 2010 or so Bryce Curtis and I argued that
we should use the external storage location because internal storage was
not very large on Android 2.x and we didn't want to have developers filling
up the devices limited internal storage. Joe Bowser argued against it
because of issues with the SD Card on Android but was eventually out voted.

Now, I'm prepared to admit that Bryce was wrong (see what I did there?). I
feel that the default behaviour for "window.requestFileSystem(PERSISTENT,
0, win, fail);" should be to resolve to a location on internal storage that
meets the following requirements:

a) private to the application

b) removed when the application is uninstalled

c) lines up with what we have on iOS and WP

In fact you can get this behaviour right now but setting the following
preference in config.xml:

<preference name="AndroidPersistentFileLocation" value="Internal" />

This gets you a root file path of "/data/data/<android
package>/files/files/". The double "files" is an issue but we can probably
ignore it for now.

If a user wants the old behaviour they only need to make the preference:

<preference name="AndroidPersistentFileLocation" value="Compatibility" />

and the original behaviour will be retained.

What I'm advocating for is to make internal storage the default behaviour
for Cordova Android.


*Code Changes*

I've already taken a brief look into this and I feel the change is
extremely minor. We need only change the default return value from
"compatibility" to "internal" at line 156 of FileUtils.java (https://github
.com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
).

If we wanted to make the change explicit to the user we could change plugin.
xml to add the preference to config.xml as well.

Thoughts, comments, applause?
Simon Mac Donald
http://hi.im/simonmacdonald

Re: Make internal storage default on Android

Posted by Carlos Santana <cs...@gmail.com>.
I strongly object you are using 6 spaces for tabs :-)

Kidding aside I thought was already in master.
You got bonus points for using <info>
On Tue, Aug 11, 2015 at 1:30 PM Simon MacDonald <si...@gmail.com>
wrote:

> So if there are no objections to:
>
> https://github.com/apache/cordova-plugin-file/pull/127
>
> I will merge later today and tag a new version.
>
>
> Simon Mac Donald
> http://hi.im/simonmacdonald
>
> On Mon, Jul 27, 2015 at 5:18 PM, Simon MacDonald <
> simon.macdonald@gmail.com>
> wrote:
>
> > Pull Request sent:
> >
> > https://github.com/apache/cordova-plugin-file/pull/127
> >
> > Simon Mac Donald
> > http://hi.im/simonmacdonald
> >
> > On Mon, Jul 27, 2015 at 10:55 AM, Simon MacDonald <
> > simon.macdonald@gmail.com> wrote:
> >
> >> kk, I think this has enough support and I'll end up putting together a
> >> pull request today.
> >>
> >>
> >> Simon Mac Donald
> >> http://hi.im/simonmacdonald
> >>
> >> On Mon, Jul 27, 2015 at 10:40 AM, Andrew Grieve <ag...@chromium.org>
> >> wrote:
> >>
> >>> Ian and I made the switch to internal (via the preference).
> >>>
> >>> - I thought at one point the default app template set the preference to
> >>> internal, so that new apps would get the better behaviour and existing
> >>> apps
> >>> would continue to work. I don't see this happening now though :(
> >>> - The duplicate files/files, although oddly names, was just meant to
> give
> >>> the HTML5 FS root a directory that isolated from the rest of the app's
> >>> internal storage (so that it doesn't conflict with files put there by
> >>> plugins)
> >>>
> >>> Anyways, +1 for just switching this default and bumping the version.
> >>>
> >>> On Wed, Jul 22, 2015 at 9:27 PM, Carlos Santana <cs...@gmail.com>
> >>> wrote:
> >>>
> >>> > ding ding ding we have a winner , Are the blackberry guys still
> around
> >>> on
> >>> > this mailing list by the way?
> >>> > On Wed, Jul 22, 2015 at 10:00 PM Simon MacDonald <
> >>> > simon.macdonald@gmail.com>
> >>> > wrote:
> >>> >
> >>> > > As near as I can tell Windows use internal private storage as well.
> >>> > >
> >>> > > Simon Mac Donald
> >>> > > http://hi.im/simonmacdonald
> >>> > >
> >>> > > On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <
> >>> csantana23@gmail.com>
> >>> > > wrote:
> >>> > >
> >>> > > > I think cross platform web developers would expect all platforms
> to
> >>> > have
> >>> > > > same default. What the default for windows?
> >>> > > >
> >>> > > > +1 make default internal at least will have iOS and android with
> >>> same
> >>> > > > expectations
> >>> > > >
> >>> > > > We need to change the Major number (sever) for the version, it
> >>> feels
> >>> > like
> >>> > > > is changing an API
> >>> > > >
> >>> > > > I like the explicit even if it's not needed because the default
> is
> >>> > > > internal. But if they see it there it reminds them that internal
> is
> >>> > being
> >>> > > > used.
> >>> > > > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca>
> >>> wrote:
> >>> > > >
> >>> > > > > +1 because saving to the SD Card has added problems with other
> >>> apps
> >>> > > (such
> >>> > > > > as photo and music apps) picking up files that they shouldn't.
> >>> > > > >
> >>> > > > > Nothing more annoying than accidentally unleashing 200 logos
> and
> >>> > icons
> >>> > > > into
> >>> > > > > the photos app of unsuspecting users.
> >>> > > > >
> >>> > > > > On 22 July 2015 at 12:47, Simon MacDonald <
> >>> simon.macdonald@gmail.com
> >>>
> >>> > >
> >>> > > > > wrote:
> >>> > > > >
> >>> > > > > > *TL;DR Summary*
> >>> > > > > >
> >>> > > > > > We should switch the default for the Cordova Android File
> >>> System to
> >>> > > be
> >>> > > > on
> >>> > > > > > internal storage, not the SD Card (or emulated SD card).
> >>> > > > > >
> >>> > > > > >
> >>> > > > > > *Long Version*
> >>> > > > > >
> >>> > > > > > Currently in Cordova Android when you use this code "window.
> >>> > > > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file
> >>> system
> >>> > > path
> >>> > > > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> >>> > > > > >
> >>> > > > > > Why you may ask? Because back in 2010 or so Bryce Curtis and
> I
> >>> > argued
> >>> > > > > that
> >>> > > > > > we should use the external storage location because internal
> >>> > storage
> >>> > > > was
> >>> > > > > > not very large on Android 2.x and we didn't want to have
> >>> developers
> >>> > > > > filling
> >>> > > > > > up the devices limited internal storage. Joe Bowser argued
> >>> against
> >>> > it
> >>> > > > > > because of issues with the SD Card on Android but was
> >>> eventually
> >>> > out
> >>> > > > > voted.
> >>> > > > > >
> >>> > > > > > Now, I'm prepared to admit that Bryce was wrong (see what I
> did
> >>> > > > there?).
> >>> > > > > I
> >>> > > > > > feel that the default behaviour for
> >>> > > > "window.requestFileSystem(PERSISTENT,
> >>> > > > > > 0, win, fail);" should be to resolve to a location on
> internal
> >>> > > storage
> >>> > > > > that
> >>> > > > > > meets the following requirements:
> >>> > > > > >
> >>> > > > > > a) private to the application
> >>> > > > > >
> >>> > > > > > b) removed when the application is uninstalled
> >>> > > > > >
> >>> > > > > > c) lines up with what we have on iOS and WP
> >>> > > > > >
> >>> > > > > > In fact you can get this behaviour right now but setting the
> >>> > > following
> >>> > > > > > preference in config.xml:
> >>> > > > > >
> >>> > > > > > <preference name="AndroidPersistentFileLocation"
> >>> value="Internal"
> >>> > />
> >>> > > > > >
> >>> > > > > > This gets you a root file path of "/data/data/<android
> >>> > > > > > package>/files/files/". The double "files" is an issue but we
> >>> can
> >>> > > > > probably
> >>> > > > > > ignore it for now.
> >>> > > > > >
> >>> > > > > > If a user wants the old behaviour they only need to make the
> >>> > > > preference:
> >>> > > > > >
> >>> > > > > > <preference name="AndroidPersistentFileLocation"
> >>> > > value="Compatibility"
> >>> > > > />
> >>> > > > > >
> >>> > > > > > and the original behaviour will be retained.
> >>> > > > > >
> >>> > > > > > What I'm advocating for is to make internal storage the
> default
> >>> > > > behaviour
> >>> > > > > > for Cordova Android.
> >>> > > > > >
> >>> > > > > >
> >>> > > > > > *Code Changes*
> >>> > > > > >
> >>> > > > > > I've already taken a brief look into this and I feel the
> >>> change is
> >>> > > > > > extremely minor. We need only change the default return value
> >>> from
> >>> > > > > > "compatibility" to "internal" at line 156 of FileUtils.java (
> >>> > > > > > https://github
> >>> > > > > >
> >>> > > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> >>> > > > > > ).
> >>> > > > > >
> >>> > > > > > If we wanted to make the change explicit to the user we could
> >>> > change
> >>> > > > > > plugin.
> >>> > > > > > xml to add the preference to config.xml as well.
> >>> > > > > >
> >>> > > > > > Thoughts, comments, applause?
> >>> > > > > > Simon Mac Donald
> >>> > > > > > http://hi.im/simonmacdonald
> >>> > > > > >
> >>> > > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> >>
> >>
> >
>

Re: Make internal storage default on Android

Posted by Simon MacDonald <si...@gmail.com>.
So if there are no objections to:

https://github.com/apache/cordova-plugin-file/pull/127

I will merge later today and tag a new version.


Simon Mac Donald
http://hi.im/simonmacdonald

On Mon, Jul 27, 2015 at 5:18 PM, Simon MacDonald <si...@gmail.com>
wrote:

> Pull Request sent:
>
> https://github.com/apache/cordova-plugin-file/pull/127
>
> Simon Mac Donald
> http://hi.im/simonmacdonald
>
> On Mon, Jul 27, 2015 at 10:55 AM, Simon MacDonald <
> simon.macdonald@gmail.com> wrote:
>
>> kk, I think this has enough support and I'll end up putting together a
>> pull request today.
>>
>>
>> Simon Mac Donald
>> http://hi.im/simonmacdonald
>>
>> On Mon, Jul 27, 2015 at 10:40 AM, Andrew Grieve <ag...@chromium.org>
>> wrote:
>>
>>> Ian and I made the switch to internal (via the preference).
>>>
>>> - I thought at one point the default app template set the preference to
>>> internal, so that new apps would get the better behaviour and existing
>>> apps
>>> would continue to work. I don't see this happening now though :(
>>> - The duplicate files/files, although oddly names, was just meant to give
>>> the HTML5 FS root a directory that isolated from the rest of the app's
>>> internal storage (so that it doesn't conflict with files put there by
>>> plugins)
>>>
>>> Anyways, +1 for just switching this default and bumping the version.
>>>
>>> On Wed, Jul 22, 2015 at 9:27 PM, Carlos Santana <cs...@gmail.com>
>>> wrote:
>>>
>>> > ding ding ding we have a winner , Are the blackberry guys still around
>>> on
>>> > this mailing list by the way?
>>> > On Wed, Jul 22, 2015 at 10:00 PM Simon MacDonald <
>>> > simon.macdonald@gmail.com>
>>> > wrote:
>>> >
>>> > > As near as I can tell Windows use internal private storage as well.
>>> > >
>>> > > Simon Mac Donald
>>> > > http://hi.im/simonmacdonald
>>> > >
>>> > > On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <
>>> csantana23@gmail.com>
>>> > > wrote:
>>> > >
>>> > > > I think cross platform web developers would expect all platforms to
>>> > have
>>> > > > same default. What the default for windows?
>>> > > >
>>> > > > +1 make default internal at least will have iOS and android with
>>> same
>>> > > > expectations
>>> > > >
>>> > > > We need to change the Major number (sever) for the version, it
>>> feels
>>> > like
>>> > > > is changing an API
>>> > > >
>>> > > > I like the explicit even if it's not needed because the default is
>>> > > > internal. But if they see it there it reminds them that internal is
>>> > being
>>> > > > used.
>>> > > > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca>
>>> wrote:
>>> > > >
>>> > > > > +1 because saving to the SD Card has added problems with other
>>> apps
>>> > > (such
>>> > > > > as photo and music apps) picking up files that they shouldn't.
>>> > > > >
>>> > > > > Nothing more annoying than accidentally unleashing 200 logos and
>>> > icons
>>> > > > into
>>> > > > > the photos app of unsuspecting users.
>>> > > > >
>>> > > > > On 22 July 2015 at 12:47, Simon MacDonald <
>>> simon.macdonald@gmail.com
>>>
>>> > >
>>> > > > > wrote:
>>> > > > >
>>> > > > > > *TL;DR Summary*
>>> > > > > >
>>> > > > > > We should switch the default for the Cordova Android File
>>> System to
>>> > > be
>>> > > > on
>>> > > > > > internal storage, not the SD Card (or emulated SD card).
>>> > > > > >
>>> > > > > >
>>> > > > > > *Long Version*
>>> > > > > >
>>> > > > > > Currently in Cordova Android when you use this code "window.
>>> > > > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file
>>> system
>>> > > path
>>> > > > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
>>> > > > > >
>>> > > > > > Why you may ask? Because back in 2010 or so Bryce Curtis and I
>>> > argued
>>> > > > > that
>>> > > > > > we should use the external storage location because internal
>>> > storage
>>> > > > was
>>> > > > > > not very large on Android 2.x and we didn't want to have
>>> developers
>>> > > > > filling
>>> > > > > > up the devices limited internal storage. Joe Bowser argued
>>> against
>>> > it
>>> > > > > > because of issues with the SD Card on Android but was
>>> eventually
>>> > out
>>> > > > > voted.
>>> > > > > >
>>> > > > > > Now, I'm prepared to admit that Bryce was wrong (see what I did
>>> > > > there?).
>>> > > > > I
>>> > > > > > feel that the default behaviour for
>>> > > > "window.requestFileSystem(PERSISTENT,
>>> > > > > > 0, win, fail);" should be to resolve to a location on internal
>>> > > storage
>>> > > > > that
>>> > > > > > meets the following requirements:
>>> > > > > >
>>> > > > > > a) private to the application
>>> > > > > >
>>> > > > > > b) removed when the application is uninstalled
>>> > > > > >
>>> > > > > > c) lines up with what we have on iOS and WP
>>> > > > > >
>>> > > > > > In fact you can get this behaviour right now but setting the
>>> > > following
>>> > > > > > preference in config.xml:
>>> > > > > >
>>> > > > > > <preference name="AndroidPersistentFileLocation"
>>> value="Internal"
>>> > />
>>> > > > > >
>>> > > > > > This gets you a root file path of "/data/data/<android
>>> > > > > > package>/files/files/". The double "files" is an issue but we
>>> can
>>> > > > > probably
>>> > > > > > ignore it for now.
>>> > > > > >
>>> > > > > > If a user wants the old behaviour they only need to make the
>>> > > > preference:
>>> > > > > >
>>> > > > > > <preference name="AndroidPersistentFileLocation"
>>> > > value="Compatibility"
>>> > > > />
>>> > > > > >
>>> > > > > > and the original behaviour will be retained.
>>> > > > > >
>>> > > > > > What I'm advocating for is to make internal storage the default
>>> > > > behaviour
>>> > > > > > for Cordova Android.
>>> > > > > >
>>> > > > > >
>>> > > > > > *Code Changes*
>>> > > > > >
>>> > > > > > I've already taken a brief look into this and I feel the
>>> change is
>>> > > > > > extremely minor. We need only change the default return value
>>> from
>>> > > > > > "compatibility" to "internal" at line 156 of FileUtils.java (
>>> > > > > > https://github
>>> > > > > >
>>> > > > >
>>> > > >
>>> > >
>>> >
>>> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
>>> > > > > > ).
>>> > > > > >
>>> > > > > > If we wanted to make the change explicit to the user we could
>>> > change
>>> > > > > > plugin.
>>> > > > > > xml to add the preference to config.xml as well.
>>> > > > > >
>>> > > > > > Thoughts, comments, applause?
>>> > > > > > Simon Mac Donald
>>> > > > > > http://hi.im/simonmacdonald
>>> > > > > >
>>> > > > >
>>> > > >
>>> > >
>>> >
>>>
>>
>>
>

Re: Make internal storage default on Android

Posted by Simon MacDonald <si...@gmail.com>.
Pull Request sent:

https://github.com/apache/cordova-plugin-file/pull/127

Simon Mac Donald
http://hi.im/simonmacdonald

On Mon, Jul 27, 2015 at 10:55 AM, Simon MacDonald <simon.macdonald@gmail.com
> wrote:

> kk, I think this has enough support and I'll end up putting together a
> pull request today.
>
>
> Simon Mac Donald
> http://hi.im/simonmacdonald
>
> On Mon, Jul 27, 2015 at 10:40 AM, Andrew Grieve <ag...@chromium.org>
> wrote:
>
>> Ian and I made the switch to internal (via the preference).
>>
>> - I thought at one point the default app template set the preference to
>> internal, so that new apps would get the better behaviour and existing
>> apps
>> would continue to work. I don't see this happening now though :(
>> - The duplicate files/files, although oddly names, was just meant to give
>> the HTML5 FS root a directory that isolated from the rest of the app's
>> internal storage (so that it doesn't conflict with files put there by
>> plugins)
>>
>> Anyways, +1 for just switching this default and bumping the version.
>>
>> On Wed, Jul 22, 2015 at 9:27 PM, Carlos Santana <cs...@gmail.com>
>> wrote:
>>
>> > ding ding ding we have a winner , Are the blackberry guys still around
>> on
>> > this mailing list by the way?
>> > On Wed, Jul 22, 2015 at 10:00 PM Simon MacDonald <
>> > simon.macdonald@gmail.com>
>> > wrote:
>> >
>> > > As near as I can tell Windows use internal private storage as well.
>> > >
>> > > Simon Mac Donald
>> > > http://hi.im/simonmacdonald
>> > >
>> > > On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <csantana23@gmail.com
>> >
>> > > wrote:
>> > >
>> > > > I think cross platform web developers would expect all platforms to
>> > have
>> > > > same default. What the default for windows?
>> > > >
>> > > > +1 make default internal at least will have iOS and android with
>> same
>> > > > expectations
>> > > >
>> > > > We need to change the Major number (sever) for the version, it feels
>> > like
>> > > > is changing an API
>> > > >
>> > > > I like the explicit even if it's not needed because the default is
>> > > > internal. But if they see it there it reminds them that internal is
>> > being
>> > > > used.
>> > > > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca>
>> wrote:
>> > > >
>> > > > > +1 because saving to the SD Card has added problems with other
>> apps
>> > > (such
>> > > > > as photo and music apps) picking up files that they shouldn't.
>> > > > >
>> > > > > Nothing more annoying than accidentally unleashing 200 logos and
>> > icons
>> > > > into
>> > > > > the photos app of unsuspecting users.
>> > > > >
>> > > > > On 22 July 2015 at 12:47, Simon MacDonald <
>> simon.macdonald@gmail.com
>>
>> > >
>> > > > > wrote:
>> > > > >
>> > > > > > *TL;DR Summary*
>> > > > > >
>> > > > > > We should switch the default for the Cordova Android File
>> System to
>> > > be
>> > > > on
>> > > > > > internal storage, not the SD Card (or emulated SD card).
>> > > > > >
>> > > > > >
>> > > > > > *Long Version*
>> > > > > >
>> > > > > > Currently in Cordova Android when you use this code "window.
>> > > > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file
>> system
>> > > path
>> > > > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
>> > > > > >
>> > > > > > Why you may ask? Because back in 2010 or so Bryce Curtis and I
>> > argued
>> > > > > that
>> > > > > > we should use the external storage location because internal
>> > storage
>> > > > was
>> > > > > > not very large on Android 2.x and we didn't want to have
>> developers
>> > > > > filling
>> > > > > > up the devices limited internal storage. Joe Bowser argued
>> against
>> > it
>> > > > > > because of issues with the SD Card on Android but was eventually
>> > out
>> > > > > voted.
>> > > > > >
>> > > > > > Now, I'm prepared to admit that Bryce was wrong (see what I did
>> > > > there?).
>> > > > > I
>> > > > > > feel that the default behaviour for
>> > > > "window.requestFileSystem(PERSISTENT,
>> > > > > > 0, win, fail);" should be to resolve to a location on internal
>> > > storage
>> > > > > that
>> > > > > > meets the following requirements:
>> > > > > >
>> > > > > > a) private to the application
>> > > > > >
>> > > > > > b) removed when the application is uninstalled
>> > > > > >
>> > > > > > c) lines up with what we have on iOS and WP
>> > > > > >
>> > > > > > In fact you can get this behaviour right now but setting the
>> > > following
>> > > > > > preference in config.xml:
>> > > > > >
>> > > > > > <preference name="AndroidPersistentFileLocation"
>> value="Internal"
>> > />
>> > > > > >
>> > > > > > This gets you a root file path of "/data/data/<android
>> > > > > > package>/files/files/". The double "files" is an issue but we
>> can
>> > > > > probably
>> > > > > > ignore it for now.
>> > > > > >
>> > > > > > If a user wants the old behaviour they only need to make the
>> > > > preference:
>> > > > > >
>> > > > > > <preference name="AndroidPersistentFileLocation"
>> > > value="Compatibility"
>> > > > />
>> > > > > >
>> > > > > > and the original behaviour will be retained.
>> > > > > >
>> > > > > > What I'm advocating for is to make internal storage the default
>> > > > behaviour
>> > > > > > for Cordova Android.
>> > > > > >
>> > > > > >
>> > > > > > *Code Changes*
>> > > > > >
>> > > > > > I've already taken a brief look into this and I feel the change
>> is
>> > > > > > extremely minor. We need only change the default return value
>> from
>> > > > > > "compatibility" to "internal" at line 156 of FileUtils.java (
>> > > > > > https://github
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
>> > > > > > ).
>> > > > > >
>> > > > > > If we wanted to make the change explicit to the user we could
>> > change
>> > > > > > plugin.
>> > > > > > xml to add the preference to config.xml as well.
>> > > > > >
>> > > > > > Thoughts, comments, applause?
>> > > > > > Simon Mac Donald
>> > > > > > http://hi.im/simonmacdonald
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Re: Make internal storage default on Android

Posted by Simon MacDonald <si...@gmail.com>.
kk, I think this has enough support and I'll end up putting together a pull
request today.


Simon Mac Donald
http://hi.im/simonmacdonald

On Mon, Jul 27, 2015 at 10:40 AM, Andrew Grieve <ag...@chromium.org>
wrote:

> Ian and I made the switch to internal (via the preference).
>
> - I thought at one point the default app template set the preference to
> internal, so that new apps would get the better behaviour and existing apps
> would continue to work. I don't see this happening now though :(
> - The duplicate files/files, although oddly names, was just meant to give
> the HTML5 FS root a directory that isolated from the rest of the app's
> internal storage (so that it doesn't conflict with files put there by
> plugins)
>
> Anyways, +1 for just switching this default and bumping the version.
>
> On Wed, Jul 22, 2015 at 9:27 PM, Carlos Santana <cs...@gmail.com>
> wrote:
>
> > ding ding ding we have a winner , Are the blackberry guys still around on
> > this mailing list by the way?
> > On Wed, Jul 22, 2015 at 10:00 PM Simon MacDonald <
> > simon.macdonald@gmail.com>
> > wrote:
> >
> > > As near as I can tell Windows use internal private storage as well.
> > >
> > > Simon Mac Donald
> > > http://hi.im/simonmacdonald
> > >
> > > On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <cs...@gmail.com>
> > > wrote:
> > >
> > > > I think cross platform web developers would expect all platforms to
> > have
> > > > same default. What the default for windows?
> > > >
> > > > +1 make default internal at least will have iOS and android with same
> > > > expectations
> > > >
> > > > We need to change the Major number (sever) for the version, it feels
> > like
> > > > is changing an API
> > > >
> > > > I like the explicit even if it's not needed because the default is
> > > > internal. But if they see it there it reminds them that internal is
> > being
> > > > used.
> > > > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca>
> wrote:
> > > >
> > > > > +1 because saving to the SD Card has added problems with other apps
> > > (such
> > > > > as photo and music apps) picking up files that they shouldn't.
> > > > >
> > > > > Nothing more annoying than accidentally unleashing 200 logos and
> > icons
> > > > into
> > > > > the photos app of unsuspecting users.
> > > > >
> > > > > On 22 July 2015 at 12:47, Simon MacDonald <
> simon.macdonald@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > *TL;DR Summary*
> > > > > >
> > > > > > We should switch the default for the Cordova Android File System
> to
> > > be
> > > > on
> > > > > > internal storage, not the SD Card (or emulated SD card).
> > > > > >
> > > > > >
> > > > > > *Long Version*
> > > > > >
> > > > > > Currently in Cordova Android when you use this code "window.
> > > > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file
> system
> > > path
> > > > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> > > > > >
> > > > > > Why you may ask? Because back in 2010 or so Bryce Curtis and I
> > argued
> > > > > that
> > > > > > we should use the external storage location because internal
> > storage
> > > > was
> > > > > > not very large on Android 2.x and we didn't want to have
> developers
> > > > > filling
> > > > > > up the devices limited internal storage. Joe Bowser argued
> against
> > it
> > > > > > because of issues with the SD Card on Android but was eventually
> > out
> > > > > voted.
> > > > > >
> > > > > > Now, I'm prepared to admit that Bryce was wrong (see what I did
> > > > there?).
> > > > > I
> > > > > > feel that the default behaviour for
> > > > "window.requestFileSystem(PERSISTENT,
> > > > > > 0, win, fail);" should be to resolve to a location on internal
> > > storage
> > > > > that
> > > > > > meets the following requirements:
> > > > > >
> > > > > > a) private to the application
> > > > > >
> > > > > > b) removed when the application is uninstalled
> > > > > >
> > > > > > c) lines up with what we have on iOS and WP
> > > > > >
> > > > > > In fact you can get this behaviour right now but setting the
> > > following
> > > > > > preference in config.xml:
> > > > > >
> > > > > > <preference name="AndroidPersistentFileLocation" value="Internal"
> > />
> > > > > >
> > > > > > This gets you a root file path of "/data/data/<android
> > > > > > package>/files/files/". The double "files" is an issue but we can
> > > > > probably
> > > > > > ignore it for now.
> > > > > >
> > > > > > If a user wants the old behaviour they only need to make the
> > > > preference:
> > > > > >
> > > > > > <preference name="AndroidPersistentFileLocation"
> > > value="Compatibility"
> > > > />
> > > > > >
> > > > > > and the original behaviour will be retained.
> > > > > >
> > > > > > What I'm advocating for is to make internal storage the default
> > > > behaviour
> > > > > > for Cordova Android.
> > > > > >
> > > > > >
> > > > > > *Code Changes*
> > > > > >
> > > > > > I've already taken a brief look into this and I feel the change
> is
> > > > > > extremely minor. We need only change the default return value
> from
> > > > > > "compatibility" to "internal" at line 156 of FileUtils.java (
> > > > > > https://github
> > > > > >
> > > > >
> > > >
> > >
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > > > > > ).
> > > > > >
> > > > > > If we wanted to make the change explicit to the user we could
> > change
> > > > > > plugin.
> > > > > > xml to add the preference to config.xml as well.
> > > > > >
> > > > > > Thoughts, comments, applause?
> > > > > > Simon Mac Donald
> > > > > > http://hi.im/simonmacdonald
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: Make internal storage default on Android

Posted by Andrew Grieve <ag...@chromium.org>.
Ian and I made the switch to internal (via the preference).

- I thought at one point the default app template set the preference to
internal, so that new apps would get the better behaviour and existing apps
would continue to work. I don't see this happening now though :(
- The duplicate files/files, although oddly names, was just meant to give
the HTML5 FS root a directory that isolated from the rest of the app's
internal storage (so that it doesn't conflict with files put there by
plugins)

Anyways, +1 for just switching this default and bumping the version.

On Wed, Jul 22, 2015 at 9:27 PM, Carlos Santana <cs...@gmail.com>
wrote:

> ding ding ding we have a winner , Are the blackberry guys still around on
> this mailing list by the way?
> On Wed, Jul 22, 2015 at 10:00 PM Simon MacDonald <
> simon.macdonald@gmail.com>
> wrote:
>
> > As near as I can tell Windows use internal private storage as well.
> >
> > Simon Mac Donald
> > http://hi.im/simonmacdonald
> >
> > On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <cs...@gmail.com>
> > wrote:
> >
> > > I think cross platform web developers would expect all platforms to
> have
> > > same default. What the default for windows?
> > >
> > > +1 make default internal at least will have iOS and android with same
> > > expectations
> > >
> > > We need to change the Major number (sever) for the version, it feels
> like
> > > is changing an API
> > >
> > > I like the explicit even if it's not needed because the default is
> > > internal. But if they see it there it reminds them that internal is
> being
> > > used.
> > > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca> wrote:
> > >
> > > > +1 because saving to the SD Card has added problems with other apps
> > (such
> > > > as photo and music apps) picking up files that they shouldn't.
> > > >
> > > > Nothing more annoying than accidentally unleashing 200 logos and
> icons
> > > into
> > > > the photos app of unsuspecting users.
> > > >
> > > > On 22 July 2015 at 12:47, Simon MacDonald <simon.macdonald@gmail.com
> >
> > > > wrote:
> > > >
> > > > > *TL;DR Summary*
> > > > >
> > > > > We should switch the default for the Cordova Android File System to
> > be
> > > on
> > > > > internal storage, not the SD Card (or emulated SD card).
> > > > >
> > > > >
> > > > > *Long Version*
> > > > >
> > > > > Currently in Cordova Android when you use this code "window.
> > > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file system
> > path
> > > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> > > > >
> > > > > Why you may ask? Because back in 2010 or so Bryce Curtis and I
> argued
> > > > that
> > > > > we should use the external storage location because internal
> storage
> > > was
> > > > > not very large on Android 2.x and we didn't want to have developers
> > > > filling
> > > > > up the devices limited internal storage. Joe Bowser argued against
> it
> > > > > because of issues with the SD Card on Android but was eventually
> out
> > > > voted.
> > > > >
> > > > > Now, I'm prepared to admit that Bryce was wrong (see what I did
> > > there?).
> > > > I
> > > > > feel that the default behaviour for
> > > "window.requestFileSystem(PERSISTENT,
> > > > > 0, win, fail);" should be to resolve to a location on internal
> > storage
> > > > that
> > > > > meets the following requirements:
> > > > >
> > > > > a) private to the application
> > > > >
> > > > > b) removed when the application is uninstalled
> > > > >
> > > > > c) lines up with what we have on iOS and WP
> > > > >
> > > > > In fact you can get this behaviour right now but setting the
> > following
> > > > > preference in config.xml:
> > > > >
> > > > > <preference name="AndroidPersistentFileLocation" value="Internal"
> />
> > > > >
> > > > > This gets you a root file path of "/data/data/<android
> > > > > package>/files/files/". The double "files" is an issue but we can
> > > > probably
> > > > > ignore it for now.
> > > > >
> > > > > If a user wants the old behaviour they only need to make the
> > > preference:
> > > > >
> > > > > <preference name="AndroidPersistentFileLocation"
> > value="Compatibility"
> > > />
> > > > >
> > > > > and the original behaviour will be retained.
> > > > >
> > > > > What I'm advocating for is to make internal storage the default
> > > behaviour
> > > > > for Cordova Android.
> > > > >
> > > > >
> > > > > *Code Changes*
> > > > >
> > > > > I've already taken a brief look into this and I feel the change is
> > > > > extremely minor. We need only change the default return value from
> > > > > "compatibility" to "internal" at line 156 of FileUtils.java (
> > > > > https://github
> > > > >
> > > >
> > >
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > > > > ).
> > > > >
> > > > > If we wanted to make the change explicit to the user we could
> change
> > > > > plugin.
> > > > > xml to add the preference to config.xml as well.
> > > > >
> > > > > Thoughts, comments, applause?
> > > > > Simon Mac Donald
> > > > > http://hi.im/simonmacdonald
> > > > >
> > > >
> > >
> >
>

Re: Make internal storage default on Android

Posted by Carlos Santana <cs...@gmail.com>.
ding ding ding we have a winner , Are the blackberry guys still around on
this mailing list by the way?
On Wed, Jul 22, 2015 at 10:00 PM Simon MacDonald <si...@gmail.com>
wrote:

> As near as I can tell Windows use internal private storage as well.
>
> Simon Mac Donald
> http://hi.im/simonmacdonald
>
> On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <cs...@gmail.com>
> wrote:
>
> > I think cross platform web developers would expect all platforms to have
> > same default. What the default for windows?
> >
> > +1 make default internal at least will have iOS and android with same
> > expectations
> >
> > We need to change the Major number (sever) for the version, it feels like
> > is changing an API
> >
> > I like the explicit even if it's not needed because the default is
> > internal. But if they see it there it reminds them that internal is being
> > used.
> > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca> wrote:
> >
> > > +1 because saving to the SD Card has added problems with other apps
> (such
> > > as photo and music apps) picking up files that they shouldn't.
> > >
> > > Nothing more annoying than accidentally unleashing 200 logos and icons
> > into
> > > the photos app of unsuspecting users.
> > >
> > > On 22 July 2015 at 12:47, Simon MacDonald <si...@gmail.com>
> > > wrote:
> > >
> > > > *TL;DR Summary*
> > > >
> > > > We should switch the default for the Cordova Android File System to
> be
> > on
> > > > internal storage, not the SD Card (or emulated SD card).
> > > >
> > > >
> > > > *Long Version*
> > > >
> > > > Currently in Cordova Android when you use this code "window.
> > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file system
> path
> > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> > > >
> > > > Why you may ask? Because back in 2010 or so Bryce Curtis and I argued
> > > that
> > > > we should use the external storage location because internal storage
> > was
> > > > not very large on Android 2.x and we didn't want to have developers
> > > filling
> > > > up the devices limited internal storage. Joe Bowser argued against it
> > > > because of issues with the SD Card on Android but was eventually out
> > > voted.
> > > >
> > > > Now, I'm prepared to admit that Bryce was wrong (see what I did
> > there?).
> > > I
> > > > feel that the default behaviour for
> > "window.requestFileSystem(PERSISTENT,
> > > > 0, win, fail);" should be to resolve to a location on internal
> storage
> > > that
> > > > meets the following requirements:
> > > >
> > > > a) private to the application
> > > >
> > > > b) removed when the application is uninstalled
> > > >
> > > > c) lines up with what we have on iOS and WP
> > > >
> > > > In fact you can get this behaviour right now but setting the
> following
> > > > preference in config.xml:
> > > >
> > > > <preference name="AndroidPersistentFileLocation" value="Internal" />
> > > >
> > > > This gets you a root file path of "/data/data/<android
> > > > package>/files/files/". The double "files" is an issue but we can
> > > probably
> > > > ignore it for now.
> > > >
> > > > If a user wants the old behaviour they only need to make the
> > preference:
> > > >
> > > > <preference name="AndroidPersistentFileLocation"
> value="Compatibility"
> > />
> > > >
> > > > and the original behaviour will be retained.
> > > >
> > > > What I'm advocating for is to make internal storage the default
> > behaviour
> > > > for Cordova Android.
> > > >
> > > >
> > > > *Code Changes*
> > > >
> > > > I've already taken a brief look into this and I feel the change is
> > > > extremely minor. We need only change the default return value from
> > > > "compatibility" to "internal" at line 156 of FileUtils.java (
> > > > https://github
> > > >
> > >
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > > > ).
> > > >
> > > > If we wanted to make the change explicit to the user we could change
> > > > plugin.
> > > > xml to add the preference to config.xml as well.
> > > >
> > > > Thoughts, comments, applause?
> > > > Simon Mac Donald
> > > > http://hi.im/simonmacdonald
> > > >
> > >
> >
>

Re: Make internal storage default on Android

Posted by Simon MacDonald <si...@gmail.com>.
As near as I can tell Windows use internal private storage as well.

Simon Mac Donald
http://hi.im/simonmacdonald

On Wed, Jul 22, 2015 at 5:32 PM, Carlos Santana <cs...@gmail.com>
wrote:

> I think cross platform web developers would expect all platforms to have
> same default. What the default for windows?
>
> +1 make default internal at least will have iOS and android with same
> expectations
>
> We need to change the Major number (sever) for the version, it feels like
> is changing an API
>
> I like the explicit even if it's not needed because the default is
> internal. But if they see it there it reminds them that internal is being
> used.
> On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca> wrote:
>
> > +1 because saving to the SD Card has added problems with other apps (such
> > as photo and music apps) picking up files that they shouldn't.
> >
> > Nothing more annoying than accidentally unleashing 200 logos and icons
> into
> > the photos app of unsuspecting users.
> >
> > On 22 July 2015 at 12:47, Simon MacDonald <si...@gmail.com>
> > wrote:
> >
> > > *TL;DR Summary*
> > >
> > > We should switch the default for the Cordova Android File System to be
> on
> > > internal storage, not the SD Card (or emulated SD card).
> > >
> > >
> > > *Long Version*
> > >
> > > Currently in Cordova Android when you use this code "window.
> > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file system path
> > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> > >
> > > Why you may ask? Because back in 2010 or so Bryce Curtis and I argued
> > that
> > > we should use the external storage location because internal storage
> was
> > > not very large on Android 2.x and we didn't want to have developers
> > filling
> > > up the devices limited internal storage. Joe Bowser argued against it
> > > because of issues with the SD Card on Android but was eventually out
> > voted.
> > >
> > > Now, I'm prepared to admit that Bryce was wrong (see what I did
> there?).
> > I
> > > feel that the default behaviour for
> "window.requestFileSystem(PERSISTENT,
> > > 0, win, fail);" should be to resolve to a location on internal storage
> > that
> > > meets the following requirements:
> > >
> > > a) private to the application
> > >
> > > b) removed when the application is uninstalled
> > >
> > > c) lines up with what we have on iOS and WP
> > >
> > > In fact you can get this behaviour right now but setting the following
> > > preference in config.xml:
> > >
> > > <preference name="AndroidPersistentFileLocation" value="Internal" />
> > >
> > > This gets you a root file path of "/data/data/<android
> > > package>/files/files/". The double "files" is an issue but we can
> > probably
> > > ignore it for now.
> > >
> > > If a user wants the old behaviour they only need to make the
> preference:
> > >
> > > <preference name="AndroidPersistentFileLocation" value="Compatibility"
> />
> > >
> > > and the original behaviour will be retained.
> > >
> > > What I'm advocating for is to make internal storage the default
> behaviour
> > > for Cordova Android.
> > >
> > >
> > > *Code Changes*
> > >
> > > I've already taken a brief look into this and I feel the change is
> > > extremely minor. We need only change the default return value from
> > > "compatibility" to "internal" at line 156 of FileUtils.java (
> > > https://github
> > >
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > > ).
> > >
> > > If we wanted to make the change explicit to the user we could change
> > > plugin.
> > > xml to add the preference to config.xml as well.
> > >
> > > Thoughts, comments, applause?
> > > Simon Mac Donald
> > > http://hi.im/simonmacdonald
> > >
> >
>

Re: Make internal storage default on Android

Posted by Carlos Santana <cs...@gmail.com>.
That's what I meant the plugin cordova-plugin-file@2.1.0 bump up to 3.x

On Wed, Jul 22, 2015 at 5:38 PM Joe Bowser <bo...@gmail.com> wrote:

> This would change the major version of the plugin, not the platform, since
> this is a plugin API change and isn't actually a core-platform change.
>
> On Wed, Jul 22, 2015 at 2:33 PM Carlos Santana <cs...@gmail.com>
> wrote:
>
> > I think cross platform web developers would expect all platforms to have
> > same default. What the default for windows?
> >
> > +1 make default internal at least will have iOS and android with same
> > expectations
> >
> > We need to change the Major number (sever) for the version, it feels like
> > is changing an API
> >
> > I like the explicit even if it's not needed because the default is
> > internal. But if they see it there it reminds them that internal is being
> > used.
> > On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca> wrote:
> >
> > > +1 because saving to the SD Card has added problems with other apps
> (such
> > > as photo and music apps) picking up files that they shouldn't.
> > >
> > > Nothing more annoying than accidentally unleashing 200 logos and icons
> > into
> > > the photos app of unsuspecting users.
> > >
> > > On 22 July 2015 at 12:47, Simon MacDonald <si...@gmail.com>
> > > wrote:
> > >
> > > > *TL;DR Summary*
> > > >
> > > > We should switch the default for the Cordova Android File System to
> be
> > on
> > > > internal storage, not the SD Card (or emulated SD card).
> > > >
> > > >
> > > > *Long Version*
> > > >
> > > > Currently in Cordova Android when you use this code "window.
> > > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file system
> path
> > > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> > > >
> > > > Why you may ask? Because back in 2010 or so Bryce Curtis and I argued
> > > that
> > > > we should use the external storage location because internal storage
> > was
> > > > not very large on Android 2.x and we didn't want to have developers
> > > filling
> > > > up the devices limited internal storage. Joe Bowser argued against it
> > > > because of issues with the SD Card on Android but was eventually out
> > > voted.
> > > >
> > > > Now, I'm prepared to admit that Bryce was wrong (see what I did
> > there?).
> > > I
> > > > feel that the default behaviour for
> > "window.requestFileSystem(PERSISTENT,
> > > > 0, win, fail);" should be to resolve to a location on internal
> storage
> > > that
> > > > meets the following requirements:
> > > >
> > > > a) private to the application
> > > >
> > > > b) removed when the application is uninstalled
> > > >
> > > > c) lines up with what we have on iOS and WP
> > > >
> > > > In fact you can get this behaviour right now but setting the
> following
> > > > preference in config.xml:
> > > >
> > > > <preference name="AndroidPersistentFileLocation" value="Internal" />
> > > >
> > > > This gets you a root file path of "/data/data/<android
> > > > package>/files/files/". The double "files" is an issue but we can
> > > probably
> > > > ignore it for now.
> > > >
> > > > If a user wants the old behaviour they only need to make the
> > preference:
> > > >
> > > > <preference name="AndroidPersistentFileLocation"
> value="Compatibility"
> > />
> > > >
> > > > and the original behaviour will be retained.
> > > >
> > > > What I'm advocating for is to make internal storage the default
> > behaviour
> > > > for Cordova Android.
> > > >
> > > >
> > > > *Code Changes*
> > > >
> > > > I've already taken a brief look into this and I feel the change is
> > > > extremely minor. We need only change the default return value from
> > > > "compatibility" to "internal" at line 156 of FileUtils.java (
> > > > https://github
> > > >
> > >
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > > > ).
> > > >
> > > > If we wanted to make the change explicit to the user we could change
> > > > plugin.
> > > > xml to add the preference to config.xml as well.
> > > >
> > > > Thoughts, comments, applause?
> > > > Simon Mac Donald
> > > > http://hi.im/simonmacdonald
> > > >
> > >
> >
>

Re: Make internal storage default on Android

Posted by Joe Bowser <bo...@gmail.com>.
This would change the major version of the plugin, not the platform, since
this is a plugin API change and isn't actually a core-platform change.

On Wed, Jul 22, 2015 at 2:33 PM Carlos Santana <cs...@gmail.com> wrote:

> I think cross platform web developers would expect all platforms to have
> same default. What the default for windows?
>
> +1 make default internal at least will have iOS and android with same
> expectations
>
> We need to change the Major number (sever) for the version, it feels like
> is changing an API
>
> I like the explicit even if it's not needed because the default is
> internal. But if they see it there it reminds them that internal is being
> used.
> On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca> wrote:
>
> > +1 because saving to the SD Card has added problems with other apps (such
> > as photo and music apps) picking up files that they shouldn't.
> >
> > Nothing more annoying than accidentally unleashing 200 logos and icons
> into
> > the photos app of unsuspecting users.
> >
> > On 22 July 2015 at 12:47, Simon MacDonald <si...@gmail.com>
> > wrote:
> >
> > > *TL;DR Summary*
> > >
> > > We should switch the default for the Cordova Android File System to be
> on
> > > internal storage, not the SD Card (or emulated SD card).
> > >
> > >
> > > *Long Version*
> > >
> > > Currently in Cordova Android when you use this code "window.
> > > requestFileSystem(PERSISTENT, 0, win, fail);" the root file system path
> > > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> > >
> > > Why you may ask? Because back in 2010 or so Bryce Curtis and I argued
> > that
> > > we should use the external storage location because internal storage
> was
> > > not very large on Android 2.x and we didn't want to have developers
> > filling
> > > up the devices limited internal storage. Joe Bowser argued against it
> > > because of issues with the SD Card on Android but was eventually out
> > voted.
> > >
> > > Now, I'm prepared to admit that Bryce was wrong (see what I did
> there?).
> > I
> > > feel that the default behaviour for
> "window.requestFileSystem(PERSISTENT,
> > > 0, win, fail);" should be to resolve to a location on internal storage
> > that
> > > meets the following requirements:
> > >
> > > a) private to the application
> > >
> > > b) removed when the application is uninstalled
> > >
> > > c) lines up with what we have on iOS and WP
> > >
> > > In fact you can get this behaviour right now but setting the following
> > > preference in config.xml:
> > >
> > > <preference name="AndroidPersistentFileLocation" value="Internal" />
> > >
> > > This gets you a root file path of "/data/data/<android
> > > package>/files/files/". The double "files" is an issue but we can
> > probably
> > > ignore it for now.
> > >
> > > If a user wants the old behaviour they only need to make the
> preference:
> > >
> > > <preference name="AndroidPersistentFileLocation" value="Compatibility"
> />
> > >
> > > and the original behaviour will be retained.
> > >
> > > What I'm advocating for is to make internal storage the default
> behaviour
> > > for Cordova Android.
> > >
> > >
> > > *Code Changes*
> > >
> > > I've already taken a brief look into this and I feel the change is
> > > extremely minor. We need only change the default return value from
> > > "compatibility" to "internal" at line 156 of FileUtils.java (
> > > https://github
> > >
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > > ).
> > >
> > > If we wanted to make the change explicit to the user we could change
> > > plugin.
> > > xml to add the preference to config.xml as well.
> > >
> > > Thoughts, comments, applause?
> > > Simon Mac Donald
> > > http://hi.im/simonmacdonald
> > >
> >
>

Re: Make internal storage default on Android

Posted by Carlos Santana <cs...@gmail.com>.
I think cross platform web developers would expect all platforms to have
same default. What the default for windows?

+1 make default internal at least will have iOS and android with same
expectations

We need to change the Major number (sever) for the version, it feels like
is changing an API

I like the explicit even if it's not needed because the default is
internal. But if they see it there it reminds them that internal is being
used.
On Wed, Jul 22, 2015 at 4:02 PM Darryl Pogue <da...@dpogue.ca> wrote:

> +1 because saving to the SD Card has added problems with other apps (such
> as photo and music apps) picking up files that they shouldn't.
>
> Nothing more annoying than accidentally unleashing 200 logos and icons into
> the photos app of unsuspecting users.
>
> On 22 July 2015 at 12:47, Simon MacDonald <si...@gmail.com>
> wrote:
>
> > *TL;DR Summary*
> >
> > We should switch the default for the Cordova Android File System to be on
> > internal storage, not the SD Card (or emulated SD card).
> >
> >
> > *Long Version*
> >
> > Currently in Cordova Android when you use this code "window.
> > requestFileSystem(PERSISTENT, 0, win, fail);" the root file system path
> > that is returned is "/storage/emulated/0" i.e. "/sdcard".
> >
> > Why you may ask? Because back in 2010 or so Bryce Curtis and I argued
> that
> > we should use the external storage location because internal storage was
> > not very large on Android 2.x and we didn't want to have developers
> filling
> > up the devices limited internal storage. Joe Bowser argued against it
> > because of issues with the SD Card on Android but was eventually out
> voted.
> >
> > Now, I'm prepared to admit that Bryce was wrong (see what I did there?).
> I
> > feel that the default behaviour for "window.requestFileSystem(PERSISTENT,
> > 0, win, fail);" should be to resolve to a location on internal storage
> that
> > meets the following requirements:
> >
> > a) private to the application
> >
> > b) removed when the application is uninstalled
> >
> > c) lines up with what we have on iOS and WP
> >
> > In fact you can get this behaviour right now but setting the following
> > preference in config.xml:
> >
> > <preference name="AndroidPersistentFileLocation" value="Internal" />
> >
> > This gets you a root file path of "/data/data/<android
> > package>/files/files/". The double "files" is an issue but we can
> probably
> > ignore it for now.
> >
> > If a user wants the old behaviour they only need to make the preference:
> >
> > <preference name="AndroidPersistentFileLocation" value="Compatibility" />
> >
> > and the original behaviour will be retained.
> >
> > What I'm advocating for is to make internal storage the default behaviour
> > for Cordova Android.
> >
> >
> > *Code Changes*
> >
> > I've already taken a brief look into this and I feel the change is
> > extremely minor. We need only change the default return value from
> > "compatibility" to "internal" at line 156 of FileUtils.java (
> > https://github
> >
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> > ).
> >
> > If we wanted to make the change explicit to the user we could change
> > plugin.
> > xml to add the preference to config.xml as well.
> >
> > Thoughts, comments, applause?
> > Simon Mac Donald
> > http://hi.im/simonmacdonald
> >
>

Re: Make internal storage default on Android

Posted by Darryl Pogue <da...@dpogue.ca>.
+1 because saving to the SD Card has added problems with other apps (such
as photo and music apps) picking up files that they shouldn't.

Nothing more annoying than accidentally unleashing 200 logos and icons into
the photos app of unsuspecting users.

On 22 July 2015 at 12:47, Simon MacDonald <si...@gmail.com> wrote:

> *TL;DR Summary*
>
> We should switch the default for the Cordova Android File System to be on
> internal storage, not the SD Card (or emulated SD card).
>
>
> *Long Version*
>
> Currently in Cordova Android when you use this code "window.
> requestFileSystem(PERSISTENT, 0, win, fail);" the root file system path
> that is returned is "/storage/emulated/0" i.e. "/sdcard".
>
> Why you may ask? Because back in 2010 or so Bryce Curtis and I argued that
> we should use the external storage location because internal storage was
> not very large on Android 2.x and we didn't want to have developers filling
> up the devices limited internal storage. Joe Bowser argued against it
> because of issues with the SD Card on Android but was eventually out voted.
>
> Now, I'm prepared to admit that Bryce was wrong (see what I did there?). I
> feel that the default behaviour for "window.requestFileSystem(PERSISTENT,
> 0, win, fail);" should be to resolve to a location on internal storage that
> meets the following requirements:
>
> a) private to the application
>
> b) removed when the application is uninstalled
>
> c) lines up with what we have on iOS and WP
>
> In fact you can get this behaviour right now but setting the following
> preference in config.xml:
>
> <preference name="AndroidPersistentFileLocation" value="Internal" />
>
> This gets you a root file path of "/data/data/<android
> package>/files/files/". The double "files" is an issue but we can probably
> ignore it for now.
>
> If a user wants the old behaviour they only need to make the preference:
>
> <preference name="AndroidPersistentFileLocation" value="Compatibility" />
>
> and the original behaviour will be retained.
>
> What I'm advocating for is to make internal storage the default behaviour
> for Cordova Android.
>
>
> *Code Changes*
>
> I've already taken a brief look into this and I feel the change is
> extremely minor. We need only change the default return value from
> "compatibility" to "internal" at line 156 of FileUtils.java (
> https://github
> .com/apache/cordova-plugin-file/blob/master/src/android/FileUtils.java#L156
> ).
>
> If we wanted to make the change explicit to the user we could change
> plugin.
> xml to add the preference to config.xml as well.
>
> Thoughts, comments, applause?
> Simon Mac Donald
> http://hi.im/simonmacdonald
>