[Android] Move PrefChangeRegistrar to components/prefs
Make it possible to observe local_state instead of Profile prefs. Bug: 381122436,40132529 Change-Id: Ib7ec2cfac791505b89586df7d682de40bdba2149 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6055147 Reviewed-by: Theresa Sullivan <twellington@chromium.org> Reviewed-by: Ted Choc <tedchoc@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Yaron Friedman <yfriedman@chromium.org> Cr-Commit-Position: refs/heads/main@{#1390455}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
036a2873e0
commit
4672dfdbe6
chrome
android
feed
core
java
src
org
chromium
chrome
browser
java
src
org
chromium
chrome
browser
junit
src
org
chromium
chrome
browser
BUILD.gn
commerce
android
java
src
org
chromium
chrome
browser
language
android
java
src
org
chromium
chrome
browser
language
preferences
safety_hub
android
java
src
org
chromium
chrome
browser
junit
src
org
chromium
chrome
browser
safety_hub
components/prefs
BUILD.gn
android
@ -40,7 +40,7 @@ import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
|
||||
import org.chromium.chrome.browser.ntp.cards.SignInPromo;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
|
||||
import org.chromium.chrome.browser.signin.SigninAndHistorySyncActivityLauncherImpl;
|
||||
@ -58,6 +58,7 @@ import org.chromium.chrome.browser.xsurface.feed.StreamType;
|
||||
import org.chromium.components.browser_ui.widget.displaystyle.DisplayStyleObserver;
|
||||
import org.chromium.components.browser_ui.widget.displaystyle.HorizontalDisplayStyle;
|
||||
import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.search_engines.TemplateUrlService;
|
||||
import org.chromium.components.search_engines.TemplateUrlService.TemplateUrlServiceObserver;
|
||||
@ -312,7 +313,7 @@ public class FeedSurfaceMediator
|
||||
if (sTestPrefChangeRegistar != null) {
|
||||
mPrefChangeRegistrar = sTestPrefChangeRegistar;
|
||||
} else {
|
||||
mPrefChangeRegistrar = new PrefChangeRegistrar(profile);
|
||||
mPrefChangeRegistrar = PrefServiceUtil.createFor(profile);
|
||||
}
|
||||
mPrefChangeRegistrar.addObserver(Pref.ENABLE_SNIPPETS, this::updateContent);
|
||||
mPrefChangeRegistrar.addObserver(Pref.ENABLE_SNIPPETS_BY_DSE, this::updateContent);
|
||||
|
@ -15,9 +15,10 @@ import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.signin.identitymanager.IdentityManager;
|
||||
import org.chromium.components.signin.identitymanager.PrimaryAccountChangeEvent;
|
||||
|
||||
@ -58,7 +59,7 @@ class ChromeBackupWatcher {
|
||||
}
|
||||
});
|
||||
|
||||
mPrefChangeRegistrar = new PrefChangeRegistrar(profile);
|
||||
mPrefChangeRegistrar = PrefServiceUtil.createFor(profile);
|
||||
for (PrefBackupSerializer serializer : ChromeBackupAgentImpl.NATIVE_PREFS_SERIALIZERS) {
|
||||
for (String pref : serializer.getAllowlistedPrefs()) {
|
||||
mPrefChangeRegistrar.addObserver(pref, this::onBackupPrefsChanged);
|
||||
|
@ -37,8 +37,7 @@ import org.chromium.chrome.browser.IntentHandler;
|
||||
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
||||
import org.chromium.chrome.browser.history.AppFilterCoordinator.AppInfo;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar.PrefObserver;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
import org.chromium.chrome.browser.signin.services.SigninManager.SignInStateObserver;
|
||||
@ -52,6 +51,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectableItemV
|
||||
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
|
||||
import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
import org.chromium.components.favicon.LargeIconBridge;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar.PrefObserver;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.ui.UiUtils;
|
||||
@ -274,7 +275,7 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
|
||||
IdentityServicesProvider.get().getSigninManager(profile).addSignInStateObserver(this);
|
||||
|
||||
// Create PrefChangeRegistrar to receive notifications on preference changes.
|
||||
mPrefChangeRegistrar = new PrefChangeRegistrar(profile);
|
||||
mPrefChangeRegistrar = PrefServiceUtil.createFor(profile);
|
||||
mPrefChangeRegistrar.addObserver(Pref.ALLOW_DELETING_BROWSER_HISTORY, this);
|
||||
mPrefChangeRegistrar.addObserver(Pref.INCOGNITO_MODE_AVAILABILITY, this);
|
||||
|
||||
|
@ -15,9 +15,10 @@ import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar.PrefObserver;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar.PrefObserver;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.url.GURL;
|
||||
@ -218,7 +219,7 @@ public class HomepagePolicyManager implements PrefObserver {
|
||||
private void onFinishNativeInitialization() {
|
||||
if (!mIsInitializedWithNative) {
|
||||
initializeWithNative(
|
||||
new PrefChangeRegistrar(ProfileManager.getLastUsedRegularProfile()));
|
||||
PrefServiceUtil.createFor(ProfileManager.getLastUsedRegularProfile()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,6 @@ import org.chromium.chrome.browser.native_page.NativePageNavigationDelegate;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
|
||||
import org.chromium.chrome.browser.ntp.cards.SignInPromo;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
@ -91,6 +90,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
|
||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgePadAdjuster;
|
||||
import org.chromium.components.feature_engagement.Tracker;
|
||||
import org.chromium.components.feed.proto.wire.ReliabilityLoggingEnums.DiscoverLaunchResult;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.search_engines.TemplateUrlService;
|
||||
import org.chromium.components.signin.base.AccountInfo;
|
||||
|
@ -59,7 +59,6 @@ import org.chromium.chrome.browser.ntp.cards.SignInPromo;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
|
||||
@ -73,6 +72,7 @@ import org.chromium.components.browser_ui.widget.displaystyle.HorizontalDisplayS
|
||||
import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
|
||||
import org.chromium.components.browser_ui.widget.displaystyle.UiConfig.DisplayStyle;
|
||||
import org.chromium.components.browser_ui.widget.displaystyle.VerticalDisplayStyle;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.search_engines.TemplateUrlService;
|
||||
import org.chromium.components.search_engines.TemplateUrlService.TemplateUrlServiceObserver;
|
||||
|
@ -71,8 +71,6 @@ import org.chromium.chrome.browser.history.AppFilterCoordinator.AppInfo;
|
||||
import org.chromium.chrome.browser.history.HistoryManagerToolbar.InfoHeaderPref;
|
||||
import org.chromium.chrome.browser.incognito.IncognitoUtils;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrarJni;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
|
||||
@ -87,6 +85,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectableItemV
|
||||
import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar.NavigationButton;
|
||||
import org.chromium.components.favicon.LargeIconBridge;
|
||||
import org.chromium.components.favicon.LargeIconBridgeJni;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrarJni;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.search_engines.TemplateUrlService;
|
||||
import org.chromium.components.signin.test.util.TestAccounts;
|
||||
|
@ -23,7 +23,7 @@ import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.url.GURL;
|
||||
import org.chromium.url.JUnitTestGURLs;
|
||||
|
@ -2733,8 +2733,6 @@ static_library("browser") {
|
||||
"android/preferences/clipboard_android.h",
|
||||
"android/preferences/cookie_controls_service_bridge.cc",
|
||||
"android/preferences/cookie_controls_service_bridge.h",
|
||||
"android/preferences/pref_change_registrar_android.cc",
|
||||
"android/preferences/pref_change_registrar_android.h",
|
||||
"android/preferences/privacy_preferences_manager_impl.cc",
|
||||
"android/preferences/shared_preferences_migrator_android.cc",
|
||||
"android/preferences/shared_preferences_migrator_android.h",
|
||||
@ -3274,7 +3272,6 @@ static_library("browser") {
|
||||
"//chrome/browser/policy/android:android",
|
||||
"//chrome/browser/policy/android:jni_headers",
|
||||
"//chrome/browser/preferences:android",
|
||||
"//chrome/browser/preferences:pref_service_jni_headers",
|
||||
"//chrome/browser/prefetch/android:jni_headers",
|
||||
"//chrome/browser/preloading/android:jni_headers",
|
||||
"//chrome/browser/privacy:jni_headers",
|
||||
|
@ -20,13 +20,14 @@ import org.chromium.base.supplier.ObservableSupplier;
|
||||
import org.chromium.base.supplier.ObservableSupplierImpl;
|
||||
import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||
import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
import org.chromium.components.browser_ui.settings.TextMessagePreference;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.signin.base.CoreAccountInfo;
|
||||
import org.chromium.components.signin.identitymanager.ConsentLevel;
|
||||
@ -74,7 +75,7 @@ public class PriceNotificationSettingsFragment extends ChromeBaseSettingsFragmen
|
||||
String email = info.getEmail();
|
||||
mEmailNotificationsSwitch.setSummary(
|
||||
getString(R.string.price_notifications_settings_email_description, email));
|
||||
mPrefChangeRegistrar = new PrefChangeRegistrar(getProfile());
|
||||
mPrefChangeRegistrar = PrefServiceUtil.createFor(getProfile());
|
||||
mPrefChangeRegistrar.addObserver(
|
||||
Pref.PRICE_EMAIL_NOTIFICATIONS_ENABLED, this::updateEmailNotificationSwitch);
|
||||
updateEmailNotificationSwitch();
|
||||
|
@ -10,8 +10,8 @@ import android.util.AttributeSet;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.components.browser_ui.settings.ChromeBasePreference;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
@ -23,13 +23,14 @@ import org.chromium.chrome.browser.language.GlobalAppLocaleController;
|
||||
import org.chromium.chrome.browser.language.LanguageSplitInstaller;
|
||||
import org.chromium.chrome.browser.language.R;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||
import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
|
||||
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
|
||||
import org.chromium.chrome.browser.translate.TranslateBridge;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
|
||||
@ -66,7 +67,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
mPageTitle.set(getString(R.string.language_settings));
|
||||
mPrefChangeRegistrar = new PrefChangeRegistrar(getProfile());
|
||||
mPrefChangeRegistrar = PrefServiceUtil.createFor(getProfile());
|
||||
|
||||
// Create the correct version of language settings.
|
||||
if (shouldShowDetailedPreferences()) {
|
||||
|
@ -34,18 +34,18 @@ android_library("java") {
|
||||
}
|
||||
|
||||
android_library("pref_service_java") {
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/preferences/PrefChangeRegistrar.java" ]
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/preferences/PrefServiceUtil.java" ]
|
||||
|
||||
deps = [
|
||||
"//base:base_java",
|
||||
"//build/android:build_java",
|
||||
"//chrome/browser/profiles/android:java",
|
||||
"//components/prefs/android:java",
|
||||
"//components/user_prefs/android:java",
|
||||
"//content/public/android:content_full_java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
]
|
||||
|
||||
srcjar_deps = [ ":pref_service_jni_headers" ]
|
||||
}
|
||||
|
||||
# TODO(chouinard,estade): Consider breaking this target up into a different target for each pref file.
|
||||
@ -81,10 +81,6 @@ generate_jni("jni_headers") {
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java" ]
|
||||
}
|
||||
|
||||
generate_jni("pref_service_jni_headers") {
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/preferences/PrefChangeRegistrar.java" ]
|
||||
}
|
||||
|
||||
source_set("android") {
|
||||
sources = [
|
||||
"android/chrome_shared_preferences.cc",
|
||||
|
17
chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceUtil.java
Normal file
17
chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceUtil.java
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2024 The Chromium Authors
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
package org.chromium.chrome.browser.preferences;
|
||||
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
|
||||
/** Utilities for accessing PrefServices. */
|
||||
public class PrefServiceUtil {
|
||||
/** Create a PrefChangeRegistrar watching the UserPrefs of a Profile. */
|
||||
public static PrefChangeRegistrar createFor(Profile profile) {
|
||||
return new PrefChangeRegistrar(UserPrefs.get(profile.getOriginalProfile()));
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ import androidx.annotation.NonNull;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.browser.magic_stack.ModuleDelegate;
|
||||
import org.chromium.chrome.browser.magic_stack.ModuleProvider;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceUtil;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
@ -38,7 +38,7 @@ class SafetyHubMagicStackCoordinator implements ModuleProvider {
|
||||
MagicStackBridge.getForProfile(profile),
|
||||
tabModelSelector,
|
||||
moduleDelegate,
|
||||
new PrefChangeRegistrar(profile),
|
||||
PrefServiceUtil.createFor(profile),
|
||||
modalDialogManagerSupplier,
|
||||
SafetyHubHatsHelper.getForProfile(profile));
|
||||
}
|
||||
|
@ -14,7 +14,6 @@ import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.browser.magic_stack.ModuleDelegate;
|
||||
import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragment;
|
||||
import org.chromium.chrome.browser.safety_hub.SafetyHubMetricUtils.ExternalInteractions;
|
||||
@ -22,6 +21,7 @@ import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
import org.chromium.ui.modelutil.PropertyModel;
|
||||
|
@ -36,13 +36,13 @@ import org.chromium.base.test.util.Batch;
|
||||
import org.chromium.chrome.browser.magic_stack.ModuleDelegate;
|
||||
import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar;
|
||||
import org.chromium.chrome.browser.preferences.PrefChangeRegistrar.PrefObserver;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragment;
|
||||
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
||||
import org.chromium.components.browser_ui.settings.SettingsNavigation;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar;
|
||||
import org.chromium.components.prefs.PrefChangeRegistrar.PrefObserver;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
import org.chromium.ui.modelutil.PropertyModel;
|
||||
|
@ -64,6 +64,8 @@ component("prefs") {
|
||||
|
||||
if (is_android) {
|
||||
sources += [
|
||||
"android/pref_change_registrar_android.cc",
|
||||
"android/pref_change_registrar_android.h",
|
||||
"android/pref_service_android.cc",
|
||||
"android/pref_service_android.h",
|
||||
]
|
||||
|
@ -6,13 +6,20 @@ import("//build/config/android/rules.gni")
|
||||
import("//third_party/jni_zero/jni_zero.gni")
|
||||
|
||||
generate_jni("jni_headers") {
|
||||
sources = [ "java/src/org/chromium/components/prefs/PrefService.java" ]
|
||||
sources = [
|
||||
"java/src/org/chromium/components/prefs/PrefChangeRegistrar.java",
|
||||
"java/src/org/chromium/components/prefs/PrefService.java",
|
||||
]
|
||||
}
|
||||
|
||||
android_library("java") {
|
||||
srcjar_deps = [ ":jni_headers" ]
|
||||
sources = [ "java/src/org/chromium/components/prefs/PrefService.java" ]
|
||||
sources = [
|
||||
"java/src/org/chromium/components/prefs/PrefChangeRegistrar.java",
|
||||
"java/src/org/chromium/components/prefs/PrefService.java",
|
||||
]
|
||||
deps = [
|
||||
"//base:base_java",
|
||||
"//build/android:build_java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
|
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
package org.chromium.chrome.browser.preferences;
|
||||
package org.chromium.components.prefs;
|
||||
|
||||
import android.util.ArrayMap;
|
||||
|
||||
@ -10,8 +10,6 @@ import org.jni_zero.CalledByNative;
|
||||
import org.jni_zero.JniType;
|
||||
import org.jni_zero.NativeMethods;
|
||||
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -26,15 +24,15 @@ public class PrefChangeRegistrar {
|
||||
void onPreferenceChange();
|
||||
}
|
||||
|
||||
/** Mapping preference key and corresponding observer. **/
|
||||
/** Mapping preference key and corresponding observer. */
|
||||
private final Map<String, PrefObserver> mObservers = new ArrayMap<>();
|
||||
|
||||
/** Native pointer for PrefChangeRegistrarAndroid. **/
|
||||
/** Native pointer for PrefChangeRegistrarAndroid. */
|
||||
private long mNativeRegistrar;
|
||||
|
||||
/** Initialize native PrefChangeRegistrar. */
|
||||
public PrefChangeRegistrar(Profile profile) {
|
||||
mNativeRegistrar = PrefChangeRegistrarJni.get().init(PrefChangeRegistrar.this, profile);
|
||||
public PrefChangeRegistrar(PrefService prefs) {
|
||||
mNativeRegistrar = PrefChangeRegistrarJni.get().init(PrefChangeRegistrar.this, prefs);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -79,7 +77,7 @@ public class PrefChangeRegistrar {
|
||||
|
||||
@NativeMethods
|
||||
public interface Natives {
|
||||
long init(PrefChangeRegistrar caller, @JniType("Profile*") Profile profile);
|
||||
long init(PrefChangeRegistrar caller, @JniType("PrefService*") PrefService prefService);
|
||||
|
||||
void add(
|
||||
long nativePrefChangeRegistrarAndroid,
|
@ -2,15 +2,15 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "chrome/browser/android/preferences/pref_change_registrar_android.h"
|
||||
#include "components/prefs/android/pref_change_registrar_android.h"
|
||||
|
||||
#include "base/android/jni_android.h"
|
||||
#include "base/android/jni_string.h"
|
||||
#include "base/functional/bind.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "components/prefs/android/pref_service_android.h"
|
||||
|
||||
// Must come after all headers that specialize FromJniType() / ToJniType().
|
||||
#include "chrome/browser/preferences/pref_service_jni_headers/PrefChangeRegistrar_jni.h"
|
||||
#include "components/prefs/android/jni_headers/PrefChangeRegistrar_jni.h"
|
||||
|
||||
using base::android::AttachCurrentThread;
|
||||
using base::android::ConvertJavaStringToUTF8;
|
||||
@ -19,8 +19,8 @@ using base::android::ConvertUTF8ToJavaString;
|
||||
PrefChangeRegistrarAndroid::PrefChangeRegistrarAndroid(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
Profile* profile) {
|
||||
pref_change_registrar_.Init(profile->GetOriginalProfile()->GetPrefs());
|
||||
PrefService* prefs) {
|
||||
pref_change_registrar_.Init(prefs);
|
||||
pref_change_registrar_jobject_.Reset(env, obj);
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ void PrefChangeRegistrarAndroid::OnPreferenceChange(std::string preference) {
|
||||
|
||||
jlong JNI_PrefChangeRegistrar_Init(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
Profile* profile) {
|
||||
PrefService* prefs) {
|
||||
return reinterpret_cast<intptr_t>(
|
||||
new PrefChangeRegistrarAndroid(env, obj, profile));
|
||||
new PrefChangeRegistrarAndroid(env, obj, prefs));
|
||||
}
|
@ -2,8 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef CHROME_BROWSER_ANDROID_PREFERENCES_PREF_CHANGE_REGISTRAR_ANDROID_H_
|
||||
#define CHROME_BROWSER_ANDROID_PREFERENCES_PREF_CHANGE_REGISTRAR_ANDROID_H_
|
||||
#ifndef COMPONENTS_PREFS_ANDROID_PREF_CHANGE_REGISTRAR_ANDROID_H_
|
||||
#define COMPONENTS_PREFS_ANDROID_PREF_CHANGE_REGISTRAR_ANDROID_H_
|
||||
|
||||
#include "base/android/scoped_java_ref.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
@ -12,7 +12,7 @@
|
||||
using base::android::JavaParamRef;
|
||||
using base::android::ScopedJavaGlobalRef;
|
||||
|
||||
class Profile;
|
||||
class PrefService;
|
||||
|
||||
// This class contains a PrefChangeRegistrar that observes PrefService changes
|
||||
// for Android.
|
||||
@ -20,7 +20,7 @@ class PrefChangeRegistrarAndroid {
|
||||
public:
|
||||
PrefChangeRegistrarAndroid(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
Profile* profile);
|
||||
PrefService* prefs);
|
||||
void Destroy(JNIEnv*, const JavaParamRef<jobject>&);
|
||||
|
||||
PrefChangeRegistrarAndroid(const PrefChangeRegistrarAndroid&) = delete;
|
||||
@ -42,4 +42,4 @@ class PrefChangeRegistrarAndroid {
|
||||
ScopedJavaGlobalRef<jobject> pref_change_registrar_jobject_;
|
||||
};
|
||||
|
||||
#endif // CHROME_BROWSER_ANDROID_PREFERENCES_PREF_CHANGE_REGISTRAR_ANDROID_H_
|
||||
#endif // COMPONENTS_PREFS_ANDROID_PREF_CHANGE_REGISTRAR_ANDROID_H_
|
Reference in New Issue
Block a user