Loading build/e_patches/Browser-Hide-settings-when-parental-control-is-active.patch +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 Loading @@ -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 Loading Loading @@ -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 Loading
build/e_patches/Browser-Hide-settings-when-parental-control-is-active.patch +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 Loading @@ -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 Loading Loading @@ -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