diff options
author | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2015-10-11 18:10:20 +0200 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2015-10-11 18:13:46 +0200 |
commit | b6430ed7fd4b6d3656f70f98ea1b089e049a3847 (patch) | |
tree | 33cad83d5a1cff116c35e1aeda516809a9e0214c /android | |
parent | 4d8b2f8b996e2ff396a5b492125410ccc8ee2802 (diff) |
tdf#94891 fix crash when rotating screen in docbrowser right after launch
will likely also lose the current directory, but much better than
crashing.
Change-Id: I9ce20e1954a6f58325413046e258ded75b6c8848
Diffstat (limited to 'android')
-rw-r--r-- | android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java index 5290a50cf7b8..29229e142b1c 100644 --- a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java +++ b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java @@ -82,6 +82,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements ActionBa private IFile currentDirectory; private static final String CURRENT_DIRECTORY_KEY = "CURRENT_DIRECTORY"; + private static final String DOC_PROIVDER_KEY = "CURRENT_DOCUMENT_PROVIDER"; private static final String FILTER_MODE_KEY = "FILTER_MODE"; public static final String EXPLORER_VIEW_TYPE_KEY = "EXPLORER_VIEW_TYPE"; public static final String EXPLORER_PREFS_KEY = "EXPLORER_PREFS"; @@ -610,8 +611,9 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements ActionBa // TODO Auto-generated method stub super.onSaveInstanceState(outState); outState.putString(CURRENT_DIRECTORY_KEY, currentDirectory.getUri().toString()); - outState.putInt(FILTER_MODE_KEY , filterMode); + outState.putInt(FILTER_MODE_KEY, filterMode); outState.putInt(EXPLORER_VIEW_TYPE_KEY , viewMode); + outState.putInt(DOC_PROIVDER_KEY, documentProvider.getId()); Log.d(LOGTAG, currentDirectory.toString() + Integer.toString(filterMode) + Integer.toString(viewMode)); //prefs.edit().putInt(EXPLORER_VIEW_TYPE, viewType).commit(); @@ -625,14 +627,19 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements ActionBa if (savedInstanceState.isEmpty()){ return; } + if (documentProvider == null) { + Log.d(LOGTAG, "onRestoreInstanceState - documentProvider is null"); + documentProvider = DocumentProviderFactory.getInstance() + .getProvider(savedInstanceState.getInt(DOC_PROIVDER_KEY)); + } try { currentDirectory = documentProvider.createFromUri(new URI( savedInstanceState.getString(CURRENT_DIRECTORY_KEY))); } catch (URISyntaxException e) { currentDirectory = documentProvider.getRootDirectory(); } - filterMode = savedInstanceState.getInt(FILTER_MODE_KEY , FileUtilities.ALL) ; - viewMode = savedInstanceState.getInt(EXPLORER_VIEW_TYPE_KEY , GRID_VIEW); + filterMode = savedInstanceState.getInt(FILTER_MODE_KEY, FileUtilities.ALL); + viewMode = savedInstanceState.getInt(EXPLORER_VIEW_TYPE_KEY, GRID_VIEW); //openDirectory(currentDirectory); Log.d(LOGTAG, "onRestoreInstanceState"); Log.d(LOGTAG, currentDirectory.toString() + Integer.toString(filterMode) + Integer.toString(viewMode)); |