summaryrefslogtreecommitdiff
path: root/android
AgeCommit message (Collapse)Author
2017-04-10Fix typos to complete commit b35552f39503Andrea Gelmini
Change-Id: I2a10f9989e682dfc88f3b1d5864bfce1637933ab Reviewed-on: https://gerrit.libreoffice.org/36359 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-04-10Fix typo: 'forgeround' in multiple filesXimeng Zu
Fixed typo: forgeround --> foreground in 19 files. Change-Id: Idb4c9ccd98a949a2574cdbd5b44f91509b9856a9 Reviewed-on: https://gerrit.libreoffice.org/36154 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Gautam Prajapati <gautamprajapati06@gmail.com> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2017-04-05android: simplify some if statements, remove redundant variablesChristian Lohmaier
Change-Id: I55a866ac66ffeab5fe2ebb45d86f68558b468650
2017-04-05android: getDrawable(int) is deprecatedChristian Lohmaier
additionally reduce scope of to package-private Change-Id: I46ca55c5ef7daf992407beef53f5da939bf9066a
2017-04-05android: otg_missing_error is not a format stringChristian Lohmaier
Change-Id: I8d06218b595f619c12d0402f8d8319a35a37daa1
2017-04-05android: using VectorCompat requires to use app:srcCompatChristian Lohmaier
Change-Id: Ifd66e104519ace4d1d27f1312b66d873476ed2c3
2017-04-05android: position in RecyclerView must not be treated as fixedChristian Lohmaier
Change-Id: I162428edb00550d496a5cf580d00189d17ea2587
2017-04-05android: prevent NullPointerException in RecyclerViewChristian Lohmaier
Change-Id: I31ffaf62ce470630556db3cf3f4d7a643ad39f5a
2017-04-05android: defaultValue is not the same as a hintChristian Lohmaier
also flag the password field as password entry Change-Id: I91d74335ac63ea6ddbe8df274a9b0e130fc14744
2017-04-05Fix typo: inticator -> indicatorXimeng Zu
The related code is not being used now... So, it's safe to just correct it before it is put to use. Change-Id: I1ba5f1d6d511c965c0ce08dd08bfcabc567da2c3 Reviewed-on: https://gerrit.libreoffice.org/36103 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-03-30android: restore tabbed toolbar removed by accidentTomaž Vajngerl
commit 1503769fe15c122ff2bb8f6f7e7b4ab72656ddc2 removed tabbed toolbar by mistake Change-Id: I72e408d8e67b846e227d4563a8cd8455c1e73c29
2017-03-30tdf#96816 android: top part unreachable with soft keyboardXimeng Zu
Uncomment in Manifest file the line related to input method: android:windowSoftInputMode="adjustResize" This allows for panning and zooming to the top part of the document. Change-Id: Ic75489071add6b52948d381f4f8b7205148b78ef Reviewed-on: https://gerrit.libreoffice.org/35721 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2017-03-30Add superscript and subscript text formatting optionsbrainbreaker
This commit adds superscript and subscript text formatting options in formatting toolbar Change-Id: Id6966eb11b71b269431a21f46bd7c597fdcdb08c Reviewed-on: https://gerrit.libreoffice.org/35778 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-03-30tdf#106325 - No way to create a new Documentbrainbreaker
This commit will add the ability to create a new document. A FAB is used in home screen which on expansion gives four options namely new writer document, new impress, new Sheet or new Draw. Two new events loadNewDocument and saveDocumentAs have been added. Another major change includes the use of constraint layout in LOUIActivity layout as it decreases nesting of views and improves the app performance. This was needed because of the new FAB layouts being added. Support for vector drawables has been enabled. Change-Id: Ia3ea17f73c0d8514f8ddb7b9a1cbd2ce7de6ac08 Reviewed-on: https://gerrit.libreoffice.org/35183 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-03-26Fix typosAndrea Gelmini
Change-Id: Idbf0aa261b829e83d4c08a2e989a4ced871dc6de Reviewed-on: https://gerrit.libreoffice.org/35616 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-03-19tdf#106317 bottom tabbar, grow/shrink font, insert line,rectTomaž Vajngerl
- added some initial implementation of the bottom tab-bar, which has 3 tabs - character, paragraph, insert - insert has not (completely) working insert line and rect shapes - add ability to shring/grow font as alternative to select its size Change-Id: If039f985403a8155d1e011953043f2979b4bfa91
2017-03-19tdf#106369 added toggle status ability for the list buttonsMert Tumer
Change-Id: Ic3132441bac57abf36e3588e6871c5b14a47c25d Reviewed-on: https://gerrit.libreoffice.org/35427 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-03-19fix typo/grammar: "the the" --> thedennisroczek
* also removing pointless ASCII art (tdf#62475) * truncate ending whitespace in Doxyfile Change-Id: I59b012f41ac0d170216229da85a49aa41689dee5 Reviewed-on: https://gerrit.libreoffice.org/35151 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-03-17Made toolbar title use the name of the current diraleksandar-stefanovic
It uses the name of the current directory, and if the directory is the root directory, it uses the app name instead. Change-Id: I1d8ac2545acb3e75be5b19fb5c208a8cb242de11 Reviewed-on: https://gerrit.libreoffice.org/35201 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-03-16tdf#106369, New feature, Inserting numbering/bullets format listsAtef hares
Editing toolbar_bottom to include two more options: 1- Inserting numbering format lists 2- Inserting bullets format lists Change-Id: I35f9238c45ab253ea75c693f7a76601408e36f9a Reviewed-on: https://gerrit.libreoffice.org/35106 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2017-03-14Bumped Gradle version to 3.3, gradle plugin to 2.3aleksandar-stefanovic
Change-Id: Ieb5c9a7855a57db5659c7f97902a12bd3afab328 Reviewed-on: https://gerrit.libreoffice.org/35200 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-03-12Made sort menu use radio buttonsaleksandar-stefanovic
This makes it MUCH easier to see what sort option is currently selected. Removed the mechanism of switching between labels when the option is toggled, and instead put all the options into a menu. Change-Id: I44142dc842d983d5438faeb06b67046bad235308 Reviewed-on: https://gerrit.libreoffice.org/34640 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-03-12Combine List Item & Grid Item Adapters of File Explorer Viewbrainbreaker
This commit will combine the code of ListItemAdapter & GridItemAdapter in LibreOfficeUIActivity to one ExplorerItemAdapter which will handle both the view types. Change-Id: I45c1f5124afee82ff0b78f13609acd37be87fde1 Reviewed-on: https://gerrit.libreoffice.org/34680 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-27Improve the Document Provider UXbrainbreaker
This commit improves the user experience of different Document Providers in the app. In case ext sd card is not present, the option is disabled in Navigation Menu. If the device does not support USB OTG, the option is disabled. LibreOfficeUIActivity registers a broadcast receiver in onCreate which detects if a USB device is connected and directs the user to Settings page to configure it. In case of errors in configuration in any case, user is directed to Settings activity after appropriate toast. Change-Id: I680f78a679e2071ce8330c8168d7aa4e95041723 Reviewed-on: https://gerrit.libreoffice.org/34650 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-25Moved navigation items to XMLaleksandar-stefanovic
I made them add programatically before, because I was unsure whether the list was dynamic, but when I found out that the five items on the list are actually static, I realized that it's better to declare menu items in XML, because of the performance and readibility. Change-Id: I044abe356e51b26ac13328fcf451cabc9e70a3ea Reviewed-on: https://gerrit.libreoffice.org/34342 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-25Fixed text alignment in listaleksandar-stefanovic
Changed text alignment in file browser to not center horizontally, because it should be glanceable and therefore should be left-aligned (ideally the start-aligned). See https://material.io/guidelines/components/lists.html . Change-Id: I383141bc2f49b63927c136d911f50cfd15bdef45 Reviewed-on: https://gerrit.libreoffice.org/34290 Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-17tdf#99967 Drop Web WizardSamuel Mehrbrodt
Change-Id: Ibc0f45a03e16f3fe4ee54b24de30ba88e43a4aab Reviewed-on: https://gerrit.libreoffice.org/26381 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-02-16Fixed the runtime crash of app by catching exceptionbrainbreaker
Steps to reproduce crash: Click on remote server option in navigation menu, in case of invalid server URL it will show a toast. Then click on Storage Provider Settings once and press back, app will crash throwing runtime exception. The exception is not catched anywhere so Java runtime exits the app Change-Id: I2bccca633e62fec82c868661f14765596c4b83f1 Reviewed-on: https://gerrit.libreoffice.org/34166 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-15Fixed the margins of list items of File Recycler Viewbrainbreaker
Screenshots of the change:- Before: 1. https://s19.postimg.org/bbs91keyr/Screenshot_20170212_182941.png 2. https://s19.postimg.org/k5j5io1xf/Screenshot_20170212_183334.png Now: 1. https://s19.postimg.org/4o08spkub/Screenshot_20170212_222359.png 2. https://s19.postimg.org/5p0hhu1tv/Screenshot_20170212_222406.png Change-Id: I3137ce2648c4dda30d7bbe93245618a83e9048c0 Reviewed-on: https://gerrit.libreoffice.org/34175 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-14Moved file filtering to a menu optionaleksandar-stefanovic
Moved file filtering from a toolbar spinner to a menu option. The toolbar title is now free to display some other information. The options are grouped, so they display radio buttons, and show which item is selected. The radio group default selection is the one defined in the settings. Change-Id: Ib8d8716ec0038d2cd273423c756563680b84ae55 Reviewed-on: https://gerrit.libreoffice.org/34019 Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-13Fix typosAndrea Gelmini
Change-Id: Iaf6bbe81f519d49b82f624282d786c8cc18d641c Reviewed-on: https://gerrit.libreoffice.org/34199 Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-12Changed description of setting entriesaleksandar-stefanovic
Changed to make more sense to non-tech-savvy users. See https://material.io/guidelines/style/writing.html for writing guidelines. Changed grid default value from string to integer, since the value is effectively an integer, and no point in being a string. Change-Id: I6c1737927e7f9d20536756c3cb8b7059cf49500b Reviewed-on: https://gerrit.libreoffice.org/34074 Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-11Moved "storage provider settings" to nav draweraleksandar-stefanovic
Moved "storage provider settings" to the navigation drawer, because it makes more sense to put it below the storage options, than in a overflow menu. Also, switched positions of "Settings" and "About", because About is always the last item, by convention. Change-Id: If6d621abfee7a3bdda28311a9cadf35ea674f852 Reviewed-on: https://gerrit.libreoffice.org/34073 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-10Default Value added to File Explorer View Preferencebrainbreaker
Change-Id: Ibbca76cae7fb189d94c37397ad49e9cff2755cd2 Reviewed-on: https://gerrit.libreoffice.org/34082 Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-09Explorer File View option in Settings working nowbrainbreaker
Explorer file view option in Settings is working now. To listen to the preference updates in the app a custom class SettingsListernerModel has been added. SettingsListenerModel.java file contains the methods to instantiate and set OnSettingPreferenceChangedListener in the implementing class. LibreOfficeUIActivity implements this listener and it is triggered by onSharedPreferenceChanged() method in SettingsActivity. This class can also be used to listen to other preference changes in Settings. Change-Id: I063024df01cf183d2a6211648e32805795af20a9 Reviewed-on: https://gerrit.libreoffice.org/34012 Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com> Tested-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-07android: move sort options to separate menualeksandar-stefanovic
This is one in a series of commits of trying to unclutter the context menu, which was pretty unorganized. Change-Id: I8a9473041730492a0b60c6b71fd7fd7996cedd89 Reviewed-on: https://gerrit.libreoffice.org/33768 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-02-07Add recents files to the document browseraleksandar-stefanovic
The recents mechanism works like this: Every time the file is opened, it saves that file to the shared preferences set, by putting it in the first place, and removing the oldest file from the list, if there are more than 4 recent files. It also adds dynamic App Shortcuts if the device is 7.0 and above. Screenshot: http://imgur.com/a/7kWOl Edited the layout to add a new RecyclerView for recent items, as well as the headers for both the recycler view's. Recent files appear only if in home directory, below app bar and above the file browser. This could be subjected to change in the future. Screenshot of the recents section: http://imgur.com/a/qrqZq Change-Id: I5c99aa26351d9ad2313e18b5b696d04a782e6155 Reviewed-on: https://gerrit.libreoffice.org/33759 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-02-07Removed static context from DisplayPortCalculatoraleksandar-stefanovic
Refactored many fields of DisplayPortCalculator to not be static, so that they could use the Context object from the constructor. Once refactored, the static context object could be removed from LibreOfficeMainActivity. Change-Id: Ic23030b74a24c753a4a2d2086fc6301eeb9d8728 Reviewed-on: https://gerrit.libreoffice.org/33765 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-02-06Retaining the default file explorer viewbrainbreaker
Change-Id: I273ee17fc94e9d6e3b73ca0b9a4853a632123bd0 Reviewed-on: https://gerrit.libreoffice.org/33946 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-02-03TyposJulien Nabet
Change-Id: I36f443c266670bd26aa6b813075e18653f372f52 Reviewed-on: https://gerrit.libreoffice.org/33900 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-01-31Removed static context from LOKitThreadaleksandar-stefanovic
Moved LOKitThread back to LibreOfficeMainActivity, so that it could use the context in the constructor. Once the Context became available in LOKitThread, it was simply a matter of replacing static references with the one passed in the constructor. Also changed access levels of some methods in LOKitThread. Change-Id: I0cc2c846c67b90907cbf3dce363666f9ab02d887 Reviewed-on: https://gerrit.libreoffice.org/33546 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-01-31Removed static context from JavaPanZoomControlleraleksandar-stefanovic
Removed static context, and edited the access levels of some methods in the classes, along with some general code style fixes. Change-Id: I89c71fa38eaafb5cda721602cfc8dad10ba7d26a Reviewed-on: https://gerrit.libreoffice.org/33557 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-01-31Removed static context from LOKitTileProvideraleksandar-stefanovic
Removed references to static context, replaced them with the context object already available in the class, and changed access levels on some methods in LOKitTileProvider. Change-Id: Ib52d325650377b77ec166ddbfb760f74c19067ff Reviewed-on: https://gerrit.libreoffice.org/33554 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2017-01-26Moved About dialog to DialogFragmentaleksandar-stefanovic
This makes the dialog more modular, and it takes no parameters instead of two. This is in the preparation of making the classes more independent on each-other's states, which is very important. Also, this follows the Android way of workflow better, since there is no "wrapper" class around the dialog, but instead the dialog is called directly. Change-Id: I7571480a040efaf202fae3929cfe76d65c19653e Reviewed-on: https://gerrit.libreoffice.org/33086 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-01-25Replaced empty spinner with the document titlealeksandar-stefanovic
Replaced empty spinner with the document title in the Main (viewer) activity. Had to edit the themes to not disable title, and edit the manifest to make the desired activities use that theme. If the theme is set in the "application" tag, it will apply the theme globablly. Also cleaned up and tightened the ToolbarController. Change-Id: I5099860787b5f84d01c98c5e53ade519c2f89cc4 Reviewed-on: https://gerrit.libreoffice.org/33306 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-01-25Reduce usage of memory-leaking Context objectaleksandar-stefanovic
Huge refactoring of the methods to use the passed instance of the Context object instead of using the static one. I couldn't completely remove the static object, because it requires restructuring of the workflow so that it originates from the activity, and not from some other random place. The way it was refactored is: 1. Find a place where the static object (LibreOfficeMainActivity.mAppContext) is used. 2. Add a LibreOfficeMainActivity object to the method signature. 3. Repeat the process with a method that calls it, and repeat until the LibreOfficeMainActivity object isn't available, so that it can be passed through all the methods, to the place where the static object was used. 4. Replace that static object with the parameter of the function. The commit looks pretty huge, but it's basically just the simple refactoring explained above. The memory leak isn't completely gone, but this a progress towards it. Also moved the "global" objects of Handler and LOKitThread from an Activity to an Application, which is the correct place for "global" variables. Can someone explain why Handler and LOKitThread are used? They seem to mostly do nothing, but steeply increasing the complexity of the application. Change-Id: Ib2be77fa3adea94d6b7849d0e2afa90bf318d68b Reviewed-on: https://gerrit.libreoffice.org/33073 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Aleksandar Stefanović <theonewithideas@gmail.com>
2017-01-16Cleaned up FormattingControlleraleksandar-stefanovic
It was coded pretty badly, so I cleaned it up. Most notably, it used a static instance of the Activity, which is a huge no-no which creates memory leaks. The irony is, it already had a reference to the Activity used correctly in the constructor. One memory-leak fixed, 29 more to go (LibreOfficeMainActivity holds that static Activity object which needs fixing). Also, simplified the "bottom toolbar" in preparation for the CoordinatorLayout implementation which will allow the activity to have fancy animations and smart interactions. Change-Id: I31aa117f6179910db73a5256b0a287357e1dec83 Reviewed-on: https://gerrit.libreoffice.org/33010 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>
2017-01-16Fixed typo in SearchControlleraleksandar-stefanovic
Fixed typo in SearchController (SearchDriection -> SearchDirection) Also tightened up the code. Change-Id: Iedb6f95c9d8ed04cc166638250c2d565e92d79ff Reviewed-on: https://gerrit.libreoffice.org/33011 Reviewed-by: jan iversen <jani@documentfoundation.org> Tested-by: jan iversen <jani@documentfoundation.org>
2017-01-16Replaced list and grid with RecyclerViewaleksandar-stefanovic
Because RecyclerView is more optimized, especially if there are lot of items. This way, we don't have to recreate ListView and GridView each time we switch view modes. Changed list adapter to appropriate RecyclerView adapter, and created new grid adapter inline, next to the list adapter, while deleting the older grid adapter file. Since these adapters are almost identical in content, maybe we could: a) Make them extend the same "base" adapter, to avoid duplicate code b) Unite them into one adapter which would display appropriate views at appropriate times. Change-Id: I1545c2c245ca642a689dee584bffb15f90aac4a6 Reviewed-on: https://gerrit.libreoffice.org/32976 Reviewed-by: jan iversen <jani@documentfoundation.org> Tested-by: jan iversen <jani@documentfoundation.org>
2017-01-16Revamped the navigation draweraleksandar-stefanovic
Replaced the custom implementation of the drawer with the support library one. This one inherently follows Material Design guidelines, and is much easier to maintain. This implementation also allows for header in the drawer, and so we could put something useful there to make the drawer even better. Also kept the original way of programatically adding the menu items, although I find this practice somewhat unelegant. Maybe we could have static list of items, and then grey-out the ones that aren't currently available? Also added appropriate icons to the menu items (which are vector drawables, of course), but I only covered the providers that appeared on my device (I can't confirm that there are no other providers), so if the provider is covered, it will have an icon, but if I didn't cover it, it will appear just fine, but without an icon. Maybe we could move the settings and sorting to the navigation drawer, also? It would be cleaner and more elegant, IMO. Change-Id: I02a051f0b75c6d4e16f518aa19fb9c6eef00f5e4 Reviewed-on: https://gerrit.libreoffice.org/32881 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>