Development of Basic Editing Capabilities for Libreoffice for Android – Milestone 2

Development of Basic Editing Capabilities for Libreoffice for Android – Milestone 2

Work Report: TDF0002 – Milestone 2 Development of Basic Editing Capabilities for LibreOffice for Android – Milestone 2 This project targets implementing basic editing in the LibreOffice for Android code. The second milestone demonstrates that the functionality required for the project is complete. Ta le of Contents Development of Basic diting !apabilities for LibreOffice for Android – #ilestone $...........................% Overvie& of the Tas'...................................................................................................................................... $ Addressing !omments from #% Acceptance...........................................................................................$ Documentation concerns........................................................................................................................$ Ne& bullet not appearing........................................................................................................................$ Tap)to)edit not &or'ing in !alc.............................................................................................................* +election and cursor at une,pected location in -mpress....................................................................* $.%.6 /%0.1.61 2erformance !onsiderations, +upport for Open4L..........................................................5 $.%.7 /%0.1.71 7endering of +elections on Overlays..................................................................................8 9riter selections........................................................................................................................................ 8 -mpress:Dra& selections.......................................................................................................................... 8 !alc selections........................................................................................................................................... $.%.8 /%0.1.81 7outing of Application -nformation from the Program #odule<s !ore........................6 The other &ay around, routing the information from Android to the program module=s core> manipulating the selections....................................................................................................................; $.%.9 /%0.1.91 Te,t, Tables for 9riter and -mpress, Tables for !alc, Pictures and +hapes....................? Development and Documentation...........................................................................................................%0 !ommunity ngagement : Public Promotion.........................................................................................%0 !onclusion..................................................................................................................................................... %0 Appendi, A: !ommits 7elated to Deliverables.......................................................................................%% Appendi, B: !alc Tiled 7endering -mplementation...............................................................................%8 Appendi, !: !ommits 7elated to Android 9or'....................................................................................%8 Appendi, D: 4eneral Android and Other Bug)fi,ing and !leanups...................................................%8 Appendi, : 4t'Tiled7enderer Development Test)bed.........................................................................%. [email protected] ☎ @55 %$$* *.$ ?.6 Work Report: TDF0002 – Milestone 2 "vervie% of t&e Task The first #ilestone &as to deliver five of the relevant $.% items from the contract " including relevant items from $.$ and $.*. The final consolidated contract re)numbered the +O9 headings3 thus all headers mar'ed %0.%., are referred to as $.%., in the contract te,t. 9e provide both numberings in the heading hoping to clarify things in this regard. The five items completed for #ilestone % &ere> $.%.% /%0.%.%13 $.%.$ /%0.%.$13 $.%.* /%0.%.*13 $.%.5 /%0.%.51 and $.%.8 /%0.%.81. #ilestone $ completes the remaining items. Addressing Comments from M' Acceptance Documentation concerns 9e have improved documentation at several levels3 as planned, since #%> %. The Android Aava UI code /each class and method added during this &or'1 no& has javadoc comments. $. (ot only the editing-related, but all other LibreOfficeKit A2I methods have do,ygen comments. *. Architecture of the Android part is no& documented in android/READ#E. 5. As before3 architecture of LibreOfficeKit is documented in libreoffice'it:READ# 3 and each ne&ly introduced !++ class and method have do,ygen comments. In addition to documenting every method and class that &e added3 &e have gone further to document some methods that &ere simply altered or pre)date the Deliverables. Revie&ers should be a&are that this e,tra &or' &as done on a best)effort basis and that not all pre)e,isting methods /particularly trivial ones1 are commented. Additionally3 &e also improved the +drObject:dra&inglayer related documentation in sv,:READ# . )e% (llet not appearing There &as a problem &ith 'eyboard input handling: every other call bet&een Android and the core calls &as e,ecuted on a thread &hich ta'es the solar mute,. In contrast3 'eyboard events &ere posted to the main loop of the soffice thread. The result of that &as that in case of many Android to core calls3 the main loop e,ecuted its scheduled events &ith in a delayed manner. 9e have fixed that3 so no& every action is e,ecuted on a thread. Our testing sho&s that this fixes the effect that some users e,perienced missing : delayed processing of 'eyboard input. Figure 1: Bullet inserted to the reference ODT document [email protected] ☎ @55 %$$* *.$ ?.6 Work Report: TDF0002 – Milestone 2 Tap*to*edit not %orking in Calc The contract &as &ritten &ith the assumption that !alc tiled rendering is complete3 and only the editing there is in scope. This &as not the case3 the tiled rendering &or'ed only for very basic use cases3 and did not even render the test document correctly. Figure 2: Tap to edit, in Calc. In this area &e have gone far further than the contract anticipated, and implemented the missing functionality. On top of this &e &ere able to improve the input handling /both soft 'eyboard and touch) in !alc &hich no& &or's nicely. +election and c(rsor at (nexpected location in Impress #% had no e,plicit support for the Impress editeng cursor and selections that &e &ould implement3 the &or' so far &as simply e,posing 9riter shapes functionality as)is. +ince then, &e have audited all outgoing Impress callbac's and done the necessary fixing such that all outgoing coordinates are in T9-2s /in some cases they &ere in hundredths of millimeter1. This corrects various 'eyboard and selection position/siDe issues. Figure 3: Cursor and selection at expected position in mpress. [email protected] ☎ @55 %$$* *.$ ?.6 Work Report: TDF0002 – Milestone 2 2.'./ 0'0.'./) 2erformance Considerations, +(pport for "pen4! The &or' as it is uses OpenGL on the device in the sense that the bitmaps /tiles1 provided by the LibreOfficeKit are up-loaded as OpenGL te,tures to the 42B and handled there to provide a composited vie& at the end, &hich gives nice panning and Dooming e,perience. 9e evaluated the state of porting E!L to OpenGL. At the time of outlining the contract3 there &as hope that OpenGL &ill be used by default on the des'top by no& and ripe for re)use on Android. That did not happen yet> OpenGL on the des'top is still hurt by some lifecycle problems3 and a fe& rendering artifacts have to be fixed before that can happen. This means &e continue to use the basegf, !2U rendering. 9e have evaluated the performance3 and after some optimiDation found it to be acceptable> There is no need to provide a cumbersome non)9F+-9F4 overlay for editing. Gor image and shape resiDing, instant re)layouting &ould be e,pensive and problematic from a UI perspective3 so &e sho& a previe& of the bounding bo,3 and resiDe and re)layout only after the final bounding bo, position and siDe is 'no&n. 9e found t&o scenarios &here performance &as really poor> %. On loading Impress documents3 not only the main slide vie&3 but also the slide sorter &as rendered /invisibly1 in the bac'ground. The Android-specific mobile)config.py script3 that adapts the des'top default config to Android requirements no& disables the slide pane by default. $. 9e had a loo' at the amount of invalidations after different actions3 and found that initially Impress re) dre& the current slide si, times on each touch event> &hich made editing slo&er than necessary. This &as a tiled-rendering-specific quir' fixed by not changing map)mode too often. After the fixes3 &e found the Impress te,t editing performance acceptable. Another performance)related problem &as that in some cases &e &ere providing the tiles too quic'ly> LibreOfficeKit did not &ait for the 9riter layout to finish3 so the result &as sometimes incomplete. The presence of these partially rendered &hite tiles caused significant ugliness &hen Dooming in some cases. This is no& fixed, no tile is handed out till the relevant part of the layout is finished. This means that &e can still sho& the first page of a document in advance of subsequent pages= layout calculation3 and still be correct. Figure !: Tile showing the #rst page, before. Figure %: Tile showing the #rst page, after. 2erformance could be further improved in the future using a profiler on Android to see &hen the time is spent on the !2B

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us