Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6bd840a authored by Nishith  Khanna's avatar Nishith Khanna
Browse files

Update hide settings when parental control is active

parent b82943e3
Loading
Loading
Loading
Loading
+36 −26
Original line number Diff line number Diff line
From ae536d662a9384b8866127dc6e2d31982a78728a Mon Sep 17 00:00:00 2001
From 6ca24e95f5915515956d658950a4bf49d5381fe9 Mon Sep 17 00:00:00 2001
From: althafvly <althafvly@gmail.com>
Date: Thu, 11 Jul 2024 11:11:15 +0530
Subject: Browser: Hide settings when parental control is active

Co-authored-by: Nishith Khanna <nishithkhanna@e.email>
---
 .../chrome/browser/app/ChromeActivity.java    |  3 +-
 .../AppMenuPropertiesDelegateImpl.java        |  5 ++++
 .../browser/app/flags/ChromeCachedFlags.java  | 29 +++++++++++++++++++
 .../chrome/browser/settings/MainSettings.java |  4 +++
 4 files changed, 40 insertions(+), 1 deletion(-)
 .../TabbedAppMenuPropertiesDelegate.java      | 11 +++++--
 4 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
index 99378d7f5b830..7c4ba4977f412 100644
@@ -31,29 +32,6 @@ index 99378d7f5b830..7c4ba4977f412 100644
             SettingsNavigation settingsNavigation =
                     SettingsNavigationFactory.createSettingsNavigation();
             settingsNavigation.startSettings(this);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
index 0706ef94e4d7c..f4f977c8397fa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -37,6 +37,7 @@ import org.chromium.base.supplier.OneshotSupplier;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.build.BuildConfig;
 import org.chromium.chrome.R;
+import org.chromium.chrome.browser.app.flags.ChromeCachedFlags;
 import org.chromium.chrome.browser.ActivityTabProvider;
 import org.chromium.chrome.browser.bookmarks.BookmarkModel;
 import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
@@ -670,6 +671,10 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
     /** Return whether the given {@link MenuItem} is managed by policy. */
     protected boolean isMenuItemManaged(MenuItem item) {
         if (item.getItemId() == R.id.new_incognito_tab_menu_id) {
+            if (item.getItemId() == R.id.preferences_id && item.isVisible()) {
+                item.setEnabled(!ChromeCachedFlags.isAdminActive());
+            }
+
             return IncognitoUtils.isIncognitoModeManaged(
                     mTabModelSelector.getCurrentModel().getProfile());
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
index eede1c3436602..8e12c0c141d49 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
@@ -121,6 +99,38 @@ index b8afd85d390cc..b448838375c98 100644
         super.onStart();
         SyncService syncService = SyncServiceFactory.getForProfile(getProfile());
         if (syncService != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
index 4b2fe0a547ae5..b507d7b01818e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.ActivityTabProvider;
 import org.chromium.chrome.browser.ai.AiAssistantService;
 import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
 import org.chromium.chrome.browser.app.creator.CreatorActivity;
+import org.chromium.chrome.browser.app.flags.ChromeCachedFlags;
 import org.chromium.chrome.browser.bookmarks.BookmarkModel;
 import org.chromium.chrome.browser.device.DeviceConditions;
 import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils;
@@ -785,12 +786,16 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
     }
 
     private MVCListAdapter.ListItem buildSettingsItem() {
-        return new MVCListAdapter.ListItem(
-                AppMenuHandler.AppMenuItemType.STANDARD,
+        PropertyModel model =
                 buildModelForStandardMenuItem(
                         R.id.preferences_id,
                         R.string.menu_settings,
-                        shouldShowIconBeforeItem() ? R.drawable.settings_cog : 0));
+                        shouldShowIconBeforeItem() ? R.drawable.settings_cog : 0);
+        boolean isEnabled =
+                !ChromeCachedFlags.isAdminActive();
+        model.set(AppMenuItemProperties.ENABLED, isEnabled);
+
+        return new MVCListAdapter.ListItem(AppMenuHandler.AppMenuItemType.STANDARD, model);
     }
 
     /**
-- 
2.49.0