Преглед изворни кода

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

none пре 4 година
родитељ
комит
aa794b542b
1 измењених фајлова са 51 додато и 145 уклоњено
  1. 51 145
      build/patches/Disable-promos-displayed-in-bookmarks-manager.patch

+ 51 - 145
build/patches/Disable-promos-displayed-in-bookmarks-manager.patch

@@ -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