android/source/src/java/org/libreoffice/SettingsActivity.java         |    4 
++++
 android/source/src/java/org/libreoffice/ToolbarController.java        |    2 ++
 android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java |    5 
+++++
 3 files changed, 11 insertions(+)

New commits:
commit 5bd9b087c24d29b76e7fac6a991ef6fda2ef8d9f
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Nov 25 23:18:22 2025 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Wed Nov 26 06:27:55 2025 +0100

    android: Hide settings menu entry if there are no settings
    
    All settings displayed in the SettingsActivity
    are related to editing, and only displayed
    if the build includes the editing feature.
    
    Therefore, don't show the settings menu item when
    using a build config that doesn't include that feature,
    i.e. only show the item for the strippedUIEditing
    product flavor, but not the strippedUI or quest
    ones. For the latter two, an activity only displaying the
    "General" heading would be shown, but nothing
    else could be done, which was rather confusing.
    
    Change-Id: I2a1a616c1faee18583320ccb16e717dc933d6565
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194534
    Code-Style: Michael Weghorn <[email protected]>
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/android/source/src/java/org/libreoffice/SettingsActivity.java 
b/android/source/src/java/org/libreoffice/SettingsActivity.java
index db715cf8b0cc..c37cdec3f9b5 100644
--- a/android/source/src/java/org/libreoffice/SettingsActivity.java
+++ b/android/source/src/java/org/libreoffice/SettingsActivity.java
@@ -41,5 +41,9 @@ public class SettingsActivity extends FragmentActivity {
             }
         }
     }
+
+    public static boolean hasSettings() {
+        return BuildConfig.ALLOW_EDITING;
+    }
 }
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/android/source/src/java/org/libreoffice/ToolbarController.java 
b/android/source/src/java/org/libreoffice/ToolbarController.java
index 466de485489e..d5e6937c5e8b 100644
--- a/android/source/src/java/org/libreoffice/ToolbarController.java
+++ b/android/source/src/java/org/libreoffice/ToolbarController.java
@@ -240,6 +240,8 @@ public class ToolbarController implements 
Toolbar.OnMenuItemClickListener {
 
         final boolean enablePrint = 
mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_PRINTING);
         setItemVisible(R.id.action_print, enablePrint);
+
+        setItemVisible(R.id.action_settings, SettingsActivity.hasSettings());
     }
 
     public void setItemVisible(final int item, boolean visible) {
diff --git 
a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java 
b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index 0a7fa5e7178b..8dfd9b3f63c3 100644
--- a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -292,6 +292,11 @@ public class LibreOfficeUIActivity extends 
AppCompatActivity implements View.OnC
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.view_menu, menu);
 
+        final MenuItem settingsItem = menu.findItem(R.id.action_settings);
+        final boolean enableSettingsItem = SettingsActivity.hasSettings();
+        settingsItem.setVisible(enableSettingsItem);
+        settingsItem.setEnabled(enableSettingsItem);
+
         return true;
     }
 

Reply via email to