On Tue, Mar 17, 2015 at 10:10 AM, Carlos Santana <csantan...@gmail.com>
wrote:

> @Michal
> I would get together with Marcel and Martin, they are our Android goto SME
>
> @Joe
> Do we have all the test cases  created now are some missing?
> How do you run this specific test cases on Android Studio? Google team any
> help on gradle to run this test cases on CI I think is very important to
> have a healhty CI running test cases on every pull request or commit
>
I've already ported the unit test over to gradle and they are easy to run
in Android Studio. There are some instructions in the test/README.md

To be clear, the embedding ability was *improved* in 3.7.0, in that you can
now control all configurations directly from Java.



>
> Hum I don't know how I feel about the Plugins not working, I think this is
> the key on using Cordova.
> If I'm just going to have a Web View with no Cordova then I would use In
> App Browser.
>
> The whole purpose of Including a "Cordova" Web View in to a full Native
> Android App, It's the "Cordova" functionality which resides mostly in the
> Plugins!
> Maybe I misunderstood your statements about plugins not working.
>
>
>
> On Mon, Mar 16, 2015 at 9:31 PM, Joe Bowser <bows...@gmail.com> wrote:
>
> > Well, this feature was tested using TDD, and when the tests were
> re-written
> > I assumed that they would be run.  In this case, I'll blame Android
> Studio,
> > since we're still battling with the learning curve on that one.  (I have
> no
> > clue how to run the new tests from Gradle on the command line, only in
> > Android Studio).
> >
> > The thing is that another refactor removing layouts broke the tests,
> which
> > is how I know that they weren't run.  So, I landed a couple of commits to
> > refactor the unit tests so that they test this use case with the new API
> > and the tests now pass.  This works again, and we can update the
> > documentation,
> >
> > There's still the matter of getting the plugins to work, but I'm fine
> with
> > leaving that to be an exercise for the downstreams that support this, and
> > not Cordova itself.
> >
> >
> >
> > On Mon, Mar 16, 2015 at 6:27 PM Michal Mocny <mmo...@chromium.org>
> wrote:
> >
> > > Carlos, thats great, then perhaps you could give 4.0 embedded webview a
> > > shot to confirm that it is still adequately supported for your
> customers?
> > >
> > > I think this thread has been too much talk and not enough trying it out
> > in
> > > practice.  Everyone agrees the use case is important, what's left is to
> > > confirm we got it right.
> > >
> > > -Michal
> > >
> > > On Mon, Mar 16, 2015 at 8:58 PM, Carlos Santana <csantan...@gmail.com>
> > > wrote:
> > >
> > > > I just want to add that Joe is not alone on thinking that are
> > developers
> > > > with this use case.
> > > > For us we have customers that start with Native Android alone, and
> then
> > > > later want to add a Cordova Web View to a portion of their App.
> > > > And they want an easy way to add a Cordova Web View.
> > > > For 4.x, I would assume that the developer can choose to make this
> > > embedded
> > > > Cordova Web View CrossWalk based.
> > > >
> > > >
> > > > On Wed, Mar 11, 2015 at 10:24 AM, Joe Bowser <bows...@gmail.com>
> > wrote:
> > > >
> > > > > That's why we have tests! I just changed the activity and saw that
> we
> > > > have
> > > > > one failure.  I'm not sure why this test in particular is failing,
> > > since
> > > > > there's too many assertions in one method, so I'll have to try and
> > > debug
> > > > it
> > > > > today.
> > > > >
> > > > > The thing is that if we're deprecating something and replacing it
> > with
> > > > > something else, we should write tests for it.  Releasing a 4.0.x
> and
> > > > > changing how we embed a WebView by changing class names but not
> > fixing
> > > up
> > > > > the deprecation is bizzare.
> > > > >
> > > > > On Wed, Mar 11, 2015 at 7:15 AM Andrew Grieve <
> agri...@chromium.org>
> > > > > wrote:
> > > > >
> > > > > > I wanted to make sure that I didn't break the old way of doing
> > > things.
> > > > > >
> > > > > > On Tue, Mar 10, 2015 at 2:24 PM, Joe Bowser <bows...@gmail.com>
> > > wrote:
> > > > > >
> > > > > > > The main issue is that this isn't documented anywhere, and this
> > is
> > > > > > > necessary for people to use a Third Party WebView.  Also, why
> > > didn't
> > > > > you
> > > > > > > bother updating the test with the new API?
> > > > > > >
> > > > > > > On Mon, Mar 9, 2015 at 5:19 PM Andrew Grieve <
> > agri...@chromium.org
> > > >
> > > > > > wrote:
> > > > > > >
> > > > > > > > Here's an example:
> > > > > > > >
> > > > > > > > ConfigXmlParser parser = new ConfigXmlParser();
> > > > > > > > parser.parse(activity);
> > > > > > > > webView.init(cordova, parser.getPluginEntries(),
> > > > > > > parser.getPreferences());
> > > > > > > >
> > > > > > > > Feel free to iterate if you think the API is too obtuse, but
> I
> > > > think
> > > > > > it's
> > > > > > > > good to allow a file-less mode, and to allow different
> WebViews
> > > to
> > > > > have
> > > > > > > > different settings.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Mon, Mar 9, 2015 at 8:08 PM, Joe Bowser <
> bows...@gmail.com>
> > > > > wrote:
> > > > > > > >
> > > > > > > > > Do you have an example of how this would work? This seems
> to
> > > be a
> > > > > lot
> > > > > > > > more
> > > > > > > > > complex than it needs to be.
> > > > > > > > >
> > > > > > > > > On Mon, Mar 9, 2015 at 5:05 PM Andrew Grieve <
> > > > agri...@chromium.org
> > > > > >
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > It's so that you can have multiple CordovaWebViews that
> use
> > > > > > different
> > > > > > > > > > configs within one application. It's also so that you
> don't
> > > > have
> > > > > to
> > > > > > > > have
> > > > > > > > > a
> > > > > > > > > > config.xml if you prefer to build up your config in code
> > > > instead.
> > > > > > > > > >
> > > > > > > > > > I don't think loadConfig() is deprecated. It has
> > > > > > > > > > a @SuppressWarnings("deprecation"), which just silences a
> > > > warning
> > > > > > > > about
> > > > > > > > > it
> > > > > > > > > > setting the config of the Config class (which is done for
> > > > > backwards
> > > > > > > > > > compatibility).
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > On Mon, Mar 9, 2015 at 3:54 PM, Joe Bowser <
> > > bows...@gmail.com>
> > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > OK, this actually makes using the WebView as a
> component
> > a
> > > > lot
> > > > > > > > harder,
> > > > > > > > > > > since you now have to have this loadConfig method which
> > you
> > > > > also
> > > > > > > > marked
> > > > > > > > > > for
> > > > > > > > > > > deprecation required to get all of the necessary
> > attributes
> > > > out
> > > > > > of
> > > > > > > > > this.
> > > > > > > > > > > I'm pretty sure this is a major step backwards in that
> > > people
> > > > > > > looking
> > > > > > > > > to
> > > > > > > > > > > use Cordova as a component now have to jump through
> > > > additional
> > > > > > > hoops
> > > > > > > > to
> > > > > > > > > > get
> > > > > > > > > > > this to work.  What is the benefit of deprecating the
> > > Config
> > > > > > static
> > > > > > > > > class
> > > > > > > > > > > and replacing it with the ConfigXmlParser again? I
> don't
> > > > > remember
> > > > > > > why
> > > > > > > > > > this
> > > > > > > > > > > was done.
> > > > > > > > > > >
> > > > > > > > > > > On Mon, Mar 9, 2015 at 9:04 AM Andrew Grieve <
> > > > > > agri...@chromium.org
> > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > On Mon, Mar 9, 2015 at 11:56 AM, Joe Bowser <
> > > > > bows...@gmail.com
> > > > > > >
> > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > On Mon, Mar 9, 2015 at 7:39 AM Andrew Grieve <
> > > > > > > > agri...@chromium.org
> > > > > > > > > >
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > You can now instantiate a CordovaWebView without
> a
> > > > > > > config.xml,
> > > > > > > > > and
> > > > > > > > > > > > > without
> > > > > > > > > > > > > > using Config. This happened when I added an
> > "init()"
> > > > > method
> > > > > > > to
> > > > > > > > > > > > > > CordovaWebView. You can pass in a
> > CordovaPreferences
> > > > > > object,
> > > > > > > > and
> > > > > > > > > a
> > > > > > > > > > > list
> > > > > > > > > > > > > of
> > > > > > > > > > > > > > PluginEntry. Maybe we just need a better comment
> on
> > > > > Config
> > > > > > > > saying
> > > > > > > > > > to
> > > > > > > > > > > > use
> > > > > > > > > > > > > > these instead?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > Where does one get this PluginEntry list when
> they're
> > > > > > > embedding a
> > > > > > > > > > > > WebView?
> > > > > > > > > > > > > This needs to be documented or at least put in the
> > test
> > > > > that
> > > > > > > > tests
> > > > > > > > > > this
> > > > > > > > > > > > use
> > > > > > > > > > > > > case.
> > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > > > That has nothing to do with InAppBrowser, this
> is
> > > to
> > > > do
> > > > > > > with
> > > > > > > > > > > > embedding
> > > > > > > > > > > > > a
> > > > > > > > > > > > > > > WebView inside an Android application. I don't
> > > think
> > > > > you
> > > > > > > > > > understand
> > > > > > > > > > > > > what
> > > > > > > > > > > > > > I
> > > > > > > > > > > > > > > mean when I say the embedded use case.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > Maybe try explaining a bit more?
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Even though you edited the test that explicitly
> > covers
> > > > this
> > > > > > > use,
> > > > > > > > > > case,
> > > > > > > > > > > > and
> > > > > > > > > > > > > even though we've talked about using CordovaWebView
> > as
> > > an
> > > > > > > Android
> > > > > > > > > > View
> > > > > > > > > > > > for
> > > > > > > > > > > > > over a year, you need it explained more?
> > > > > > > > > > > > >
> > > > > > > > > > > > > So, not everyone wants to use all of Cordova, for
> > many
> > > > > > reasons.
> > > > > > > > > > > Instead,
> > > > > > > > > > > > > they really just want to take advantage of the
> > WebView
> > > > > > > component
> > > > > > > > in
> > > > > > > > > > > their
> > > > > > > > > > > > > native apps so that they can create hybrid apps
> that
> > > are
> > > > > > mostly
> > > > > > > > > > native
> > > > > > > > > > > > with
> > > > > > > > > > > > > only some parts that use Cordova.  This is where
> you
> > > > would
> > > > > > > > declare
> > > > > > > > > > your
> > > > > > > > > > > > > view in your layout XML like this:
> > > > > > > > > > > > >
> > > > > > > > > > > > > <org.apache.cordova.engine.SystemWebView
> > > > > > > > > > > > >             android:id="@+id/WebViewComponent"
> > > > > > > > > > > > >             android:layout_width="match_parent"
> > > > > > > > > > > > >             android:layout_height="match_parent">
> > > > > > > > > > > > > </org.apache.cordova.engine.SystemWebView>
> > > > > > > > > > > > >
> > > > > > > > > > > > > And then, in the activity start up your view like
> > this:
> > > > > > > > > > > > >
> > > > > > > > > > > > >   private CordovaWebView webInterface;
> > > > > > > > > > > > >   private CordovaInterfaceImpl systemInterface =
> new
> > > > > > > > > > > > > CordovaInterfaceImpl(this);
> > > > > > > > > > > > >
> > > > > > > > > > > > > //Set up the webview
> > > > > > > > > > > > >         SystemWebView webView = (SystemWebView)
> > > > > > > > > > > > > findViewById(R.id.WebViewComponent);
> > > > > > > > > > > > >         webInterface = new CordovaWebViewImpl(this,
> > new
> > > > > > > > > > > > > SystemWebViewEngine(webView));
> > > > > > > > > > > > >
> > > > > > > > > > > > >         Config.init();
> > > > > > > > > > > > >         webInterface.init(systemInterface,
> > > > > > > > > > Config.getPluginEntries(),
> > > > > > > > > > > > > Config.getPreferences());
> > > > > > > > > > > > >         webView.loadUrl(Config.getStartUrl());
> > > > > > > > > > > > >
> > > > > > > > > > > > > Right now, we're getting the configuration from the
> > > > Config
> > > > > > > class,
> > > > > > > > > > > because
> > > > > > > > > > > > > we at least have access to this.  If we don't have
> > > this,
> > > > > how
> > > > > > do
> > > > > > > > > > people
> > > > > > > > > > > > get
> > > > > > > > > > > > > access to the list of plugin entries specified in
> > > > > Config.xml?
> > > > > > > > I'm
> > > > > > > > > > > pretty
> > > > > > > > > > > > > sure we still want to support this feature.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Does that make sense?
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > I gotcha. So, I think the answer is to use
> > > > ConfigXmlParser()
> > > > > to
> > > > > > > > > extract
> > > > > > > > > > > the
> > > > > > > > > > > > information required by init. You shouldn't need the
> > call
> > > > > > > > > Config.init()
> > > > > > > > > > > at
> > > > > > > > > > > > all.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Carlos Santana
> > > > <csantan...@gmail.com>
> > > >
> > >
> >
>
>
>
> --
> Carlos Santana
> <csantan...@gmail.com>
>

Reply via email to