android/source/src/java/org/libreoffice/LOKitTileProvider.java |    2 
 android/source/src/java/org/libreoffice/ToolbarController.java |   22 
+++-------
 2 files changed, 9 insertions(+), 15 deletions(-)

New commits:
commit b60ebf9f6ee6ba86f99f074c7b70698b21797cd0
Author:     Michael Weghorn <[email protected]>
AuthorDate: Fri Nov 7 10:39:51 2025 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Mon Nov 10 10:43:25 2025 +0100

    android: Only offer printing if device supports it
    
    Disable/hide the menu entry for printing if the
    device doesn't support printing.
    
    Quoting from the PrintManager doc [1]:
    
    > Requires the PackageManager#FEATURE_PRINTING feature which can be
    > detected using PackageManager.hasSystemFeature(String).
    
    [1] https://developer.android.com/reference/android/print/PrintManager
    
    Change-Id: I65dacb1f11b7ae3e36e5516cd1af26ed20d918e1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193574
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>
    (cherry picked from commit 7e528bf6880a88975addd211216c8f170d47af27)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193717
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/android/source/src/java/org/libreoffice/ToolbarController.java 
b/android/source/src/java/org/libreoffice/ToolbarController.java
index b53333a92942..6e88d90aa7ca 100644
--- a/android/source/src/java/org/libreoffice/ToolbarController.java
+++ b/android/source/src/java/org/libreoffice/ToolbarController.java
@@ -11,6 +11,7 @@ package org.libreoffice;
 import android.content.ClipData;
 import android.content.ClipboardManager;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import androidx.appcompat.widget.Toolbar;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -249,6 +250,10 @@ public class ToolbarController implements 
Toolbar.OnMenuItemClickListener {
             setItemVisible(R.id.action_save, false);
         }
         setItemVisible(R.id.action_parts, mContext.isDrawerEnabled());
+
+        final boolean enablePrint = 
mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_PRINTING);
+        enableMenuItem(R.id.action_print, enablePrint);
+        setItemVisible(R.id.action_print, enablePrint);
     }
 
     public void setItemVisible(final int item, boolean visible){
commit bb6075fdb95d64e857975a9df442ed2439a7c778
Author:     Michael Weghorn <[email protected]>
AuthorDate: Fri Nov 7 10:28:17 2025 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Mon Nov 10 10:43:10 2025 +0100

    android: Merge ToolBarController.{show,hide}Item
    
    Instead of having two methods doing almost the
    same, have a ToolBarController.setItemVisible that
    takes a boolean parameter and passes it to
    MenuItem.setVisible.
    
    Use it in one more place.
    
    Change-Id: Ia186910865c8d3903763fbbad999e06a1cc41946
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193573
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>
    (cherry picked from commit 082b22735abd682d8022820929c46e45a02bafdf)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193716
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java 
b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
index bbdc9456cf4c..ac98d076d1d7 100644
--- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java
+++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java
@@ -124,7 +124,7 @@ class LOKitTileProvider implements TileProvider {
         // Writer documents always have one part, so hide the navigation 
drawer.
         if (mDocument.getDocumentType() == Document.DOCTYPE_TEXT) {
             mContext.disableNavigationDrawer();
-            mContext.getToolbarController().hideItem(R.id.action_parts);
+            mContext.getToolbarController().setItemVisible(R.id.action_parts, 
false);
         }
 
         // Enable headers for Calc documents
diff --git a/android/source/src/java/org/libreoffice/ToolbarController.java 
b/android/source/src/java/org/libreoffice/ToolbarController.java
index 603d2258167e..b53333a92942 100644
--- a/android/source/src/java/org/libreoffice/ToolbarController.java
+++ b/android/source/src/java/org/libreoffice/ToolbarController.java
@@ -246,27 +246,16 @@ public class ToolbarController implements 
Toolbar.OnMenuItemClickListener {
                 Toast.makeText(mContext, 
mContext.getString(R.string.readonly_file), Toast.LENGTH_LONG).show();
             }
         } else {
-            hideItem(R.id.action_save);
+            setItemVisible(R.id.action_save, false);
         }
-        
mMainMenu.findItem(R.id.action_parts).setVisible(mContext.isDrawerEnabled());
+        setItemVisible(R.id.action_parts, mContext.isDrawerEnabled());
     }
 
-    public void showItem(final int item){
+    public void setItemVisible(final int item, boolean visible){
         LOKitShell.getMainHandler().post(new Runnable() {
             @Override
             public void run() {
-                mMainMenu.findItem(item).setVisible(true);
-
-            }
-        });
-    }
-
-    public void hideItem(final int item){
-        LOKitShell.getMainHandler().post(new Runnable() {
-            @Override
-            public void run() {
-                mMainMenu.findItem(item).setVisible(false);
-
+                mMainMenu.findItem(item).setVisible(visible);
             }
         });
     }

Reply via email to