android/source/src/java/org/libreoffice/LOKitTileProvider.java | 4 +++- android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-)
New commits: commit 7de3b4bc881671692d15cfc93a4c887ed77b6c64 Author: Christian Lohmaier <[email protected]> AuthorDate: Fri Nov 8 16:41:42 2019 +0100 Commit: Christian Lohmaier <[email protected]> CommitDate: Tue Nov 19 11:55:24 2019 +0100 android: avoid NPE when trying to create cache file when the user wildly switches documents in fast succession, mDocument can be null - not creating a cache file definitely is better than a hard crash.... Also onSaveInstanceState is meant for lightweight operations (e.g. storing what file was openend and what position it was scrolled to), not for backend-storing of data, so move creation of cache file to onStop instead. Change-Id: I2452ef24e309ea4a9594eb723e893798b9b47d98 Reviewed-on: https://gerrit.libreoffice.org/82774 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <[email protected]> diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java index 65de28fe884e..0e2649337322 100644 --- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java +++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java @@ -406,8 +406,10 @@ class LOKitTileProvider implements TileProvider { Log.i(LOGTAG, "cacheDocument: " + cacheFile); if(isDocumentCached()){ LOKitShell.sendEvent(new LOEvent(LOEvent.UNO_COMMAND, ".uno:Save")); - }else{ + }else if(mDocument != null){ mDocument.saveAs("file://"+cacheFile, FileUtilities.getExtension(input.getPath()).substring(1),""); + }else{ + Log.w(LOGTAG, "mDocument was null when trying to save cacheDocument: " + cacheFile); } } diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java index 032a8461a01b..628305d01f13 100644 --- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java @@ -423,6 +423,8 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin @Override protected void onStop() { Log.i(LOGTAG, "onStop.."); + //save document to cache + mTileProvider.cacheDocument(); hideSoftKeyboardDirect(); LOKitShell.sendCloseEvent(); super.onStop(); @@ -970,8 +972,6 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - //save document to cache - mTileProvider.cacheDocument(); } } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
