Simon I like approach
Can we move to this approach now? Yes
Then once the downstream distro's support
API 23 and the new API methods in CordovaInterface we can move this into
Cordova Android proper? Yes

+1

On Thu, Mar 31, 2016 at 6:38 PM Joe Bowser <[email protected]> wrote:

> LGTM!
>
> On Thu, Mar 31, 2016 at 3:02 PM, Simon MacDonald <
> [email protected]>
> wrote:
>
> > I really hate the fact we need to add that PermissionHelper.java file to
> > each and every plugin that requires API 23 permission support. Especially
> > since the package the class is in is different for each plugin so we can
> > two, three or more copies of the same code in an app. That's just
> wasteful.
> >
> > Joe responded to my bitching by saying "Maybe we should create a
> > permissions plugin for this and make everything go through that" which
> set
> > my mind a racing (perhaps I was just over caffeinated) and I decided to
> > prototype it this afternoon.
> >
> > I've created a new plugin called cordova-plugin-compat over at
> > https://github.com/macdonst/cordova-plugin-compat  and all it does is
> > deliver the org.apache.cordova.PermissionHelper class. I then turned
> around
> > and removed the class from the camera plugin and make
> cordova-plugin-camera
> > depend on cordova-plugin-compat.
> >
> > You can see that change over on my camera fork:
> >
> > https://github.com/macdonst
> > /cordova-plugin-camera/commit/58b72cb5c3109481df9f337ad97607858681b37e
> >
> > Can we move to this approach now? Then once the downstream distro's
> support
> > API 23 and the new API methods in CordovaInterface we can move this into
> > Cordova Android proper?
> >
> > Thoughts? Are there use cases this approach doesn't work for?
> >
> >
> > Simon Mac Donald
> > http://hi.im/simonmacdonald
> >
> > On Fri, Feb 5, 2016 at 2:32 PM, Richard Knoll <[email protected]>
> > wrote:
> >
> > > Yep, I left it out of the first round by mistake; I was looking at an
> out
> > > of date version of cordova-plugin-media at the time. I've got a PR open
> > > that adds the helper here:
> > >
> > > https://github.com/apache/cordova-plugin-media/pull/79
> > >
> > > Thanks,
> > > Richard
> > >
> > > -----Original Message-----
> > > From: julio cesar sanchez [mailto:[email protected]]
> > > Sent: Friday, February 5, 2016 7:20 AM
> > > To: [email protected]
> > > Subject: Re: [DISCUSS] Core Plugins and Android API 23
> > >
> > > Yeah, that one.
> > >
> > >
> > > El viernes, 5 de febrero de 2016, Homer, Tony <[email protected]>
> > > escribió:
> > >
> > > > It took me a while to find it, but I guess you mean CB-10455?
> > > >
> > > >
> > > >
> > > > On 2/5/16, 7:56 AM, "julio cesar sanchez" <[email protected]
> > > > <javascript:;>> wrote:
> > > >
> > > > >I think we just forgot, somebody mentioned this on slack and there
> is
> > > > >an issue open on JIRA.
> > > > >
> > > > >2016-02-05 13:52 GMT+01:00 Homer, Tony <[email protected]
> > > > <javascript:;>>:
> > > > >
> > > > >> Earlier in this thread, Richard stated:
> > > > >> >> This change has been merged into the file, camera, geolocation,
> > > > >> >> and
> > > > >> contacts plugins (media did not actually require any change).
> > > > >>
> > > > >>
> > > > >> Media was updated on 1/15 but it still has a "cordova-android
> > > > >=5.0.0-dev"
> > > > >> engine tag.
> > > > >> I couldn't find any other discussion about this on the list and
> > > > >> wondered why it was retained for media.
> > > > >> Was this an oversight?
> > > > >>
> > > > >>
> > > > >> Thanks!
> > > > >> Tony
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >> On 1/15/16, 4:40 PM, "Simon MacDonald" <[email protected]
> > > > <javascript:;>> wrote:
> > > > >>
> > > > >> >LGTM
> > > > >> >
> > > > >> >+1
> > > > >> >
> > > > >> >Simon Mac Donald
> > > > >> >
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fhi
> > > > >>
> >.im%2fsimonmacdonald&data=01%7c01%7cRIKNOLL%40exchange.microsoft.c
> > > > >>
> >om%7cacc2d663ce574637d10908d32e3fd62d%7c72f988bf86f141af91ab2d7cd0
> > > > >> >11db47%7c1&sdata=wCGbmJR3ZKj6lABfwOcjoLypjztI9HNX8%2bak6AhuBqY%3d
> > > > >> >
> > > > >> >On Fri, Jan 15, 2016 at 4:32 PM, Joe Bowser <[email protected]
> > > > <javascript:;>> wrote:
> > > > >> >
> > > > >> >> Sorry, wrong PR:
> > > > >> >> https://github.com/apache/cordova-plugin-inappbrowser/pull/136
> > > > >> >>
> > > > >> >> On Fri, Jan 15, 2016 at 11:42 AM, Joe Bowser <
> [email protected]
> > > > <javascript:;>> wrote:
> > > > >> >>
> > > > >> >> > So, what does the timeline look like for a Plugins release.
> I
> > > > >> >> > just
> > > > >> did a
> > > > >> >> > major change in the InAppBrowser to fix tel: and sms: URIs so
> > > > >> >> > they
> > > > do
> > > > >> >> > stuff, and it'd be cool if this also made if this got looked
> > > > >> >> > over
> > > > and
> > > > >> >> > landed before the next release.
> > > > >> >> >
> > > > >> >> >
> https://github.com/apache/cordova-plugin-inappbrowser/pull/135
> > > > >> >> >
> > > > >> >> > On Thu, Jan 14, 2016 at 2:02 PM, Carlos Santana <
> > > > [email protected] <javascript:;>
> > > > >> >
> > > > >> >> > wrote:
> > > > >> >> >
> > > > >> >> >> I agree with final compromise, I also had a discussion with
> > > > >> >> >> Nikhil
> > > > >> >> during
> > > > >> >> >> holiday break offline and understood the situation, some 3rd
> > > > >> >> >> party
> > > > >> >> plugins
> > > > >> >> >> are not open source and customers/devs don't move as fast as
> > > > >> >> >> we
> > > > wish,
> > > > >> >> but
> > > > >> >> >> having a CLI 6 with latest plugins being backwards
> compatible
> > > > >> >> >> with
> > > > >> lower
> > > > >> >> >> Android API is good base for developers to start upgrading.
> > > > >> >> >>
> > > > >> >> >>
> > > > >> >> >> On Thu, Jan 14, 2016 at 1:23 PM Steven Gill <
> > > > [email protected] <javascript:;>>
> > > > >> >> >> wrote:
> > > > >> >> >>
> > > > >> >> >> > Awesome! I'll kick up a discuss thread
> > > > >> >> >> >
> > > > >> >> >> > On Wed, Jan 13, 2016 at 5:42 PM, Richard Knoll <
> > > > >> [email protected] <javascript:;>
> > > > >> >> >
> > > > >> >> >> > wrote:
> > > > >> >> >> >
> > > > >> >> >> > > Hey all,
> > > > >> >> >> > >
> > > > >> >> >> > > This change has been merged into the file, camera,
> > > > geolocation,
> > > > >> and
> > > > >> >> >> > > contacts plugins (media did not actually require any
> > > change).
> > > > I
> > > > >> was
> > > > >> >> >> able
> > > > >> >> >> > to
> > > > >> >> >> > > build and run mobilespec on cordova-android 4.0.0 and
> > > > >> >> >> cordova-android's
> > > > >> >> >> > > master. We should probably push for a plugins release
> > > > >> >> >> > > soon,
> > > > since
> > > > >> >> >> there
> > > > >> >> >> > are
> > > > >> >> >> > > also some major bug fixes to the contacts and camera
> > > > >> >> >> > > plugins
> > > > that
> > > > >> >> were
> > > > >> >> >> > > recently pushed.
> > > > >> >> >> > >
> > > > >> >> >> > > Thanks,
> > > > >> >> >> > > Richard
> > > > >> >> >> > >
> > > > >> >> >> > > -----Original Message-----
> > > > >> >> >> > > From: Nikhil Khandelwal [mailto:[email protected]
> > > > <javascript:;>]
> > > > >> >> >> > > Sent: Friday, January 8, 2016 12:12 PM
> > > > >> >> >> > > To: [email protected] <javascript:;>
> > > > >> >> >> > > Subject: RE: [DISCUSS] Core Plugins and Android API 23
> > > > >> >> >> > >
> > > > >> >> >> > > We had a good discussion about this offline with Joe,
> > > > >> >> >> > > Simon,
> > > > >> Steve,
> > > > >> >> >> > Jesse,
> > > > >> >> >> > > Parashu and Jason. We came to the following agreement:
> > > > >> >> >> > > This is a temporary fix to the plugins which we need to
> > > > >> >> >> > > take
> > > > to
> > > > >> >> ensure
> > > > >> >> >> > > Cordova 5.x tools behavior of using the edge plugins
> does
> > > > >> >> >> > > not
> > > > >> break
> > > > >> >> >> for
> > > > >> >> >> > our
> > > > >> >> >> > > users. We will pursue the change for all the affected
> > > plugins.
> > > > >> This
> > > > >> >> >> will
> > > > >> >> >> > go
> > > > >> >> >> > > out in the next PLUGINS release which will happen before
> > > > >> >> >> > > the
> > > > >> Cordova
> > > > >> >> >> 6.0
> > > > >> >> >> > > release. Since this a temporary fix, we aim to remove it
> > > > >> >> >> > > in 6
> > > > >> months
> > > > >> >> >> > > (giving reasonable time for our user base to move to
> > > > >> >> >> > > Cordova
> > > > 6.x+
> > > > >> >> >> which
> > > > >> >> >> > > will have a better plugin version pinning mechanism).
> > > > >> >> >> > >
> > > > >> >> >> > > Thanks,
> > > > >> >> >> > > Nikhil
> > > > >> >> >> > >
> > > > >> >> >> > > -----Original Message-----
> > > > >> >> >> > > From: Simon MacDonald [mailto:[email protected]
> > > > <javascript:;>]
> > > > >> >> >> > > Sent: Thursday, January 7, 2016 4:00 PM
> > > > >> >> >> > > To: [email protected] <javascript:;>
> > > > >> >> >> > > Subject: Re: [DISCUSS] Core Plugins and Android API 23
> > > > >> >> >> > >
> > > > >> >> >> > > I'm going to play devils advocate a bit here:
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> > > > There are valid reasons why many app developers might
> > > > >> >> >> > > > not be
> > > > >> ready
> > > > >> >> >> to
> > > > >> >> >> > > > move to API level 23:
> > > > >> >> >> > > >   1) They have an app which is stabilizing or in
> > > > >> >> >> > > > maintenance
> > > > >> mode
> > > > >> >> >> and
> > > > >> >> >> > > > they don't want to risk destabilization by moving to a
> > > > >> >> >> > > > new
> > > > >> major
> > > > >> >> >> > > > Cordova version, Cordova Android platform, and Android
> > > > >> >> >> > > > API
> > > > >> level.
> > > > >> >> >> > > >
> > > > >> >> >> > >
> > > > >> >> >> > > If the developer is not ready to move to a new version
> of
> > > > Cordova
> > > > >> >> >> Android
> > > > >> >> >> > > or the Android API would it not also follow that they
> > > > shouldn't
> > > > >> be
> > > > >> >> >> > changing
> > > > >> >> >> > > their plugin versions?
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> > > >   2) They are using a 3rd-party plugin which has not
> > > > >> >> >> > > > yet
> > > > been
> > > > >> >> >> updated
> > > > >> >> >> > > > to request Android permissions as required by API
> level
> > > 23.
> > > > >> There
> > > > >> >> >> are
> > > > >> >> >> > > > probably a lot of plugins affected, since access to
> any
> > > > >> >> >> > > > of
> > > > the
> > > > >> >> >> > > > following things on Android M requires runtime
> > > > >> >> >> > > > permission
> > > > >> >> requests:
> > > > >> >> >> > > > calendar, contacts, phone, camera, microphone,
> > > > >> >> >> > > > location,
> > > > >> beacons,
> > > > >> >> >> > > sensors, SMS, storage.
> > > > >> >> >> > > >
> > > > >> >> >> > >
> > > > >> >> >> > > Right, so if the 3rd party plugin they are using doesn't
> > > > support
> > > > >> >> >> Android
> > > > >> >> >> > M
> > > > >> >> >> > > they should either a) not upgrade or b) send a PR to the
> > > > plugin
> > > > >> >> >> > maintainer
> > > > >> >> >> > > so everyone can benefit.
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> > > >   3) They might not have the capacity or ability to
> > > > >> >> >> > > > test
> > > > their
> > > > >> app
> > > > >> >> >> on
> > > > >> >> >> > > > devices running Android M. Because API 23 enables the
> > > > >> >> >> > > > new
> > > > >> >> >> permissions
> > > > >> >> >> > > > model only on Android M, it requires testing on that
> > > > platform.
> > > > >> >> >> > > >
> > > > >> >> >> > > >
> > > > >> >> >> > > Everyone has access to the Android emulator.
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> > > > In any of the above cases, developers might still like
> > > > >> >> >> > > > to
> > > > >> benefit
> > > > >> >> >> from
> > > > >> >> >> > > > some of the major bug fixes in those 5 popular core
> > > > >> >> >> > > > plugins
> > > > >> >> >> mentioned
> > > > >> >> >> > > > below. Or even if they weren't specifically looking
> for
> > > > >> >> >> > > > bug
> > > > >> fixes,
> > > > >> >> >> it
> > > > >> >> >> > > > would be a much better experience if adding or
> updating
> > > > >> >> >> > > > one
> > > > of
> > > > >> >> those
> > > > >> >> >> > > > plugins would just work, rather than failing on
> > > > >> >> >> > > > Android. The explanation for the failure will not be
> > > > >> >> >> > > > obvious to many
> > > > users,
> > > > >> if
> > > > >> >> >> they
> > > > >> >> >> > > > overlooked the warning when installing the plugin or
> if
> > > > >> >> >> > > > they
> > > > >> were
> > > > >> >> >> > > > using another tool to add the plugin where the warning
> > > > wasn't
> > > > >> >> >> surfaced.
> > > > >> >> >> > > >
> > > > >> >> >> > >
> > > > >> >> >> > >  Seems like you are describing a tooling problem here.
> If
> > > > >> >> >> > > the
> > > > >> tool
> > > > >> >> >> > doesn't
> > > > >> >> >> > > surface the warning or allows the user to add a plugin
> > > > >> >> >> > > that is
> > > > >> >> >> > incompatible
> > > > >> >> >> > > with the version of Cordova Android that is being used
> > > > >> >> >> > > really
> > > > >> sounds
> > > > >> >> >> > like a
> > > > >> >> >> > > bug in the tooling to me.
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> > > > Of course developers should be encouraged to upgrade
> to
> > > > >> >> >> > > > the
> > > > >> latest
> > > > >> >> >> > > > most secure highest-quality version of Cordova. But
> the
> > > > >> >> >> encouragement
> > > > >> >> >> > > > does not need to be so forceful. This proposed change
> > > > >> >> >> > > > gives
> > > > >> >> >> developers
> > > > >> >> >> > > > more time to upgrade, and allows for more choice about
> > > > >> >> >> > > > when
> > > > to
> > > > >> >> >> upgrade
> > > > >> >> >> > > > individual parts
> > > > >> >> >> > > > (plugins) rather than limiting them to all-or-nothing.
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> > >  I would argue that the developer has an infinite amount
> > > > >> >> >> > > of
> > > > time
> > > > >> to
> > > > >> >> >> > > upgrade. Nothing is forcing you to upgrade to the latest
> > > > Cordova
> > > > >> >> >> Android
> > > > >> >> >> > or
> > > > >> >> >> > > Android API. They can continue to use the same version
> of
> > > > Cordova
> > > > >> >> >> Android
> > > > >> >> >> > > and plugins that are currently working in their app. If
> > > > >> >> >> > > the
> > > > >> >> developer
> > > > >> >> >> is
> > > > >> >> >> > > using semver properly and we do our job right they
> > > > >> >> >> > > shouldn't
> > > > >> pick up
> > > > >> >> >> > > breaking changes. For instance, if the API of a plugin
> > > > changes we
> > > > >> >> bump
> > > > >> >> >> > the
> > > > >> >> >> > > major version of the plugin so users who setup their
> > > > config.xml
> > > > >> to
> > > > >> >> >> use:
> > > > >> >> >> > >
> > > > >> >> >> > > <plugin name="cordova-plugin-camera" spec="^1.1.0" />
> > > > >> >> >> > >
> > > > >> >> >> > > will effectively prevent the user from picking up the
> > > > >> >> >> > > breaking
> > > > >> >> change
> > > > >> >> >> in
> > > > >> >> >> > > camera version 2.0.0.
> > > > >> >> >> > >
> > > > >> >> >> > > Simon Mac Donald
> > > > >> >> >> > >
> > > > >> >> >> > >
> > > > >> >> >> >
> > > > >> >> >>
> > > > >> >>
> > > > >>
> > > >
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fhi.im%
> > > > 2fsimonmacdonald&data=01%7c01%7cnikhilkh%40microsoft.com
> %7c84fb6405edf
> > > >
> 74f47453208d317beb5e5%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=B8D
> > > > uMuPF8aUU6xvIlpYTi3LJPs1HbENcHXS8JrHqEu0%3d
> > > > >> >> >> > >  B
> > > > >> >> >>
> > > > >>
> KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
> > > > >> KCB
> > > > >> >> >> > >   [  X  ܚX K  K[XZ[
> > > > >> >> >> > >    ] ][  X  ܚX P  ܙ ݘK \ X  K ܙ B  ܈ Y  ] [ۘ[    [X[
> > >  K[XZ[
> > > > >> >> >> > >    ] Z [    ܙ ݘK \ X  K ܙ B
> > > > >> >> >> > >
> > > > >> >> >> >
> > > > >> >> >>
> > > > >> >> >
> > > > >> >> >
> > > > >> >>
> > > > >>
> > > > >>
> -------------------------------------------------------------------
> > > > >> -- To unsubscribe, e-mail: [email protected]
> > > > <javascript:;>
> > > > >> For additional commands, e-mail: [email protected]
> > > > <javascript:;>
> > > > >>
> > > >
> > >
> >
>

Reply via email to