[Libreoffice-commits] online.git: android/lib

mert (via logerrit) logerrit at kemper.freedesktop.org
Tue Feb 11 22:29:46 UTC 2020


 android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java |   49 ++++++++--
 android/lib/src/main/res/layout/lolib_dialog_loading.xml             |    3 
 android/lib/src/main/res/values/strings.xml                          |    1 
 3 files changed, 46 insertions(+), 7 deletions(-)

New commits:
commit 475c7cd42e37efab6c8e48e03efc32a3cf315171
Author:     mert <mert.tumer at collabora.com>
AuthorDate: Thu Feb 6 16:27:01 2020 +0300
Commit:     Jan Holesovsky <kendy at collabora.com>
CommitDate: Tue Feb 11 23:29:27 2020 +0100

    android: Notify the user about saving the document on close
    
    Change-Id: Ie96bd1918d2d166df096bec5e2c6489f819b6f13
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88102
    Tested-by: Jan Holesovsky <kendy at collabora.com>
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index e3e479a4c..a964ad392 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -33,12 +33,15 @@ import android.print.PrintDocumentAdapter;
 import android.print.PrintManager;
 import android.provider.DocumentsContract;
 import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
 import android.view.WindowManager;
 import android.webkit.JavascriptInterface;
 import android.webkit.ValueCallback;
 import android.webkit.WebChromeClient;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import java.io.File;
@@ -458,6 +461,10 @@ public class LOActivity extends AppCompatActivity {
         Log.i(TAG, "onDestroy() - we know we are leaving the document");
         nativeLooper.quit();
         mWebView.destroy();
+
+        // Most probably the native part has already got a 'BYE' from
+        // finishWithProgress(), but it is actually better to send it twice
+        // than never, so let's call it from here too anyway
         postMobileMessageNative("BYE");
     }
 
@@ -528,6 +535,38 @@ public class LOActivity extends AppCompatActivity {
         return null;
     }
 
+    /** Show the Saving progress and finish the app. */
+    private void finishWithProgress() {
+        LayoutInflater inflater = this.getLayoutInflater();
+        View loadingView = inflater.inflate(R.layout.lolib_dialog_loading, null);
+        TextView loadingText = loadingView.findViewById(R.id.lolib_loading_dialog_text);
+        loadingText.setText(getText(R.string.saving));
+        final AlertDialog savingProgress = new AlertDialog.Builder(LOActivity.this)
+            .setView(loadingView)
+            .setCancelable(true)
+            .create();
+
+        savingProgress.show();
+
+        // The 'BYE' takes a considerable amount of time, we need to post it
+        // so that it starts after the saving progress is actually shown
+        mainHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                postMobileMessageNative("BYE");
+
+                runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        savingProgress.dismiss();
+                    }
+                });
+
+                finish();
+            }
+        });
+    }
+
     @Override
     public void onBackPressed() {
         if (mMobileWizardVisible)
@@ -537,8 +576,7 @@ public class LOActivity extends AppCompatActivity {
             return;
         }
 
-        postMobileMessageNative("BYE");
-        super.onBackPressed();
+        finishWithProgress();
     }
 
     private void loadDocument() {
@@ -600,10 +638,6 @@ public class LOActivity extends AppCompatActivity {
             postMobileMessageNative(message);
             afterMessageFromWebView(messageAndParameterArray);
         }
-
-        // Going back to document browser on BYE (called when pressing the top left exit button)
-        if (message.equals("BYE"))
-            finish();
     }
 
     /**
@@ -647,6 +681,9 @@ public class LOActivity extends AppCompatActivity {
      */
     private boolean beforeMessageFromWebView(String[] messageAndParam) {
         switch (messageAndParam[0]) {
+            case "BYE":
+                finishWithProgress();
+                return false;
             case "PRINT":
                 mainHandler.post(new Runnable() {
                     @Override
diff --git a/android/lib/src/main/res/layout/lolib_dialog_loading.xml b/android/lib/src/main/res/layout/lolib_dialog_loading.xml
index f4dc98443..db4825bb7 100644
--- a/android/lib/src/main/res/layout/lolib_dialog_loading.xml
+++ b/android/lib/src/main/res/layout/lolib_dialog_loading.xml
@@ -10,9 +10,10 @@
         android:layout_weight="1" />
 
     <TextView
+        android:id="@+id/lolib_loading_dialog_text"
         android:layout_width="0dp"
         android:layout_height="match_parent"
         android:layout_weight="4"
         android:gravity="center"
         android:text="@string/loading" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/android/lib/src/main/res/values/strings.xml b/android/lib/src/main/res/values/strings.xml
index a283939e6..f5ad4ee4c 100644
--- a/android/lib/src/main/res/values/strings.xml
+++ b/android/lib/src/main/res/values/strings.xml
@@ -4,6 +4,7 @@
     <string name="failed_to_load_file">Failed to determine the file to load</string>
     <string name="failed_to_insert_image">Failed to insert image</string>
     <string name="cannot_open_file_chooser">Cannot open file chooser</string>
+    <string name="saving">Saving...</string>
 
     <!-- Loading SlideShow Dialog Strings -->
     <string name="loading">Loading...</string>


More information about the Libreoffice-commits mailing list