Disable-promos-displayed-in-bookmarks-manager.patch

This commit is contained in:
none 2021-03-01 09:01:44 +01:00
parent 90932c9a85
commit aa794b542b

View file

@ -5,73 +5,14 @@ Subject: Disable promos displayed in bookmarks manager
Remove personalized signin promo view from
bookmarks, never reach signin thresholds.
---
chrome/android/chrome_java_resources.gni | 1 -
...rsonalized_signin_promo_view_bookmarks.xml | 30 -----
.../bookmarks/BookmarkItemsAdapter.java | 30 +----
.../bookmarks/BookmarkPromoHeader.java | 121 +-----------------
.../browser/signin/SigninPromoController.java | 23 +---
5 files changed, 5 insertions(+), 200 deletions(-)
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
.../bookmarks/BookmarkItemsAdapter.java | 29 +----
.../bookmarks/BookmarkPromoHeader.java | 123 +-----------------
2 files changed, 4 insertions(+), 148 deletions(-)
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -934,7 +934,6 @@ chrome_java_resources = [
"java/res/layout/passwords_error_dialog.xml",
"java/res/layout/passwords_progress_dialog.xml",
"java/res/layout/personalized_signin_promo_view_body.xml",
- "java/res/layout/personalized_signin_promo_view_bookmarks.xml",
"java/res/layout/personalized_signin_promo_view_header.xml",
"java/res/layout/personalized_signin_promo_view_modern_content_suggestions.xml",
"java/res/layout/personalized_signin_promo_view_recent_tabs.xml",
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
deleted file mode 100644
--- a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 The Chromium Authors. All rights reserved.
- Use of this source code is governed by a BSD-style license that can be
- found in the LICENSE file. -->
-
-<org.chromium.chrome.browser.signin.PersonalizedSigninPromoView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/signin_promo_view_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:background="@drawable/hairline_border_card_background"
- android:gravity="center_horizontal"
- android:orientation="vertical"
- android:paddingBottom="12dp"
- android:paddingTop="14dp"
- android:paddingStart="16dp"
- android:paddingEnd="16dp">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="12dp">
-
- <include layout="@layout/personalized_signin_promo_view_header"/>
- </FrameLayout>
-
- <include layout="@layout/personalized_signin_promo_view_body"/>
-
-</org.chromium.chrome.browser.signin.PersonalizedSigninPromoView>
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
@@ -25,7 +25,6 @@ import org.chromium.chrome.browser.bookmarks.BookmarkListEntry.ViewType;
import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location;
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
@@ -51,7 +50,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -51,7 +51,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@ViewType
private int mPromoHeaderType = ViewType.INVALID;
private BookmarkDelegate mDelegate;
@ -79,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private String mSearchText;
private BookmarkId mCurrentFolder;
private ProfileSyncService mProfileSyncService;
@@ -183,9 +181,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -183,9 +182,9 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
case ViewType.PERSONALIZED_SIGNIN_PROMO:
// fall through
case ViewType.PERSONALIZED_SYNC_PROMO:
@ -91,7 +32,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
case ViewType.SECTION_HEADER:
return createSectionHeaderViewHolder(parent, viewType);
case ViewType.FOLDER:
@@ -205,11 +203,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -205,11 +204,7 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (holder.getItemViewType() == ViewType.PERSONALIZED_SIGNIN_PROMO) {
@ -103,7 +44,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
} else if (holder.getItemViewType() == ViewType.SECTION_HEADER) {
bindSectionHeaderViewHolder(holder.itemView, getItemByPosition(position));
} else if (BookmarkListEntry.isBookmarkEntry(holder.getItemViewType())) {
@@ -257,7 +251,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -262,7 +257,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
case ViewType.PERSONALIZED_SIGNIN_PROMO:
// fall through
case ViewType.PERSONALIZED_SYNC_PROMO:
@ -111,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
break;
default:
// Other view holders don't have special recycling code.
@@ -283,7 +276,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -288,7 +282,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
updateHeader(!topLevelFoldersShowing());
};
@ -119,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
populateTopLevelFoldersList();
mElements = new ArrayList<>();
@@ -298,7 +290,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -303,7 +296,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
mDelegate.getSelectionDelegate().removeObserver(this);
mDelegate = null;
@ -127,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
mProfileSyncService.removeSyncStateChangedListener(this);
}
@@ -421,23 +412,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
@@ -426,23 +418,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
return;
} else if (currentUIState == BookmarkUIState.STATE_SEARCHING) {
mPromoHeaderType = ViewType.INVALID;
@ -154,32 +95,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
@@ -21,15 +21,9 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.IdentityServicesProvider;
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
import org.chromium.chrome.browser.signin.ProfileDataCache;
-import org.chromium.chrome.browser.signin.SigninManager;
-import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.chrome.browser.signin.SigninPromoController;
-import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.signin.SyncPromoView;
-import org.chromium.chrome.browser.sync.AndroidSyncSettings;
-import org.chromium.chrome.browser.sync.AndroidSyncSettings.AndroidSyncSettingsObserver;
import org.chromium.components.signin.AccountManagerFacade;
import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountsChangeObserver;
@@ -44,7 +38,7 @@ import java.lang.annotation.RetentionPolicy;
@@ -43,9 +43,7 @@ import java.lang.annotation.RetentionPolicy;
* Class that manages all the logic and UI behind the signin promo header in the bookmark
* content UI. The header is shown only on certain situations, (e.g., not signed in).
*/
-class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObserver,
+class BookmarkPromoHeader implements
ProfileDataCache.Observer, AccountsChangeObserver {
-class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener,
- SignInStateObserver, ProfileDataCache.Observer,
- AccountsChangeObserver {
+class BookmarkPromoHeader implements ProfileDataCache.Observer, AccountsChangeObserver {
/**
* Specifies the various states in which the Bookmarks promo can be.
@@ -65,7 +59,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
*/
@@ -65,14 +63,12 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
private static @Nullable @PromoState Integer sPromoStateForTests;
private final Context mContext;
@ -187,11 +114,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private final AccountManagerFacade mAccountManagerFacade;
private final Runnable mPromoHeaderChangeAction;
@@ -81,12 +74,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
private @Nullable ProfileDataCache mProfileDataCache;
private final @Nullable SigninPromoController mSigninPromoController;
private @PromoState int mPromoState;
- private final @Nullable ProfileSyncService mProfileSyncService;
/**
* Initializes the class. Note that this will start listening to signin related events and
@@ -82,13 +78,6 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
mContext = context;
mPromoHeaderChangeAction = promoHeaderChangeAction;
- AndroidSyncSettings.get().registerObserver(this);
- mProfileSyncService = ProfileSyncService.get();
- if (mProfileSyncService != null) mProfileSyncService.addSyncStateChangedListener(this);
-
- mSignInManager = IdentityServicesProvider.get().getSigninManager(
- Profile.getLastUsedRegularProfile());
@ -200,11 +135,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
mAccountManagerFacade = AccountManagerFacadeProvider.getInstance();
mPromoState = calculatePromoState();
@@ -111,15 +98,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
@@ -114,15 +103,11 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
* Clean ups the class. Must be called once done using this class.
*/
void destroy() {
- AndroidSyncSettings.get().unregisterObserver(this);
- if (mProfileSyncService != null) mProfileSyncService.removeSyncStateChangedListener(this);
-
if (mSigninPromoController != null) {
mAccountManagerFacade.removeObserver(this);
@ -216,7 +151,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
}
/**
@@ -130,18 +113,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
@@ -133,18 +118,6 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
return mPromoState;
}
@ -235,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* @return Sync promo header {@link ViewHolder} instance that can be used with
* {@link RecyclerView}.
@@ -153,54 +124,11 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
@@ -156,54 +129,11 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
return new ViewHolder(view) {};
}
@ -291,40 +226,44 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
}
private @PromoState int calculatePromoState() {
@@ -208,53 +136,9 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
@@ -211,57 +141,9 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
return sPromoStateForTests;
}
- if (!AndroidSyncSettings.get().doesMasterSyncSettingAllowChromeSync()) {
- if (mProfileSyncService == null) {
- // |mProfileSyncService| will remain null until the next browser startup, so no sense in
- // offering any promo.
- return PromoState.PROMO_NONE;
- }
-
- if (!mProfileSyncService.isSyncAllowedByPlatform()) {
- return PromoState.PROMO_NONE;
- }
-
- if (!mSignInManager.getIdentityManager().hasPrimaryAccount()) {
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY)) {
- CoreAccountInfo primaryAccount =
- mSignInManager.getIdentityManager().getPrimaryAccountInfo(
- ConsentLevel.NOT_REQUIRED);
- if (primaryAccount != null && !wasPersonalizedSigninPromoDeclined()) {
- return PromoState.PROMO_SYNC_PERSONALIZED;
- }
- if (!shouldShowBookmarkSigninPromo()) {
- return PromoState.PROMO_NONE;
- }
- return shouldShowBookmarkSigninPromo() ? PromoState.PROMO_SIGNIN_PERSONALIZED
- : PromoState.PROMO_NONE;
- CoreAccountInfo primaryAccount =
- mSignInManager.getIdentityManager().getPrimaryAccountInfo(
- ConsentLevel.NOT_REQUIRED);
- return primaryAccount == null ? PromoState.PROMO_SIGNIN_PERSONALIZED
- : PromoState.PROMO_SYNC_PERSONALIZED;
- }
-
- boolean impressionLimitNotReached =
- SharedPreferencesManager.getInstance().readInt(
- ChromePreferenceKeys.SIGNIN_AND_SYNC_PROMO_SHOW_COUNT)
- < MAX_SIGNIN_AND_SYNC_PROMO_SHOW_COUNT;
- if (!AndroidSyncSettings.get().isChromeSyncEnabled() && impressionLimitNotReached) {
- if (!mProfileSyncService.isSyncRequested() && impressionLimitNotReached) {
- return PromoState.PROMO_SYNC;
- }
return PromoState.PROMO_NONE;
}
- // AndroidSyncSettingsObserver implementation.
- // ProfileSyncService.SyncStateChangedListener implementation.
- @Override
- public void androidSyncSettingsChanged() {
- public void syncStateChanged() {
- mPromoState = calculatePromoState();
- triggerPromoUpdate();
- }
@ -344,8 +283,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
-
// ProfileDataCache.Observer implementation.
@Override
public void onProfileDataUpdated(String accountId) {
@@ -268,7 +152,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
public void onProfileDataUpdated(String accountEmail) {
@@ -275,7 +157,6 @@ class BookmarkPromoHeader implements ProfileSyncService.SyncStateChangedListener
}
private void triggerPromoUpdate() {
@ -353,39 +292,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
mPromoHeaderChangeAction.run();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
@@ -70,28 +70,7 @@ public class SigninPromoController {
* @param accessPoint The access point for which the impression limit is being checked.
*/
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
- SharedPreferencesManager preferencesManager = SharedPreferencesManager.getInstance();
- switch (accessPoint) {
- case SigninAccessPoint.BOOKMARK_MANAGER:
- return getSigninPromoImpressionsCountBookmarks() < MAX_IMPRESSIONS_BOOKMARKS;
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
- int maxImpressions = ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
- ChromeFeatureList.ENHANCED_PROTECTION_PROMO_CARD,
- "MaxSigninPromoImpressions", Integer.MAX_VALUE);
- return SharedPreferencesManager.getInstance().readInt(
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP)
- < maxImpressions;
- case SigninAccessPoint.RECENT_TABS:
- // There is no impression limit for Recent Tabs.
- return true;
- case SigninAccessPoint.SETTINGS:
- return preferencesManager.readInt(
- ChromePreferenceKeys.SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS)
- < MAX_IMPRESSIONS_SETTINGS;
- default:
- assert false : "Unexpected value for access point: " + accessPoint;
- return false;
- }
+ return false;
}
/**
--
2.17.1