<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<br>
<div class="moz-cite-prefix">Le 22/03/2016 15:27, Devendra Vyas a
écrit :<br>
</div>
<blockquote
cite="mid:CAKCFKBr8tNbH_Pc3==+xAKEVXX93ugovVZkJ6WdU2yFzUZSdpA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif">Hi <br>
</div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif">Thanks for the prompt response!<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Mar 22, 2016 at 6:27 PM,
Johnny Jazeix <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:jazeix@gmail.com" target="_blank">jazeix@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi,<br>
<div class="gmail_extra"><br>
<div class="gmail_quote"><span class="">2016-03-22
13:10 GMT+01:00 Devendra Vyas <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:devendra.y12@lnmiit.ac.in"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:devendra.y12@lnmiit.ac.in">devendra.y12@lnmiit.ac.in</a></a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:trebuchet
ms,sans-serif">Hi<br>
<br>
</div>
<div style="font-family:trebuchet
ms,sans-serif">This mail comprises of what
I've understood after the discussions on
mailing lists and IRC regarding modifying
the core of Gcompris.<br>
<br>
</div>
<div style="font-family:trebuchet
ms,sans-serif">Purpose: To provide users an
option to download activities as per their
wish/need. Keeping the full download option
intact.<br>
<br>
</div>
<div style="font-family:trebuchet
ms,sans-serif">Phases of development:<br>
</div>
<div style="font-family:trebuchet
ms,sans-serif">P-1 -> Separate
ActivityInfo.qml and icons from some
activities and make new ActivityInfo.rcc.
See whether we are successfully able to load
them. The activities selected here will not
have have any inter-dependencies on some
other activity.<br>
<br>
</div>
<div style="font-family:trebuchet
ms,sans-serif">P-2 -> Now for the
activities that are inter-dependent, I think
we'll have to code a new download manger in
a way that it downloads all dependencies
required for running that activity and
nothing extra. As mentioned earlier by
Johnny, erase_2clic needs erase. So download
manager's code will manage accordingly.<br>
<br>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>I'm not sure we need to update the
DownloadManager in this case, we can just first
download the dependencies and then the wanted
package. I think there is a system with a job list
that should work here?<br>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif;display:inline"><br>
If it's available already then, we could incorporate
it.</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><span class="">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:trebuchet
ms,sans-serif">P-3 -> Now providing
option of selective activity download to
end-user in a way that it is easy to
understand. I suggest that we have two
buttons at the very beginning of the app,
that prompts user with two options/buttons:
a) Full Download b) Selective download<br>
<br>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>There are two things to consider: the first run
where your solution works (should it depend on the
platform? I mean for Desktop packages, do we
propose all the activities directly? We also need
to take care of not propose it if the user is not
connected to internet, it should work offline).<br>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif;display:inline"><br>
First phase could be do it for android users only, as
desktop users don't usually face space problems.
However, once tested for android, we could discuss about
it's implementation for desktop users as well. Does the
approach feel right?<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
Well, the code is platform agnostic. It is just our decision to
provide a given version with a download mode for a given platform.<br>
<blockquote
cite="mid:CAKCFKBr8tNbH_Pc3==+xAKEVXX93ugovVZkJ6WdU2yFzUZSdpA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif;display:inline">We could provide the
option of download, but if the user is offline, it would
check and notify the user through a Dialog/Alert Box
that the device is not connected to the internet. </div>
</div>
</div>
</div>
</div>
</blockquote>
Sure.<br>
<blockquote
cite="mid:CAKCFKBr8tNbH_Pc3==+xAKEVXX93ugovVZkJ6WdU2yFzUZSdpA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>Then, there should be the possibility to
install/update/uninstall any activity when you
want using the configuration panel.</div>
</div>
</div>
</div>
</blockquote>
<div> Sure, I've mentioned that in P-5 as an optional
component, but now I think it could be added to the main
To-Do list :)<br>
</div>
</div>
</div>
</div>
</blockquote>
I would like to avoid a such configuration panel. This feature
belongs to the admin mode. Let's not give the option to uninstall
specific activities.<br>
<blockquote
cite="mid:CAKCFKBr8tNbH_Pc3==+xAKEVXX93ugovVZkJ6WdU2yFzUZSdpA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>For the selective download, do you have an idea
of what it should look like, which information
should be displayed? The icon, name, difficulty,
tags, version? Can we reuse the existing menu to
display these activities (and instead of flagging
favorite, we can flag "already downloaded/can be
upgraded") or maybe use a list?<br>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif;display:inline"><br>
One way that I could think of is, the icons of the
activities that are downloaded will be in color and
those not on device will be in grayscale. By doing this,
we could use the existing menu. Also, if we do this, the
already downloaded flag won't be needed. Now there could
be multiple ways to display "can be upgraded" flag or
info, one of them could be to have a separate
configuration screen where every downloaded activity is
listed and there the user could be notified of upgrades
via some some button. The button would be active only
when there is an upgrade possible.</div>
</div>
</div>
</div>
</div>
</blockquote>
Ok<br>
<blockquote
cite="mid:CAKCFKBr8tNbH_Pc3==+xAKEVXX93ugovVZkJ6WdU2yFzUZSdpA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><span class="">
<div> </div>
<blockquote class="gmail_quote" style="margin:0px
0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:trebuchet
ms,sans-serif">P-4 -> Versioning of APIs.
I'm a little unsure here. We have two issues
to handle here: a) Avoid download of
duplicate activity on the user end b) check
and update correct version of activity to
core. I think one of the ways could be,
while we are creating a separate
activityInfo.rcc for every activity, the
download manger could check the
corresponding ActivityInfo.qml file in
activityInfo.rcc for version and then
perform the necessary action.<br>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>To avoid duplicate, you should already know if
you have the activity or not, and its version. I
think we can only have one
downloadable_activities.rcc on server containing:<br>
</div>
<div>|- activity1/{icon/ActivityInfo.qml}<br>
|- activity2/{icon/ActivityInfo.qml}<br>
</div>
<div>|- activity3/{icon/ActivityInfo.qml} ...<br>
<br>
</div>
<div>This file would be downloaded, if automatic
download is activated, when the user starts the
application if the version is more recent else
with a button in the config, like for the voices.
Then, we can see for each activity if we have a
more recent one or not.<br>
<br>
</div>
<div>For knowing the minimum/maximum core version,
we can probably add it in the ActivityInfo.qml. We
have a createdInVersion field, maybe we can
improve it.<br>
</div>
</div>
</div>
</div>
</blockquote>
<div>
<div class="gmail_default" style="font-family:trebuchet
ms,sans-serif;display:inline">I'm a little unsure here.
May be we could discuss this further as Sagar
suggested.</div>
</div>
</div>
</div>
</div>
</blockquote>
Yes, we can just decide not to manage versioning more than refusing
to install a new activity on a previous core. This is a safe bet and
a good start.<br>
<br>
Bruno.<br>
</body>
</html>