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