<div dir="ltr">Hi,<br><div class="gmail_extra"><br><div class="gmail_quote">2016-03-22 23:14 GMT+01:00 Bruno Coudoin <span dir="ltr"><<a href="mailto:bruno.coudoin@gcompris.net" target="_blank">bruno.coudoin@gcompris.net</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 text="#000000" bgcolor="#FFFFFF"><span class="">
<br>
<br>
<div>Le 22/03/2016 15:27, Devendra Vyas a
écrit :<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div style="font-family:trebuchet ms,sans-serif">Hi <br>
</div>
<div 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 href="mailto:jazeix@gmail.com" target="_blank">jazeix@gmail.com</a>></span>
wrote:<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">Hi,<br>
<div class="gmail_extra"><br>
<div class="gmail_quote"><span>2016-03-22
13:10 GMT+01:00 Devendra Vyas <span dir="ltr"><<a href="mailto:devendra.y12@lnmiit.ac.in" target="_blank"></a><a href="mailto:devendra.y12@lnmiit.ac.in" target="_blank">devendra.y12@lnmiit.ac.in</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 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: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>
<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 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></span>
Well, the code is platform agnostic. It is just our decision to
provide a given version with a download mode for a given platform.<span class=""><br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>
<div 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></span>
Sure.<span class=""><br></span></div></blockquote><div><br>I don't like the idea of telling the user he is offline. I,
personally, always use my tablet offline and would not like to be
reminded that I'm not connected. Maybe I'm a rare case :).<br></div><div>There is an option "automatic download", if it is checked, for me, there should be no box. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><span class="">
<blockquote 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></span>
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.<span class=""><br></span></div></blockquote><div><br></div><div>Is it a good idea to separate the install/uninstall features? For me, it comes together.<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><span class="">
<blockquote 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 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.</div></div></div></div></div></blockquote></span></div></blockquote><div><br></div><div>I don't know much the domain, but can using grayscale be a problem for some people with visual deficiencies? In a way it's the same as using colored icon but I'm not sure, so I prefer ask.<br></div><div><div></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 text="#000000" bgcolor="#FFFFFF"><span class=""><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div style="font-family:trebuchet ms,sans-serif;display:inline"> 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></span>
Ok<span class=""><br>
<blockquote 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>
<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 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></span>
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.<span class=""><font color="#888888"><br>
<br>
Bruno.<br>
</font></span></div></blockquote><div><br></div><div>Sure, we have time to think of it and we should take this time to find the best solution :).<br><br></div><div>Johnny<br></div></div><br></div></div>