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:;> > > > >> > > > > > >
