diff --git a/android/java/org/chromium/chrome/browser/settings/BraveLicensePreferences.java b/android/java/org/chromium/chrome/browser/settings/BraveLicensePreferences.java index f22777ae3d2..b446d809728 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveLicensePreferences.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveLicensePreferences.java @@ -41,7 +41,6 @@ public class BraveLicensePreferences extends BravePreferenceFragment { assert R.string.chrome_additional_terms_of_service_title > 0 : "Something has changed in the upstream!"; assert R.string.google_privacy_policy_url > 0 : "Something has changed in the upstream!"; - assert R.string.sync_reading_list > 0 : "Something has changed in the upstream!"; SettingsUtils.addPreferencesFromResource(this, R.xml.brave_license_preferences); mPageTitle.set(getString(R.string.brave_license_text)); diff --git a/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java b/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java index 966ddec3e70..e6dcfc192c4 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveMainPreferencesBase.java @@ -241,7 +241,6 @@ public abstract class BraveMainPreferencesBase extends BravePreferenceFragment removePreferenceIfPresent(PREF_PRIVACY); removePreferenceIfPresent(PREF_BRAVE_VPN_CALLOUT); removePreferenceIfPresent(MainSettings.PREF_SETTINGS_PROMO_CARD); - removePreferenceIfPresent(MainSettings.PREF_MANAGE_SYNC); if (!ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_PLAYLIST)) { removePreferenceIfPresent(PREF_BRAVE_PLAYLIST); @@ -710,7 +709,6 @@ public abstract class BraveMainPreferencesBase extends BravePreferenceFragment indexData.removeEntry(getUniqueId(MainSettings.PREF_DOWNLOADS)); indexData.removeEntry(getUniqueId(MainSettings.PREF_SAFETY_HUB)); indexData.removeEntry(getUniqueId(MainSettings.PREF_SETTINGS_PROMO_CARD)); - indexData.removeEntry(getUniqueId(MainSettings.PREF_MANAGE_SYNC)); indexData.removeEntry( getUniqueId(MainSettings.PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION)); indexData.removeEntry(getUniqueId(MainSettings.PREF_GOOGLE_SERVICES)); diff --git a/android/java/org/chromium/chrome/browser/settings/BraveSyncScreensPreference.java b/android/java/org/chromium/chrome/browser/settings/BraveSyncScreensPreference.java index 880ce93f2fb..cc63b3a08aa 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveSyncScreensPreference.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveSyncScreensPreference.java @@ -1211,7 +1211,7 @@ public class BraveSyncScreensPreference extends BravePreferenceFragment if (isSyncStateChangedObserverPaused()) { return; } - if (!SyncServiceFactory.getForProfile(getProfile()).isInitialSyncFeatureSetupComplete()) { + if (!getBraveSyncWorker().isInitialSyncFeatureSetupComplete()) { if (mLeaveSyncChainInProgress) { leaveSyncChainComplete(); } else { diff --git a/android/java/org/chromium/chrome/browser/sync/settings/BraveManageSyncSettings.java b/android/java/org/chromium/chrome/browser/sync/settings/BraveManageSyncSettings.java index dbe2b4414e0..15f205da7c3 100644 --- a/android/java/org/chromium/chrome/browser/sync/settings/BraveManageSyncSettings.java +++ b/android/java/org/chromium/chrome/browser/sync/settings/BraveManageSyncSettings.java @@ -20,6 +20,9 @@ import androidx.preference.Preference; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; import org.chromium.base.Log; +import org.chromium.base.supplier.MonotonicObservableSupplier; +import org.chromium.base.supplier.ObservableSuppliers; +import org.chromium.base.supplier.SettableMonotonicObservableSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.password_manager.settings.ReauthenticationManager; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; @@ -33,13 +36,10 @@ import java.util.TimerTask; public class BraveManageSyncSettings extends ManageSyncSettings { private static final String TAG = "BMSS"; - private static final String PREF_ADVANCED_CATEGORY = "advanced_category"; - private Preference mGoogleActivityControls; private Preference mSyncEncryption; private ChromeSwitchPreference mPrefSyncPasswords; - private ChromeSwitchPreference mSyncEverything; private BravePasswordAccessReauthenticationHelper mReauthenticationHelper; @@ -49,6 +49,17 @@ public class BraveManageSyncSettings extends ManageSyncSettings { private static final String VERBOSE_SYNC_PASSWORDS_PREF_COMMAND_LINE_KEY = "verbose_sync_passwords_pref"; + // Mirrors ManageSyncSettings.PREF_CENTRAL_ACCOUNT_CARD_PREFERENCE (private there) + private static final String PREF_CENTRAL_ACCOUNT_CARD_PREFERENCE = "central_account_card"; + + // Keys not exposed as public constants in ManageSyncSettings + private static final String PREF_ACCOUNT_SECTION_HEADER = "account_section_header"; + private static final String PREF_ACCOUNT_SECTION_FOOTER = "account_section_footer"; + private static final String PREF_ACCOUNT_ADVANCED_HEADER = "account_advanced_header"; + + private final SettableMonotonicObservableSupplier mBravePageTitle = + ObservableSuppliers.createMonotonic(); + // Android Runtime for Chrome public static final String ARC_FEATURE = "org.chromium.arc"; public static final String ARC_DEVICE_MANAGEMENT_FEATURE = "org.chromium.arc.device_management"; @@ -61,61 +72,57 @@ public class BraveManageSyncSettings extends ManageSyncSettings { Log.i(TAG, message); } + @Override + public MonotonicObservableSupplier getPageTitle() { + return mBravePageTitle; + } + @VisibleForTesting @Override public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) { super.onCreatePreferences(savedInstanceState, rootKey); + mBravePageTitle.set(getString(R.string.sync_category_title)); + if (CommandLine.getInstance().hasSwitch(VERBOSE_SYNC_PASSWORDS_PREF_COMMAND_LINE_KEY)) { mVerboseSyncPasswordsPref = true; } - Preference reviewSyncData = findPreference(PREF_SYNC_REVIEW_DATA); - assert reviewSyncData != null : "Something has changed in the upstream!"; - if (reviewSyncData != null) { - getPreferenceScreen().removePreference(reviewSyncData); - } - - Preference turnOffSync = findPreference(PREF_TURN_OFF_SYNC); - assert turnOffSync != null : "Something has changed in the upstream!"; - if (turnOffSync != null) { - getPreferenceScreen().removePreference(turnOffSync); - } - - Preference syncReadingList = findPreference(PREF_SYNC_READING_LIST); - assert syncReadingList != null : "Something has changed in the upstream!"; - if (syncReadingList != null) { - syncReadingList.setVisible(false); - } - - Preference syncAutofill = findPreference(PREF_SYNC_AUTOFILL); - assert syncAutofill != null : "Something has changed in the upstream!"; - if (syncAutofill != null) { - syncAutofill.setTitle(R.string.brave_sync_autofill); - } - - assert mSyncEverything != null : "Something has changed in the upstream!"; - getPreferenceScreen().removePreference(mGoogleActivityControls); getPreferenceScreen().removePreference(mSyncEncryption); - findPreference(PREF_ADVANCED_CATEGORY).setVisible(false); + // Remove Google-specific preferences not needed for Brave Sync + removePreferenceByKey(PREF_CENTRAL_ACCOUNT_CARD_PREFERENCE); + removePreferenceByKey(PREF_ACCOUNT_DATA_DASHBOARD); + removePreferenceByKey(PREF_SIGN_OUT); + removePreferenceByKey(PREF_MANAGE_YOUR_GOOGLE_ACCOUNT); + removePreferenceByKey(PREF_ACCOUNT_ANDROID_DEVICE_ACCOUNTS); + removePreferenceByKey(PREF_BATCH_UPLOAD_CARD_PREFERENCE); + removePreferenceByKey(PREF_IDENTITY_ERROR_CARD_PREFERENCE); + removePreferenceByKey(PREF_ACCOUNT_SECTION_HEADER); + removePreferenceByKey(PREF_ACCOUNT_SECTION_FOOTER); + removePreferenceByKey(PREF_ACCOUNT_ADVANCED_HEADER); + Preference prefReadingList = findPreference(PREF_ACCOUNT_SECTION_READING_LIST_TOGGLE); + if (prefReadingList != null) prefReadingList.setVisible(false); - Preference syncPaymentsIntegration = findPreference(PREF_SYNC_PAYMENTS_INTEGRATION); - assert syncPaymentsIntegration != null : "Something has changed in the upstream!"; - if (syncPaymentsIntegration != null) { - syncPaymentsIntegration.setVisible(false); + Preference prefPayments = findPreference(PREF_ACCOUNT_SECTION_PAYMENTS_TOGGLE); + if (prefPayments != null) prefPayments.setVisible(false); + + Preference prefAutofill = findPreference(PREF_ACCOUNT_SECTION_ADDRESSES_TOGGLE); + if (prefAutofill != null) prefAutofill.setTitle(R.string.brave_sync_autofill); + + mPrefSyncPasswords = + (ChromeSwitchPreference) findPreference(PREF_ACCOUNT_SECTION_PASSWORDS_TOGGLE); + if (!isRunningOnChromeOS() && mPrefSyncPasswords != null) { + overrideWithAuthConfirmation(mPrefSyncPasswords); } + updateSyncPasswordsSummary(); + } - mPrefSyncPasswords = findPreference(PREF_SYNC_PASSWORDS); - assert mPrefSyncPasswords != null : "Something has changed in the upstream!"; - - // We cannot require Android screenlock if browser runs at ChromeOS - // Google App Runtime emulator, because it is managed by ChromeOS and - // not by the Android subsystem - if (!isRunningOnChromeOS()) { - overrideWithAuthConfirmationSyncPasswords(); - overrideWithAuthConfirmationSyncEverything(); + private void removePreferenceByKey(String key) { + Preference pref = findPreference(key); + if (pref != null) { + getPreferenceScreen().removePreference(pref); } } @@ -141,14 +148,6 @@ public class BraveManageSyncSettings extends ManageSyncSettings { .show(); } - private void overrideWithAuthConfirmationSyncPasswords() { - overrideWithAuthConfirmation(mPrefSyncPasswords); - } - - private void overrideWithAuthConfirmationSyncEverything() { - overrideWithAuthConfirmation(mSyncEverything); - } - private void overrideWithAuthConfirmation(ChromeSwitchPreference control) { Preference.OnPreferenceChangeListener origSyncListner = control.getOnPreferenceChangeListener(); @@ -263,6 +262,7 @@ public class BraveManageSyncSettings extends ManageSyncSettings { } private void updateSyncPasswordsSummary() { + if (mPrefSyncPasswords == null) return; if (ReauthenticationManager.isScreenLockSetUp(ContextUtils.getApplicationContext())) { verboseIfEnabled("updateSyncPasswordsSummary: screen lock is set up"); if (ReauthenticationManager.authenticationStillValid( diff --git a/android/java/res/xml/manage_sync_preferences.xml b/android/java/res/xml/manage_sync_preferences.xml deleted file mode 100644 index d826825a4b1..00000000000 --- a/android/java/res/xml/manage_sync_preferences.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index 8abcba0e830..47d580fad05 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -2371,11 +2371,6 @@ public class BytecodeTest { "org/chromium/chrome/browser/sync/settings/ManageSyncSettings", "mSyncEncryption")); - Assert.assertTrue( - fieldExists( - "org/chromium/chrome/browser/sync/settings/ManageSyncSettings", - "mSyncEverything")); - Assert.assertTrue( fieldExists( "org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator", diff --git a/android/javatests/org/chromium/chrome/browser/sync/BraveManageSyncSettingsTest.java b/android/javatests/org/chromium/chrome/browser/sync/BraveManageSyncSettingsTest.java index 83607ab999f..291116adbb0 100644 --- a/android/javatests/org/chromium/chrome/browser/sync/BraveManageSyncSettingsTest.java +++ b/android/javatests/org/chromium/chrome/browser/sync/BraveManageSyncSettingsTest.java @@ -50,20 +50,18 @@ public class BraveManageSyncSettingsTest { @Test @SmallTest @Feature({"Sync"}) - public void syncEverythingOrPasswordsHandlerIsOriginalOnChromeOS() { - syncEverythingOrPasswordsOverridden(true, false); + public void syncPasswordsHandlerIsOriginalOnChromeOS() { + syncPasswordsOverridden(true, false); } @Test @SmallTest @Feature({"Sync"}) - public void syncEverythingOrPasswordsHandlerOverriddenOnNonChromeOS() { - syncEverythingOrPasswordsOverridden(false, true); + public void syncPasswordsHandlerOverriddenOnNonChromeOS() { + syncPasswordsOverridden(false, true); } - void syncEverythingOrPasswordsOverridden( - Boolean isChromeOS, Boolean handlerShouldBeOverridden) { - + void syncPasswordsOverridden(Boolean isChromeOS, Boolean handlerShouldBeOverridden) { setupMockSyncService(); // The next line triggers presubmit warning @@ -85,21 +83,14 @@ public class BraveManageSyncSettingsTest { BraveManageSyncSettings fragment = startManageSyncPreferences(); ChromeSwitchPreference prefSyncPasswords = - fragment.findPreference(ManageSyncSettings.PREF_SYNC_PASSWORDS); - ChromeSwitchPreference syncEverything = - fragment.findPreference(ManageSyncSettings.PREF_SYNC_EVERYTHING); + fragment.findPreference(ManageSyncSettings.PREF_ACCOUNT_SECTION_PASSWORDS_TOGGLE); Preference.OnPreferenceChangeListener origSyncPasswordsListner = prefSyncPasswords.getOnPreferenceChangeListener(); - Preference.OnPreferenceChangeListener origSyncEverythingListner = - syncEverything.getOnPreferenceChangeListener(); Assert.assertEquals( handlerShouldBeOverridden, origSyncPasswordsListner != (Preference.OnPreferenceChangeListener) fragment); - Assert.assertEquals( - handlerShouldBeOverridden, - origSyncEverythingListner != (Preference.OnPreferenceChangeListener) fragment); } private BraveManageSyncSettings startManageSyncPreferences() { diff --git a/browser/ui/android/strings/android_brave_strings.grd b/browser/ui/android/strings/android_brave_strings.grd index 9f2adb1f4a7..1dadab3b298 100644 --- a/browser/ui/android/strings/android_brave_strings.grd +++ b/browser/ui/android/strings/android_brave_strings.grd @@ -3949,6 +3949,9 @@ If you don't accept this request, VPN will not reconnect and your internet conne Save changes + + Sync + diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveManageSyncSettingsClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveManageSyncSettingsClassAdapter.java index dade86a8485..0d2f3d5a126 100644 --- a/build/android/bytecode/java/org/brave/bytecode/BraveManageSyncSettingsClassAdapter.java +++ b/build/android/bytecode/java/org/brave/bytecode/BraveManageSyncSettingsClassAdapter.java @@ -24,8 +24,5 @@ public class BraveManageSyncSettingsClassAdapter extends BraveClassVisitor { deleteField(sBraveManageSyncSettingsClassName, "mSyncEncryption"); makeProtectedField(sManageSyncSettingsClassName, "mSyncEncryption"); - - deleteField(sBraveManageSyncSettingsClassName, "mSyncEverything"); - makeProtectedField(sManageSyncSettingsClassName, "mSyncEverything"); } }