Another proposal about syntax which allows to specify multiple attributes at 
once and does not require parsing attributes from plain text: 

<config-file target="AndroidManifest.xml" parent="/manifest" attr="true">
        <application android:name="MyApplication" />
</config-file>

Also I've took a quick look at the implementation and it looks good apart from 
one minor issue - when we're grafting attributes we probably do not need to 
create an element to graft attributes to if it doesn't exist, otherwise after 
adding and then removing  the plugin created xml element will remain in 
modified file.

-
Best regards, Vladimir

-----Original Message-----
From: Nikhil Khandelwal [mailto:nikhi...@microsoft.com] 
Sent: Thursday, April 21, 2016 3:24 AM
To: dev@cordova.apache.org
Subject: RE: [Android] Need a solution to config.xml and AndroidManifest.xml 
feature requests

Oh great! I have not taken a close look at the implementation itself. Perhaps 
you already had some of this in mind.

As for the syntax for changing attributes, I would recommend something like 
this:

<config-file target="AndroidManifest.xml" parent="/manifest/application" 
attributeName="android:name" attirbuteValue="MyApplication"/>

Also, we should always prioritize config.xml edits over plugin.xml (giving the 
end developer the full control). In case of conflicts, between plugins & 
config.xml we should warn and mention which one we picked (config.xml)

Thanks,
Nikhil

-----Original Message-----
From: Karen Tran [mailto:ktop...@gmail.com]
Sent: Wednesday, April 20, 2016 12:40 PM
To: dev@cordova.apache.org
Subject: Re: [Android] Need a solution to config.xml and AndroidManifest.xml 
feature requests

Hi,

I made an attempt at the functionality of being able to add attributes with the 
config-file tag. It's not completed yet, but I wanted to get some review before 
I proceed.
With my changes, you can add an attribute through the config-file tag in 
plugin.xml when the plugin is added, and when the plugin is removed, the 
attribute will get removed.
https://github.com/ktop/cordova-lib/tree/cb-11023

This is what the tag looks like:
*    <config-file target="AndroidManifest.xml"
parent="/manifest/application" attr="true">*
*            android:name="MyApplication"*

*    </config-file>*

Added *attr* attribute to let Config-File know that we want to add an 
attribute. Default should be false and will expect an element rather than an 
attribute.

One issue I have is that it can only add 1 attribute per config-file tag.
This is the part that I still need to fix.

Can someone review what I have so far?

Thanks,
Karen

On Tue, Apr 5, 2016 at 6:54 PM, Simon MacDonald <simon.macdon...@gmail.com>
wrote:

> I would love to but I have a few other things to handle first. If 
> someone else picks it up before I get to it then that's cool with me.
>
>
> Simon Mac Donald
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fhi.im%
> 2fsimonmacdonald&data=01%7c01%7cnikhilkh%40microsoft.com%7c379bf4c2dae
> 4454ee13008d369539a2b%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=TvJ
> lf2LDyl%2bfSbRMDPjmLe%2fMBQf7PnAzRao5QANRrH4%3d
>
> On Tue, Apr 5, 2016 at 6:51 PM, Carlos Santana <csantan...@gmail.com>
> wrote:
>
> > Oh so it means you don't want to work on the code :-p
> >
> >
> > On Tue, Apr 5, 2016 at 6:50 PM Simon MacDonald <
> simon.macdon...@gmail.com>
> > wrote:
> >
> > > Thanks, I put a watch on that.
> > >
> > >
> > > Simon Mac Donald
> > > https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fhi
> > > .im%2fsimonmacdonald&data=01%7c01%7cnikhilkh%40microsoft.com%7c379
> > > bf4c2dae4454ee13008d369539a2b%7c72f988bf86f141af91ab2d7cd011db47%7
> > > c1&sdata=TvJlf2LDyl%2bfSbRMDPjmLe%2fMBQf7PnAzRao5QANRrH4%3d
> > >
> > > On Tue, Apr 5, 2016 at 6:48 PM, Carlos Santana 
> > > <csantan...@gmail.com>
> > > wrote:
> > >
> > > > Simon, I was not able to find a JIRA, I created a new JIRA [1] 
> > > > to
> > enhance
> > > > plugin.xml to allow <config-file> to add attributes
> > > >
> > > > [1]: 
> > > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2
> > > > fissues.apache.org%2fjira%2fbrowse%2fCB-11023&data=01%7c01%7cnik
> > > > hilkh%40microsoft.com%7c379bf4c2dae4454ee13008d369539a2b%7c72f98
> > > > 8bf86f141af91ab2d7cd011db47%7c1&sdata=qdtAQlq84gu4iot23V%2bdCyw4
> > > > yAtardggCzFXJutYDzU%3d
> > > >
> > > >
> > > > On Wed, Mar 23, 2016 at 11:30 AM Simon MacDonald < 
> > > > simon.macdon...@gmail.com>
> > > > wrote:
> > > >
> > > > > Seems like editing attributes in a config-file is a wanted
> > enhancement.
> > > > Do
> > > > > we have a JIRA for it?
> > > > >
> > > > >
> > > > > Simon Mac Donald
> > > > > https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%
> > > > > 2fhi.im%2fsimonmacdonald&data=01%7c01%7cnikhilkh%40microsoft.c
> > > > > om%7c379bf4c2dae4454ee13008d369539a2b%7c72f988bf86f141af91ab2d
> > > > > 7cd011db47%7c1&sdata=TvJlf2LDyl%2bfSbRMDPjmLe%2fMBQf7PnAzRao5Q
> > > > > ANRrH4%3d
> > > > >
> > > > > On Tue, Mar 22, 2016 at 5:09 PM, Carlos Santana <
> > csantan...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > I agree to enable config.xml to be able to set or override 
> > > > > > using config-file (i.e. any xml file including strings.xml) 
> > > > > > I also think that adding support in config.xml and 
> > > > > > plugin.xml to
> > edit
> > > > > > attributes is very helpful, this is exactly what we are 
> > > > > > doing for
> > one
> > > > of
> > > > > > our plugin to add the attribute android:name for 
> > > > > > <application>
> and
> > it
> > > > > was a
> > > > > > pain, and I think we still have problems doing it from 
> > > > > > before_plugin_install hook, it would be easier from 
> > > > > > plugin.xml
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Tue, Mar 22, 2016 at 10:55 AM julio cesar sanchez < 
> > > > > > jcesarmob...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Yes, Simon, that's my opinion, and we should show the
> conficting
> > > > values
> > > > > > and
> > > > > > > the id of the plugin with the conficting values so the 
> > > > > > > user
> knows
> > > he
> > > > > has
> > > > > > to
> > > > > > > change the values on the config.xml or remove the plugin.
> > > > > > >
> > > > > > > But we still will have problems if the plugin uses a hook 
> > > > > > > to
> > write
> > > > > values
> > > > > > > instead of using the config-file tag
> > > > > > >
> > > > > > > 2016-03-22 15:11 GMT+01:00 Alexis Kofman <
> > alexis.kof...@gmail.com
> > > >:
> > > > > > >
> > > > > > > > Maybe the configured values of the plugins are sometimes 
> > > > > > > > just
> > > > default
> > > > > > > > values that the user can override through the config.xml
> file.
> > > > > > > > What about adding a flag indicating whether the value is
> > > > overridable
> > > > > ?
> > > > > > > My 2
> > > > > > > > cents ...
> > > > > > > >
> > > > > > > > On Tue, Mar 22, 2016 at 3:02 PM, Simon MacDonald < 
> > > > > > > > simon.macdon...@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > So for Android's case you are thinking the order of
> > precedence
> > > > > should
> > > > > > > be:
> > > > > > > > >
> > > > > > > > > config.xml
> > > > > > > > > plugin.xml
> > > > > > > > > AndroidManifest.xml // created by the "cordova" cli
> > > > > > > > >
> > > > > > > > > Then if config.xml overrides something that one of the
> > plugins
> > > > > > depends
> > > > > > > on
> > > > > > > > > then the app won't build. I can actually get behind 
> > > > > > > > > that
> > > proposal
> > > > > if
> > > > > > > I'm
> > > > > > > > > understanding you correctly.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Simon Mac Donald
> > > > > > > > > https://na01.safelinks.protection.outlook.com/?url=htt
> > > > > > > > > p%3a%2f%2fhi.im%2fsimonmacdonald&data=01%7c01%7cnikhil
> > > > > > > > > kh%40microsoft.com%7c379bf4c2dae4454ee13008d369539a2b%
> > > > > > > > > 7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=TvJlf2LDy
> > > > > > > > > l%2bfSbRMDPjmLe%2fMBQf7PnAzRao5QANRrH4%3d
> > > > > > > > >
> > > > > > > > > On Tue, Mar 22, 2016 at 9:51 AM, julio cesar sanchez < 
> > > > > > > > > jcesarmob...@gmail.com
> > > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > I think, if there is a conflict between config.xml 
> > > > > > > > > > and
> > > > plugin.xml
> > > > > > we
> > > > > > > > > should
> > > > > > > > > > not build.
> > > > > > > > > >
> > > > > > > > > > If we pick config.xml values, the plugins with
> conflicting
> > > > values
> > > > > > > might
> > > > > > > > > not
> > > > > > > > > > work, and if we pick the plugin.xml values, the app 
> > > > > > > > > > might
> > not
> > > > > work
> > > > > > > the
> > > > > > > > > way
> > > > > > > > > > the user wants.
> > > > > > > > > >
> > > > > > > > > > I think both options are bad, the user wants the 
> > > > > > > > > > plugin
> to
> > > work
> > > > > and
> > > > > > > to
> > > > > > > > > get
> > > > > > > > > > the values he manually added and both aren't 
> > > > > > > > > > possible if
> > > there
> > > > > are
> > > > > > > > > > conflicts.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > 2016-03-22 13:28 GMT+01:00 Simon MacDonald <
> > > > > > > simon.macdon...@gmail.com
> > > > > > > > >:
> > > > > > > > > >
> > > > > > > > > > > When it comes to the AndroidManifest if config.xml 
> > > > > > > > > > > and
> > > > > plugin.xml
> > > > > > > > > > (possibly
> > > > > > > > > > > multiple plugin.xml's) disagree on the value of an
> > > attribute:
> > > > > > > > > > >
> > > > > > > > > > > - if the value is a boolean then it should default 
> > > > > > > > > > > to
> > > > 'false'.
> > > > > > For
> > > > > > > > > > instance
> > > > > > > > > > > if it is an attribute like supports small screens 
> > > > > > > > > > > if
> one
> > > > plugin
> > > > > > > sets
> > > > > > > > it
> > > > > > > > > > to
> > > > > > > > > > > false it should be false for or else the app may 
> > > > > > > > > > > not
> > build.
> > > > > > > > > > > - if the value is a integer then it should default 
> > > > > > > > > > > to
> the
> > > > > highest
> > > > > > > > > integer
> > > > > > > > > > > provided. For instance minimum SDK version, again 
> > > > > > > > > > > have
> to
> > > > pick
> > > > > > the
> > > > > > > > > > highest
> > > > > > > > > > > or the app won't build.
> > > > > > > > > > > - if the value is a string, damned if I know if 
> > > > > > > > > > > there
> are
> > > > > > conflicts
> > > > > > > > in
> > > > > > > > > > > multiple plugin.xml files but plugin.xml should 
> > > > > > > > > > > take
> > > > precedence
> > > > > > > over
> > > > > > > > > > > config.xml.
> > > > > > > > > > >
> > > > > > > > > > > Sound reasonable?
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Simon Mac Donald
> > > > > > > > > > > https://na01.safelinks.protection.outlook.com/?url
> > > > > > > > > > > =http%3a%2f%2fhi.im%2fsimonmacdonald&data=01%7c01%
> > > > > > > > > > > 7cnikhilkh%40microsoft.com%7c379bf4c2dae4454ee1300
> > > > > > > > > > > 8d369539a2b%7c72f988bf86f141af91ab2d7cd011db47%7c1
> > > > > > > > > > > &sdata=TvJlf2LDyl%2bfSbRMDPjmLe%2fMBQf7PnAzRao5QAN
> > > > > > > > > > > RrH4%3d
> > > > > > > > > > >
> > > > > > > > > > > On Tue, Mar 22, 2016 at 3:27 AM, Parashuram N <
> > > > > > > > panar...@microsoft.com>
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > The disagreement could also like in a “preference”
> > > > > specifying a
> > > > > > > > > value,
> > > > > > > > > > > > that is overwritten by this fragment.
> > > > > > > > > > > >
> > > > > > > > > > > > On 3/21/16, 11:28 PM, "Jesse" <
> purplecabb...@gmail.com
> > >
> > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > >I like having the same xml fragments in 
> > > > > > > > > > > > >config.xml
> as
> > we
> > > > use
> > > > > > in
> > > > > > > > > > > plugin.xml
> > > > > > > > > > > > >
> > > > > > > > > > > > ><platform name="android">
> > > > > > > > > > > > >    <config-file target="AndroidManifest.xml"
> > > > > > > > > > > > >parent="/manifest/application">
> > > > > > > > > > > > >        <activity android:name="
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://na01.safelinks.protection.outlook.com/?url=com.foo.Foo&data=01
> %7c01%7cpanarasi%40microsoft.com%7c79eba6a8336a4e77391d08d3521b3bd2%7c
> 72f988bf86f141af91ab2d7cd011db47%7c1&sdata=MPgaRi3qGueHAnmnV6tXJyRlIzQ
> Iu6gHxeYTnpiKR9c%3d
> > > > > > > > > > > > "
> > > > > > > > > > > > >android:label="@string/app_name">
> > > > > > > > > > > > >            <intent-filter>
> > > > > > > > > > > > >            </intent-filter>
> > > > > > > > > > > > >        </activity>
> > > > > > > > > > > > >    </config-file> </platform>
> > > > > > > > > > > > >
> > > > > > > > > > > > >We will need to address precedence, as a 
> > > > > > > > > > > > >plugin.xml
> > and
> > > > > > > config.xml
> > > > > > > > > can
> > > > > > > > > > > > >disagree.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >> On Mar 21, 2016, at 12:46 PM, Shazron <
> > > > shaz...@gmail.com>
> > > > > > > > wrote:
> > > > > > > > > > > > >>
> > > > > > > > > > > > >> Continuing on Simon's point, we already have
> > > duplication
> > > > > of
> > > > > > > > > entries
> > > > > > > > > > > > >> for preference tags in
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fissue
> s.apache.org%2fjira%2fbrowse%2fCB-9264&data=01%7c01%7cpanarasi%40micro
> soft.com%7c79eba6a8336a4e77391d08d3521b3bd2%7c72f988bf86f141af91ab2d7c
> d011db47%7c1&sdata=Amj46nGpbpE3scp6sjDw1FemeGton2Hu6YSyQqZNT4M%3d
> > > > > > > > > > > > >> and a post-processing step does the removal 
> > > > > > > > > > > > >> of
> > dupes.
> > > > Not
> > > > > > sure
> > > > > > > > if
> > > > > > > > > > this
> > > > > > > > > > > > >> removal method would be adequate (as long as 
> > > > > > > > > > > > >> the
> > > desired
> > > > > tag
> > > > > > > to
> > > > > > > > > > > > >> express is written to the config file *last*)
> > > > > > > > > > > > >>
> > > > > > > > > > > > >> On Mon, Mar 21, 2016 at 3:41 PM, Simon 
> > > > > > > > > > > > >> MacDonald <simon.macdon...@gmail.com> wrote:
> > > > > > > > > > > > >>> I agree the config-file is the way to go but 
> > > > > > > > > > > > >>> we
> > need
> > > to
> > > > > go
> > > > > > > one
> > > > > > > > > step
> > > > > > > > > > > > more
> > > > > > > > > > > > >>> and enable the changing of attributes in the
> config
> > > > file
> > > > > > > > instead
> > > > > > > > > of
> > > > > > > > > > > > just
> > > > > > > > > > > > >>> adding lines to AndroidManifest.xml. For
> instance,
> > > the
> > > > > > first
> > > > > > > > bug
> > > > > > > > > > > > CB-10894
> > > > > > > > > > > > >>> talks about adding a preference for screen sizes.
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>> The default AndroidManifest.xml that is 
> > > > > > > > > > > > >>> created
> > with
> > > > > > Cordova
> > > > > > > > > > Android
> > > > > > > > > > > > will
> > > > > > > > > > > > >>> add the line:
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>>    <supports-screens android:anyDensity="true"
> > > > > > > > > > > > >android:largeScreens="true"
> > > > > > > > > > > > >>> android:normalScreens="true"
> > > android:resizeable="true"
> > > > > > > > > > > > >>> android:smallScreens="true"
> > > > android:xlargeScreens="true"
> > > > > />
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>> and if you want to make smallScreens="false" 
> > > > > > > > > > > > >>> you
> > have
> > > > no
> > > > > > way
> > > > > > > of
> > > > > > > > > > doing
> > > > > > > > > > > > it
> > > > > > > > > > > > >as
> > > > > > > > > > > > >>> it adds a duplicate line if you are using 
> > > > > > > > > > > > >>> the
> > > > config-file
> > > > > > way
> > > > > > > > of
> > > > > > > > > > > doing
> > > > > > > > > > > > >>> things. We really need attribute level
> granularity
> > in
> > > > the
> > > > > > > > > > config-file
> > > > > > > > > > > > >tag.
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>> Simon Mac Donald
> > > > > > > > > > > > >>>
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fhi.im%
> 2fsimonmacdonald&data=01%7c01%7cpanarasi%40microsoft.com%7c79eba6a8336
> a4e77391d08d3521b3bd2%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=%2f
> THN2714ZxbZ7blck0JpCvz2U%2fLEFSzVDQP2mTLSMm8%3d
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>> On Mon, Mar 21, 2016 at 4:52 PM, Richard 
> > > > > > > > > > > > >>> Knoll <
> > > > > > > > > > > rikn...@microsoft.com>
> > > > > > > > > > > > >>> wrote:
> > > > > > > > > > > > >>>
> > > > > > > > > > > > >>>> I agree that config-file is the way to go. 
> > > > > > > > > > > > >>>> After
> > an
> > > > > > offline
> > > > > > > > > > > discussion
> > > > > > > > > > > > >>>> with Nikhil, Parashu, and Jason, one 
> > > > > > > > > > > > >>>> question
> that
> > > > came
> > > > > up
> > > > > > > was
> > > > > > > > > > > whether
> > > > > > > > > > > > >all
> > > > > > > > > > > > >>>> of this native config stuff belongs in
> config.xml
> > or
> > > > > > should
> > > > > > > be
> > > > > > > > > > > > separated
> > > > > > > > > > > > >>>> out. One idea would be to define separate 
> > > > > > > > > > > > >>>> files
> > for
> > > > each
> > > > > > > > > > > configuration
> > > > > > > > > > > > >file
> > > > > > > > > > > > >>>> you wish to modify (something like
> > > > > > > AndroidManifest.merge.xml).
> > > > > > > > > > Those
> > > > > > > > > > > > >files
> > > > > > > > > > > > >>>> would follow the same format as the 
> > > > > > > > > > > > >>>> config-file
> > tag
> > > > and
> > > > > > you
> > > > > > > > > could
> > > > > > > > > > > add
> > > > > > > > > > > > >>>> entries to build.json or config.xml 
> > > > > > > > > > > > >>>> specifying
> > what
> > > > > native
> > > > > > > > > config
> > > > > > > > > > > each
> > > > > > > > > > > > >file
> > > > > > > > > > > > >>>> modifies. It breaks from how we do it in
> > plugin.xml,
> > > > but
> > > > > > it
> > > > > > > > > > prevents
> > > > > > > > > > > > >having
> > > > > > > > > > > > >>>> gigantic config.xml files that are mostly
> composed
> > > of
> > > > > > native
> > > > > > > > > > > > fragments.
> > > > > > > > > > > > >The
> > > > > > > > > > > > >>>> current config file mixing that we do is
> somewhat
> > > > messy.
> > > > > > > > > > > > >>>> Thoughts?
> > > > > > > > > > > > >>>>
> > > > > > > > > > > > >>>> Richard
> > > > > > > > > > > > >>>>
> > > > > > > > > > > > >>>> -----Original Message-----
> > > > > > > > > > > > >>>> From: Alexis Kofman [mailto:
> > alexis.kof...@gmail.com
> > > ]
> > > > > > > > > > > > >>>> Sent: Monday, March 21, 2016 1:39 PM
> > > > > > > > > > > > >>>> To: dev@cordova.apache.org
> > > > > > > > > > > > >>>> Subject: Re: [Android] Need a solution to
> > config.xml
> > > > and
> > > > > > > > > > > > >>>> AndroidManifest.xml feature requests
> > > > > > > > > > > > >>>>
> > > > > > > > > > > > >>>> Hello all,
> > > > > > > > > > > > >>>>
> > > > > > > > > > > > >>>> I agree with Julio that it is less 
> > > > > > > > > > > > >>>> confusing
> > > keeping
> > > > > the
> > > > > > > same
> > > > > > > > > > > > mecanism
> > > > > > > > > > > > >>>> that the one it already exists with the
> > plugin.xml.
> > > > > > > > > > > > >>>> Le 21 mars 2016 19:17, "julio cesar 
> > > > > > > > > > > > >>>> sanchez" <
> > > > > > > > > > > jcesarmob...@gmail.com>
> > > > > > > > > > > > a
> > > > > > > > > > > > >>>> écrit :
> > > > > > > > > > > > >>>>
> > > > > > > > > > > > >>>>> I think we should add the config-file tag 
> > > > > > > > > > > > >>>>> to
> the
> > > > > > > config.xml.
> > > > > > > > > > > > >>>>> It's already implemented on the 
> > > > > > > > > > > > >>>>> plugin.xml. It
> > > allows
> > > > > you
> > > > > > > to
> > > > > > > > > > modify
> > > > > > > > > > > > >>>>> the AndroidManifest.xml or the info.plist 
> > > > > > > > > > > > >>>>> when
> > you
> > > > > > install
> > > > > > > a
> > > > > > > > > > > plugin.
> > > > > > > > > > > > >>>>> But the number of plugins that just modify 
> > > > > > > > > > > > >>>>> the
> > > > > > > > > > AndroidManifest.xml
> > > > > > > > > > > or
> > > > > > > > > > > > >>>>> info.plist is increasing, I think that 
> > > > > > > > > > > > >>>>> should
> be
> > on
> > > > the
> > > > > > > > > > config.xml
> > > > > > > > > > > > too.
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>> So we don't duplicate anything with our 
> > > > > > > > > > > > >>>>> own
> tags,
> > > we
> > > > > just
> > > > > > > let
> > > > > > > > > > them
> > > > > > > > > > > > add
> > > > > > > > > > > > >>>>> whatever they want from the config-file tag.
> > > > > > > > > > > > >>>>> And if something can't be edited from the
> > > config-file
> > > > > > tag,
> > > > > > > we
> > > > > > > > > > tell
> > > > > > > > > > > > >>>>> them to create a hook.
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>> Phonegap build uses the config-file tag on 
> > > > > > > > > > > > >>>>> the
> > > > > config.xml
> > > > > > > to
> > > > > > > > > > allow
> > > > > > > > > > > > >>>>> their users to edit the 
> > > > > > > > > > > > >>>>> AndroidManifest.xml and
> > the
> > > > > > > > info.plist
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>> @Parashuram idea might work on android, 
> > > > > > > > > > > > >>>>> but I
> > think
> > > > we
> > > > > > > should
> > > > > > > > > > have
> > > > > > > > > > > > >>>>> something that can be used on all the 
> > > > > > > > > > > > >>>>> platforms
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>> 2016-03-21 18:40 GMT+01:00 Parashuram N <
> > > > > > > > > panar...@microsoft.com
> > > > > > > > > > >:
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > > >>>>>> Given that we are now using Gradle for 
> > > > > > > > > > > > >>>>>> builds,
> > > could
> > > > > > these
> > > > > > > > > > simply
> > > > > > > > > > > be
> > > > > > > > > > > > >>>>>> gradle sub-projects that define an
> > > > > AndroidManifest.xml,
> > > > > > > that
> > > > > > > > > > gets
> > > > > > > > > > > > >>>>>> merged during Android build ? One way 
> > > > > > > > > > > > >>>>>> could be
> > to
> > > > > > support
> > > > > > > > > > > specifying
> > > > > > > > > > > > >>>>>> "sub-projects" in config.xml, and these
> changes
> > > get
> > > > > > picked
> > > > > > > > up.
> > > > > > > > > > > Would
> > > > > > > > > > > > >>>>>> it work for all cases ?
> > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > >>>>>> -----Original Message-----
> > > > > > > > > > > > >>>>>> From: Joe Bowser 
> > > > > > > > > > > > >>>>>> [mailto:bows...@gmail.com]
> > > > > > > > > > > > >>>>>> Sent: Monday, March 21, 2016 10:07 AM
> > > > > > > > > > > > >>>>>> To: dev <dev@cordova.apache.org>
> > > > > > > > > > > > >>>>>> Subject: [Android] Need a solution to
> config.xml
> > > and
> > > > > > > > > > > > >>>>>> AndroidManifest.xml feature requests
> > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > >>>>>> Hey
> > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > >>>>>> So, if you've been paying attention to 
> > > > > > > > > > > > >>>>>> the
> JIRA,
> > > > we've
> > > > > > > been
> > > > > > > > > > > getting
> > > > > > > > > > > > >>>>>> slammed with a ton of feature 
> > > > > > > > > > > > >>>>>> requests/bugs
> > > > regarding
> > > > > > the
> > > > > > > > > > Android
> > > > > > > > > > > > >>>>> Manifest
> > > > > > > > > > > > >>>>>> where people want to add a 1:1 mapping 
> > > > > > > > > > > > >>>>>> between
> > the
> > > > two
> > > > > > XML
> > > > > > > > > > files.
> > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > >>>>>> The thing is that it's getting out of 
> > > > > > > > > > > > >>>>>> control,
> > and
> > > > we
> > > > > > need
> > > > > > > > to
> > > > > > > > > > > find a
> > > > > > > > > > > > >>>>>> better solution to this problem.  I'm not 
> > > > > > > > > > > > >>>>>> sure
> > > what
> > > > a
> > > > > > > better
> > > > > > > > > > > > >>>>>> solution to this is, but if you want to 
> > > > > > > > > > > > >>>>>> see
> some
> > > of
> > > > > the
> > > > > > > > issues
> > > > > > > > > > > that
> > > > > > > > > > > > >>>>>> are related to this, here's a small list:
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fi
> > > ssue
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=s.apache.org&data=01%7c01%7cv-vlk
> > > > > > > > > > > > >>>>> oti%40microsoft.com%7c85a7cc3b615a41153be3
> > > > > > > > > > > > >>>>> 08d3697b61ed%7c72f988bf86f141af91ab2d7cd01
> > > > > > > > > > > > >>>>> 1db47%7c1&sdata=STOsTAzLXNAmh8Ywt9gRgjJ55%
> > > > > > > > > > > > >>>>> 2bxbxReKCN547xbQ9SI%3d
> > > > > > > > > > > >
> > > %2fjira%2fbrowse%2fCB-10894&data=01%7c01%7cpanarasi%40micr
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=osoft.com&data=01%7c01%7cv-vlkoti
> > > > > > > > > > > > >>>>> %40microsoft.com%7c85a7cc3b615a41153be308d
> > > > > > > > > > > > >>>>> 3697b61ed%7c72f988bf86f141af91ab2d7cd011db
> > > > > > > > > > > > >>>>> 47%7c1&sdata=EK9Mq6reUhOEE8sqRlyAZpM4AVqWn
> > > > > > > > > > > > >>>>> qkR19XtllaL78s%3d
> > > > > > > > > > > >
> > > > %7c4430fe17c9d94a96f19608d351ab4028%7c72f988bf86f141af91ab2d7
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > cd011db47%7c1&sdata=f3qD84Rx%2bc%2bDzryeeXDCIX%2bhrCk%2boM%2f26%2f
> > > T5OA
> > > > > > > > > > > > >>>>> y9RMA%3d
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fi
> > > ssue
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=s.apache.org&data=01%7c01%7cv-vlk
> > > > > > > > > > > > >>>>> oti%40microsoft.com%7c85a7cc3b615a41153be3
> > > > > > > > > > > > >>>>> 08d3697b61ed%7c72f988bf86f141af91ab2d7cd01
> > > > > > > > > > > > >>>>> 1db47%7c1&sdata=STOsTAzLXNAmh8Ywt9gRgjJ55%
> > > > > > > > > > > > >>>>> 2bxbxReKCN547xbQ9SI%3d
> > > > > > > > > > > >
> > > %2fjira%2fbrowse%2fCB-10917&data=01%7c01%7cpanarasi%40micr
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=osoft.com&data=01%7c01%7cv-vlkoti
> > > > > > > > > > > > >>>>> %40microsoft.com%7c85a7cc3b615a41153be308d
> > > > > > > > > > > > >>>>> 3697b61ed%7c72f988bf86f141af91ab2d7cd011db
> > > > > > > > > > > > >>>>> 47%7c1&sdata=EK9Mq6reUhOEE8sqRlyAZpM4AVqWn
> > > > > > > > > > > > >>>>> qkR19XtllaL78s%3d
> > > > > > > > > > > >
> > > > %7c4430fe17c9d94a96f19608d351ab4028%7c72f988bf86f141af91ab2d7
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > cd011db47%7c1&sdata=I1ycCL25rWlN4uTU%2fPXFBkv1PYXrDeX6dF6%2fMzyNSb
> > > E%3d
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fi
> > > ssue
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=s.apache.org&data=01%7c01%7cv-vlk
> > > > > > > > > > > > >>>>> oti%40microsoft.com%7c85a7cc3b615a41153be3
> > > > > > > > > > > > >>>>> 08d3697b61ed%7c72f988bf86f141af91ab2d7cd01
> > > > > > > > > > > > >>>>> 1db47%7c1&sdata=STOsTAzLXNAmh8Ywt9gRgjJ55%
> > > > > > > > > > > > >>>>> 2bxbxReKCN547xbQ9SI%3d
> > > > > > > > > > > >
> > > %2fjira%2fbrowse%2fCB-8159&data=01%7c01%7cpanarasi%40micro
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=soft.com&data=01%7c01%7cv-vlkoti%
> > > > > > > > > > > > >>>>> 40microsoft.com%7c85a7cc3b615a41153be308d3
> > > > > > > > > > > > >>>>> 697b61ed%7c72f988bf86f141af91ab2d7cd011db4
> > > > > > > > > > > > >>>>> 7%7c1&sdata=RFUh0275OGTdhtf%2fBsFqCjVbXcoX
> > > > > > > > > > > > >>>>> tjM7lJ3LBk58yLU%3d
> > > > > > > > > > > >
> > > > > %7c4430fe17c9d94a96f19608d351ab4028%7c72f988bf86f141af91ab2d7c
> > > > > > > > > > > > >>>>>
> > > > > > > > > > >
> > > > > > >
> > > d011db47%7c1&sdata=HS3ZRL%2fxY%2fJWZo5eMQPGFO6BS2W03z13va8NV7sZpjo
> > > %3d
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fi
> > > ssue
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=s.apache.org&data=01%7c01%7cv-vlk
> > > > > > > > > > > > >>>>> oti%40microsoft.com%7c85a7cc3b615a41153be3
> > > > > > > > > > > > >>>>> 08d3697b61ed%7c72f988bf86f141af91ab2d7cd01
> > > > > > > > > > > > >>>>> 1db47%7c1&sdata=STOsTAzLXNAmh8Ywt9gRgjJ55%
> > > > > > > > > > > > >>>>> 2bxbxReKCN547xbQ9SI%3d
> > > > > > > > > > > >
> > > %2fjira%2fbrowse%2fCB-10755&data=01%7c01%7cpanarasi%40micr
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=osoft.com&data=01%7c01%7cv-vlkoti
> > > > > > > > > > > > >>>>> %40microsoft.com%7c85a7cc3b615a41153be308d
> > > > > > > > > > > > >>>>> 3697b61ed%7c72f988bf86f141af91ab2d7cd011db
> > > > > > > > > > > > >>>>> 47%7c1&sdata=EK9Mq6reUhOEE8sqRlyAZpM4AVqWn
> > > > > > > > > > > > >>>>> qkR19XtllaL78s%3d
> > > > > > > > > > > >
> > > > %7c4430fe17c9d94a96f19608d351ab4028%7c72f988bf86f141af91ab2d7
> > > > > > > > > > > > >>>>>
> > > > > > > > > > >
> > > > > > >
> > > cd011db47%7c1&sdata=PeZms4TWbWqHInf%2fnYYbL3e5o9aB3Ijcl8fQxoUmsgU%
> > > 3d
> > > > > > > > > > > > >>>>>
> > > > > > > > > > > >
> > > > > > > > >
> > > > > >
> > > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fi
> > > ssue
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=s.apache.org&data=01%7c01%7cv-vlk
> > > > > > > > > > > > >>>>> oti%40microsoft.com%7c85a7cc3b615a41153be3
> > > > > > > > > > > > >>>>> 08d3697b61ed%7c72f988bf86f141af91ab2d7cd01
> > > > > > > > > > > > >>>>> 1db47%7c1&sdata=STOsTAzLXNAmh8Ywt9gRgjJ55%
> > > > > > > > > > > > >>>>> 2bxbxReKCN547xbQ9SI%3d
> > > > > > > > > > > >
> > > %2fjira%2fbrowse%2fCB-8976&data=01%7c01%7cpanarasi%40micro
> > > > > > > > > > > > >>>>> https://na01.safelinks.protection.outlook.
> > > > > > > > > > > > >>>>> com/?url=soft.com&data=01%7c01%7cv-vlkoti%
> > > > > > > > > > > > >>>>> 40microsoft.com%7c85a7cc3b615a41153be308d3
> > > > > > > > > > > > >>>>> 697b61ed%7c72f988bf86f141af91ab2d7cd011db4
> > > > > > > > > > > > >>>>> 7%7c1&sdata=RFUh0275OGTdhtf%2fBsFqCjVbXcoX
> > > > > > > > > > > > >>>>> tjM7lJ3LBk58yLU%3d
> > > > > > > > > > > >
> > > > > %7c4430fe17c9d94a96f19608d351ab4028%7c72f988bf86f141af91ab2d7c
> > > > > > > > > > > > >>>>>
> > > > > > > > >
> > > d011db47%7c1&sdata=4VoysIEst8o7k3kvkyYu9MeBDF8VZ3q7aG6oLcoCN2w%3d
> > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > >>>>>> All of these are either indirectly or 
> > > > > > > > > > > > >>>>>> directly
> > > > related
> > > > > > to
> > > > > > > > the
> > > > > > > > > > > > >>>>>> AndroidManifest, and it's clear that if 
> > > > > > > > > > > > >>>>>> we
> just
> > > > > allowed
> > > > > > > > people
> > > > > > > > > > to
> > > > > > > > > > > > >>>>>> edit an AndroidManifest, or at least 
> > > > > > > > > > > > >>>>>> allow
> > > portions
> > > > of
> > > > > > it
> > > > > > > to
> > > > > > > > > be
> > > > > > > > > > > > >>>>>> immutable, we
> > > > > > > > > > > > >>>>> would
> > > > > > > > > > > > >>>>>> be better off.  Obviously, plugins that
> install
> > > > > > > third-party
> > > > > > > > > > > > >>>>>> activities
> > > > > > > > > > > > >>>>> and
> > > > > > > > > > > > >>>>>> content providers would have to edit the
> > manifest,
> > > > > but I
> > > > > > > > think
> > > > > > > > > > > that
> > > > > > > > > > > > >>>>> things
> > > > > > > > > > > > >>>>>> are getting out of hand with the things 
> > > > > > > > > > > > >>>>>> that
> > > people
> > > > > want
> > > > > > > to
> > > > > > > > > > > control
> > > > > > > > > > > > >>>>>> from config.xml.
> > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > >>>>>> What do people think? Does anyone have a 
> > > > > > > > > > > > >>>>>> good
> > > > solution
> > > > > > to
> > > > > > > > this
> > > > > > > > > > > > >problem?
> > > > > > > > > > > > >>>>>> Are we really abstracting anything out by
> > > > duplicating
> > > > > > the
> > > > > > > > same
> > > > > > > > > > > > >>>>>> config in our own config.xml?
> > > > > > > > > > > > >>>>
> > > > > > > > > > > > >>>>
> > > > > > > > > > >
> > > > > > >
> > > ------------------------------------------------------------------
> > > ---
> > > > > > > > > > > > >>>> To unsubscribe, e-mail:
> > > > > > dev-unsubscr...@cordova.apache.org
> > > > > > > > > > > > >>>> For additional commands, e-mail:
> > > > > > > dev-h...@cordova.apache.org
> > > > > > > > > > > > >>
> > > > > > > > > > > > >>
> > > > > > > > > >
> > > > > >
> > --------------------------------------------------------------------
> > -
> > > > > > > > > > > > >> To unsubscribe, e-mail:
> > > > > dev-unsubscr...@cordova.apache.org
> > > > > > > > > > > > >> For additional commands, e-mail:
> > > > > > dev-h...@cordova.apache.org
> > > > > > > > > > > > >>
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Alexis Kofman
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org

Reply via email to