summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2021-03-30 11:40:21 +0200
committerMichael Weghorn <m.weghorn@posteo.de>2021-03-31 07:03:27 +0200
commit76114ef23c02c21de31b3c9b9be4255772b279f3 (patch)
tree20bcc382263f5c5f62cd31c2653a1c62db4ddd32
parent96c8ac2cf88cb6ce19bdff8f7fffaf9f6ca9656f (diff)
android: TileKitProvider: Optionally detect file type from document
Add an overload for the 'saveDocumentAs' method that takes just one parameter and auto-detects the file type to use from the document. Use it when creating new documents. Change-Id: I0f275ce159176292ffa1e52ed37673a486ab9428 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113374 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 4dbc9c87a09922072c0250e4e932228de93961db)
-rw-r--r--android/source/src/java/org/libreoffice/LOKitThread.java10
-rw-r--r--android/source/src/java/org/libreoffice/LOKitTileProvider.java15
-rw-r--r--android/source/src/java/org/libreoffice/TileProvider.java8
3 files changed, 23 insertions, 10 deletions
diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java
index 03b7070e783a..e80e5af6c990 100644
--- a/android/source/src/java/org/libreoffice/LOKitThread.java
+++ b/android/source/src/java/org/libreoffice/LOKitThread.java
@@ -265,15 +265,7 @@ class LOKitThread extends Thread {
refresh();
LOKitShell.hideProgressSpinner(mContext);
- if (fileType.matches(LibreOfficeUIActivity.NEW_WRITER_STRING_KEY))
- mTileProvider.saveDocumentAs(filePath, "odt");
- else if (fileType.matches(LibreOfficeUIActivity.NEW_CALC_STRING_KEY))
- mTileProvider.saveDocumentAs(filePath, "ods");
- else if (fileType.matches(LibreOfficeUIActivity.NEW_IMPRESS_STRING_KEY))
- mTileProvider.saveDocumentAs(filePath, "odp");
- else
- mTileProvider.saveDocumentAs(filePath, "odg");
-
+ mTileProvider.saveDocumentAs(filePath);
} else {
closeDocument();
}
diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
index 0e2649337322..a887118c6aaa 100644
--- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
@@ -356,6 +356,21 @@ class LOKitTileProvider implements TileProvider {
LOKitShell.hideProgressSpinner(mContext);
}
+ @Override
+ public void saveDocumentAs(final String filePath) {
+ final int docType = mDocument.getDocumentType();
+ if (docType == Document.DOCTYPE_TEXT)
+ saveDocumentAs(filePath, "odt");
+ else if (docType == Document.DOCTYPE_SPREADSHEET)
+ saveDocumentAs(filePath, "ods");
+ else if (docType == Document.DOCTYPE_PRESENTATION)
+ saveDocumentAs(filePath, "odp");
+ else if (docType == Document.DOCTYPE_DRAWING)
+ saveDocumentAs(filePath, "odg");
+ else
+ Log.w(LOGTAG, "Cannot determine file format from document. Not saving.");
+ }
+
public void exportToPDF(boolean print){
String dir = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Documents";
File docDir = new File(dir);
diff --git a/android/source/src/java/org/libreoffice/TileProvider.java b/android/source/src/java/org/libreoffice/TileProvider.java
index dabf30b834f7..a848b4ae98d0 100644
--- a/android/source/src/java/org/libreoffice/TileProvider.java
+++ b/android/source/src/java/org/libreoffice/TileProvider.java
@@ -22,11 +22,17 @@ import org.mozilla.gecko.gfx.IntSize;
public interface TileProvider {
/**
- * Save the current document.
+ * Save the current document under the given path.
*/
void saveDocumentAs(String filePath, String format);
/**
+ * Saves the current document under the given path,
+ * using the default file format.
+ */
+ void saveDocumentAs(String filePath);
+
+ /**
* Returns the page width in pixels.
*/
int getPageWidth();