<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>Hi Tobias,</p>
    <p>SWORD + ICU integration offers more than just i18n support.  It
      can provide on-the-fly transliteration support (e.g. Hebrew or
      Arabic to roman script or IPA), it can provide a Unicode aware
      regex parser, and I am sure other things I am forgetting.</p>
    <p>Yes, I think we already have what you are suggesting: if ICU is
      not available at build time, then i18n support falls back to use
      the new toUpper map impl for StringMgr, so I would say we do work
      much better if ICU is not available at build time.</p>
    <p>Thanks for the report that you've found it working well!  I am
      happy to hear,</p>
    <p>Troy</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 3/14/21 11:49 AM, Tobias Klein
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:02ec5b08-7b62-d07a-2e9a-c4bde660038f@tklein.info">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <p>Dear Troy,</p>
      <p>After doing some more tests I can say that the Unicode support
        based on the new toUpper map works pretty well! I tested with
        German, French, Spanish and I did not find any issues. This
        means that the next release of Ezra Project for Android will
        have full i18n support!</p>
      <p>I wonder whether this could be a general solution that allows
        to get rid of SWORD's ICU dependency ... (would reduce the size
        of my Windows installer quite significantly, too).</p>
      <p>Best regards,<br>
        Tobias<br>
      </p>
      <div class="moz-cite-prefix">On 2/16/21 10:08 PM, Tobias Klein
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:c306e845-8166-2df1-5ae5-cdb5ebd5570b@tklein.info">
        <meta http-equiv="Content-Type" content="text/html;
          charset=windows-1252">
        <p>Dear Troy,</p>
        <p>I just generated a test build of Ezra Project using your
          latest SWORD update including the new Unicode toUpper map.<br>
          <br>
          I tested with the German language setting on Android and it
          works! The Umlauts are displayed correctly. Thank you for this
          change. I am going to do some additional tests with other
          languages soon.</p>
        <p>Best regards,<br>
          Tobias<br>
        </p>
        <div class="moz-cite-prefix">On 2/14/21 7:49 PM, Troy A.
          Griffitts wrote:<br>
        </div>
        <blockquote type="cite"
          cite="mid:c3457460-657d-da00-4a2f-7b1ce7373582@crosswire.org">
          <meta http-equiv="Content-Type" content="text/html;
            charset=windows-1252">
          <p>Dear Tobias,</p>
          <p>I have spent a bit of time this morning investigating the
            cost of including a Unicode toUpper map from an official
            source in the SWORD source.</p>
          <p>Using this URL from IBM: <a class="moz-txt-link-freetext"
href="https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/nls/rbagslowtoupmaptable.htm"
              moz-do-not-send="true">https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/nls/rbagslowtoupmaptable.htm</a></p>
          <p>I have grabbed at least a UCS2 table (this includes all
            Unicode values which fit into 16bits) and the source file
            which is here:</p>
          <p><a class="moz-txt-link-freetext"
              href="https://crosswire.org/svn/sword/trunk/include/swtoupperdata.h"
              moz-do-not-send="true">https://crosswire.org/svn/sword/trunk/include/swtoupperdata.h</a></p>
          <p>only results in about 14k and is only included is you
            aren't compiling with ICU support, so this shouldn't impact
            most all SWORD builds.</p>
          <p>I've updated the default StringMgr::upperUTF8 to use this
            map and the testsuite passes.</p>
          <p>If you want to skip calling back into your JavaScript env
            to do the toUpper, then you should be able to fallback to
            this.</p>
          <p>Hope this helps,</p>
          <p>Troy</p>
          <p><br>
          </p>
          <div class="moz-cite-prefix">On 2/9/21 10:44 AM, Tobias Klein
            wrote:<br>
          </div>
          <blockquote type="cite"
            cite="mid:0FE4CBCC-38B6-4520-926E-DC4C0F8E7875@tklein.info">
            <meta http-equiv="Content-Type" content="text/html;
              charset=windows-1252">
            Dear Troy,
            <div class=""><br class="">
            </div>
            <div class="">Thank you so much! This confirms my suspicion.</div>
            <div class=""><br class="">
            </div>
            <div class="">Meanwhile I could reproduce this problem on
              one of my own devices (a seven-year old Nexus 7 which runs
              on Android 6).</div>
            <div class="">After reproducing it I made some <a
href="https://github.com/ezra-project/ezra-project/commit/cc0fbefa4f61effcd096a2659467cfd15a02dd98#diff-151bc226d42b8410bbe0cc9ecb805021141761158eb0210757605792c749ecd5"
                class="" moz-do-not-send="true">adjustments in timeout
                parameters</a>. Timeouts can happen here because the
              respective functionality lives on the Nodejs-side of
              things (a separate process), which is made accessible in
              the Cordova Webview via IPC.</div>
            <div class=""><br class="">
            </div>
            <div class="">I will submit an updated test version of Ezra
              Project later today, which means you can have another look
              once this test version goes live in the Play Store about
              two days from now. I will send another note once it is
              available.</div>
            <div class=""><br class="">
            </div>
            <div class="">Best regards,</div>
            <div class="">Tobias</div>
            <div class=""><br class="">
              <div><br class="">
                <blockquote type="cite" class="">
                  <div class="">Am 09.02.2021 um 02:42 schrieb Troy A.
                    Griffitts <<a href="mailto:scribe@crosswire.org"
                      class="" moz-do-not-send="true">scribe@crosswire.org</a>>:</div>
                  <br class="Apple-interchange-newline">
                  <div class="">
                    <meta http-equiv="Content-Type" content="text/html;
                      charset=windows-1252" class="">
                    <div class="">
                      <p class="">Dear Tobias,</p>
                      <p class="">My apologies for taking so long to
                        reply to your request.  Attached is the adb log
                        when I run ezra and open the settings menu.  I
                        did a grep for NODE as you requested, but didn't
                        see anything unusual, so I am sending you the
                        entire log.</p>
                      <p class="">It may be as you suggested, the i18n
                        system, as I noticed this line:</p>
                      <p class="">02-08 18:39:22.300 22969 22969 D
                        SystemWebChromeClient: <a
                          class="moz-txt-link-freetext"
                          href="file:///android_asset/www/dist/ezra_init.js"
                          moz-do-not-send="true">file:///android_asset/www/dist/ezra_init.js</a>:
                        Line 19823 : Did not get node response for
                        i18n_get_translation<br class="">
                        <br class="">
                      </p>
                      <p class="">This is a Samsung Galaxy Tab A
                        (SM-T550), fully updated to what Samsung will
                        update for this hardware: Android 7.1.1.</p>
                      <p class="">Hope it's useful.  Let me know if
                        there is anything I can test for you.</p>
                      <p class="">Troy</p>
                      <p class=""><br class="">
                      </p>
                      <div class="moz-cite-prefix">On 2/6/21 4:27 AM,
                        Tobias Klein wrote:<br class="">
                      </div>
                      <blockquote type="cite"
                        cite="mid:be5e7cfc-aac2-02be-5396-9f93d02cd7fc@tklein.info"
                        class="">
                        <meta http-equiv="Content-Type"
                          content="text/html; charset=windows-1252"
                          class="">
                        <p class="">Hi Troy,</p>
                        <p class="">Would you mind trying once more with
                          the latest version (Beta 5), which is
                          available in the App Store now.<br class="">
                          I made some fixes, but I am still not sure
                          whether it will work on your device. In case
                          there are issues I'd be interested in the adb
                          debug log mentioned below.<br class="">
                        </p>
                        <p class="">Best regards,<br class="">
                          Tobias<br class="">
                        </p>
                        <div class="moz-cite-prefix">On 1/23/21 5:00 PM,
                          Tobias Klein wrote:<br class="">
                        </div>
                        <blockquote type="cite"
                          cite="mid:84556580-ef85-149d-e713-5021b82f9186@tklein.info"
                          class="">
                          <meta http-equiv="Content-Type"
                            content="text/html; charset=windows-1252"
                            class="">
                          <p class="">Hi Troy,</p>
                          <p class="">Could you let me know which
                            specific Android version you are using on
                            your tablet.</p>
                          <p class="">Also, would you mind sending me a
                            debug log by:<br class="">
                            1) Running <tt class="">adb logcat | grep
                              NODE</tt><br class="">
                            2) Starting up the Ezra Project app<br
                              class="">
                            <br class="">
                            Best regards,<br class="">
                            Tobias<br class="">
                          </p>
                          <div class="moz-cite-prefix">On 1/22/21 3:21
                            AM, Troy A. Griffitts wrote:<br class="">
                          </div>
                          <blockquote type="cite"
                            cite="mid:A8B1073E-BF42-4159-909C-5C2F5C981433@crosswire.org"
                            class="">
                            <meta http-equiv="content-type"
                              content="text/html; charset=windows-1252"
                              class="">
                            Hi Tobias! Excited you got things compiled.
                            Some things work for me on a Samsung Tab A
                            and some things don't. They all seem like
                            details now that you have a full stack
                            compiled and deployed! Looking forward to
                            see what becomes of it. Here's my
                            screenshot.<br class="">
                            <br class="">
                            <br class="">
                            <br class="">
                            <div class="gmail_quote">On January 21, 2021
                              12:39:32 PM MST, Tobias Klein <a
                                class="moz-txt-link-rfc2396E"
                                href="mailto:contact@tklein.info"
                                moz-do-not-send="true"><contact@tklein.info></a>
                              wrote:
                              <blockquote class="gmail_quote"
                                style="margin: 0pt 0pt 0pt 0.8ex;
                                border-left: 1px solid rgb(204, 204,
                                204); padding-left: 1ex;">
                                <pre class="k9mail">Hi all,

I'm glad to announce the first working test candidate of Ezra Project on 
Android (tagged Ezra Project 0.17.0-Beta3).

Here is a link to the app, which is now in the "open testing phase".

<a href="https://play.google.com/store/apps/details?id=de.ezraproject.cordova" moz-do-not-send="true" class="">https://play.google.com/store/apps/details?id=de.ezraproject.cordova</a>

Note that the app requires at least Android 7 and a 10" display.

Here's some technical background info:

The code base of Ezra Project only needed slight modifications to 
support running with a Cordova wrapper as an Android app.

The pure cordova part now lives here: 
<a href="https://github.com/ezra-project/ezra-project-cordova" moz-do-not-send="true" class="">https://github.com/ezra-project/ezra-project-cordova</a>
That repository simply includes the main Ezra Project repository as a 
submodule.

The following additional aspects were added on Android:

- Write permission handling on startup
- Added an option to keep the screen on (it otherwise turns off after a 
short time without user interaction)
- Added platform-specific startup code
- Added platform-specific full screen handling

There is still some work left to replace certain mouse-dependent 
features with a touch-screen compatible UX.

Under the hood, a major refactoring of the "backend functionality" was 
required first. All functionality that is directly interacting with the 
filesystem was moved to a separate process (Sword, Settings, i18n, 
Database). The architecture is the same in the Electron app and the 
Cordova app. For each, frontend and backend are separated in two 
different processes and interacting with each other via an IPC layer. 
This IPC layer is in detail a bit different for Electron and Cordova, 
but behaves the same from an interface perspective.

I'd be happy about feedback!

Best regards,
Tobias<hr class="">sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true" class="">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page
</pre>
                              </blockquote>
                            </div>
                            <br class="">
                            -- <br class="">
                            Sent from my Android device with K-9 Mail.
                            Please excuse my brevity. </blockquote>
                          <br class="">
                          <fieldset class="mimeAttachmentHeader"></fieldset>
                          <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
                        </blockquote>
                        <br class="">
                        <fieldset class="mimeAttachmentHeader"></fieldset>
                        <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
                      </blockquote>
                    </div>
                    <span id="cid:E4705A37-C440-48B6-9691-D0EEC6E72058"><ezra.log></span>_______________________________________________<br
                      class="">
                    sword-devel mailing list: <a
                      href="mailto:sword-devel@crosswire.org" class=""
                      moz-do-not-send="true">sword-devel@crosswire.org</a><br
                      class="">
                    <a
                      href="http://crosswire.org/mailman/listinfo/sword-devel"
                      class="" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a><br
                      class="">
                    Instructions to unsubscribe/change your settings at
                    above page</div>
                </blockquote>
              </div>
              <br class="">
            </div>
            <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
          </blockquote>
          <br>
          <fieldset class="mimeAttachmentHeader"></fieldset>
          <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
        </blockquote>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
      </blockquote>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>