Skip to content

Commit

Permalink
[Shopping] Gate access to SubscriptionsManager on feature flag
Browse files Browse the repository at this point in the history
Accessing the SubscriptionsManager for a profile causes it to be
created if it hasn't been already. In turn this fetches subscriptions
from the server. This patch gates access (and therefore creation) of
the SubscriptionsManager unless a feature that uses it is enabled.

(cherry picked from commit 0c2b60e)

Bug: 1290918
Change-Id: I0f578ca5a2a6044d45d779e9ad7be8d186f0815d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3417239
Reviewed-by: Brandon Wylie <wylieb@chromium.org>
Reviewed-by: Zhiyuan Cai <zhiyuancai@chromium.org>
Auto-Submit: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Theresa Sullivan <twellington@chromium.org>
Commit-Queue: Theresa Sullivan <twellington@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#965913}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3455311
Reviewed-by: Krishna Govind <govind@chromium.org>
Commit-Queue: Krishna Govind <govind@chromium.org>
Owners-Override: Krishna Govind <govind@chromium.org>
Cr-Commit-Position: refs/branch-heads/4758@{#1142}
Cr-Branched-From: 4a2cf4b-refs/heads/main@{#950365}
  • Loading branch information
iotitan authored and Chromium LUCI CQ committed Feb 11, 2022
1 parent fd31e99 commit 5de07f1
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
import org.chromium.chrome.browser.commerce.shopping_list.ShoppingFeatures;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
Expand Down Expand Up @@ -1748,7 +1749,10 @@ private void maybeOnScreenSizeChange() {
display.addObserver(mDisplayAndroidObserver);

CommerceSubscriptionsServiceFactory factory = new CommerceSubscriptionsServiceFactory();
mSubscriptionsManager = factory.getForLastUsedProfile().getSubscriptionsManager();

if (ShoppingFeatures.isShoppingListEnabled()) {
mSubscriptionsManager = factory.getForLastUsedProfile().getSubscriptionsManager();
}
}

// Make sure the user is reporting into one of the feed spinner groups, so that we can
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@
import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.bookmarks.BookmarkListEntry.ViewType;
import org.chromium.chrome.browser.bookmarks.BookmarkRow.Location;
import org.chromium.chrome.browser.commerce.shopping_list.ShoppingFeatures;
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.power_bookmarks.PowerBookmarkMeta;
import org.chromium.chrome.browser.power_bookmarks.PowerBookmarkType;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
import org.chromium.chrome.browser.sync.SyncService;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.signin.PersonalizedSigninPromoView;
Expand Down Expand Up @@ -75,6 +77,8 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
// Keep track of the currently highlighted bookmark - used for "show in folder" action.
private BookmarkId mHighlightedBookmark;

private SubscriptionsManager mSubscriptionsManager;

private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObserver() {
@Override
public void bookmarkNodeChanged(BookmarkItem node) {
Expand Down Expand Up @@ -132,6 +136,11 @@ public void bookmarkModelChanged() {
GlobalDiscardableReferencePool.getReferencePool());
mCommerceSubscriptionsServiceFactory = new CommerceSubscriptionsServiceFactory();
mSnackbarManager = snackbarManager;

if (ShoppingFeatures.isShoppingListEnabled()) {
mSubscriptionsManager = mCommerceSubscriptionsServiceFactory.getForLastUsedProfile()
.getSubscriptionsManager();
}
}

/**
Expand Down Expand Up @@ -247,9 +256,7 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, @ViewType int viewType) {
if (BookmarkFeatures.isBookmarksVisualRefreshEnabled()) {
vh = createViewHolderHelper(parent, R.layout.power_bookmark_shopping_item_row);
((PowerBookmarkShoppingItemRow) vh.itemView)
.init(mImageFetcher, mDelegate.getModel(),
mCommerceSubscriptionsServiceFactory.getForLastUsedProfile()
.getSubscriptionsManager(),
.init(mImageFetcher, mDelegate.getModel(), mSubscriptionsManager,
mSnackbarManager);
} else {
vh = createViewHolderHelper(parent, R.layout.bookmark_item_row);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public class BookmarkSaveFlowCoordinator {
*/
public BookmarkSaveFlowCoordinator(@NonNull Context context,
@NonNull BottomSheetController bottomSheetController,
@NonNull SubscriptionsManager subscriptionsManager,
@Nullable SubscriptionsManager subscriptionsManager,
@NonNull UserEducationHelper userEducationHelper) {
mContext = context;
mBottomSheetController = bottomSheetController;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ public class BookmarkSaveFlowMediator extends BookmarkModelObserver {
* @param subscriptionsManager Used to manage the price-tracking subscriptions.
*/
public BookmarkSaveFlowMediator(BookmarkModel bookmarkModel, PropertyModel propertyModel,
Context context, Runnable closeRunnable, SubscriptionsManager subscriptionsManager) {
Context context, Runnable closeRunnable,
@Nullable SubscriptionsManager subscriptionsManager) {
mBookmarkModel = bookmarkModel;
mBookmarkModel.addObserver(this);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.subscriptions.CommerceSubscriptionsServiceFactory;
import org.chromium.chrome.browser.subscriptions.SubscriptionsManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
Expand Down Expand Up @@ -161,12 +162,16 @@ private static void showBookmarkBottomSheet(BookmarkModel bookmarkModel, Tab tab
public static void showSaveFlow(@NonNull Activity activity,
@NonNull BottomSheetController bottomSheetController, boolean fromExplicitTrackUi,
@NonNull BookmarkId bookmarkId, boolean wasBookmarkMoved) {
SubscriptionsManager subscriptionService = null;
if (ShoppingFeatures.isShoppingListEnabled()) {
subscriptionService = new CommerceSubscriptionsServiceFactory()
.getForLastUsedProfile()
.getSubscriptionsManager();
}

BookmarkSaveFlowCoordinator bookmarkSaveFlowCoordinator =
new BookmarkSaveFlowCoordinator(activity, bottomSheetController,
new CommerceSubscriptionsServiceFactory()
.getForLastUsedProfile()
.getSubscriptionsManager(),
new UserEducationHelper(activity, new Handler()));
subscriptionService, new UserEducationHelper(activity, new Handler()));
bookmarkSaveFlowCoordinator.show(bookmarkId, fromExplicitTrackUi, wasBookmarkMoved);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ public static boolean isPriceTrackingEligible(@Nullable Tab tab) {
* @param enabled Whether price-tracking should be enabled.
* @param callback The status callback.
*/
public static void setPriceTrackingEnabled(@NonNull SubscriptionsManager subscriptionsManager,
public static void setPriceTrackingEnabled(@Nullable SubscriptionsManager subscriptionsManager,
@NonNull BookmarkBridge bookmarkBridge, @Nullable BookmarkId bookmarkId,
boolean enabled, Callback<Integer> callback) {
if (bookmarkId == null) return;
if (bookmarkId == null || subscriptionsManager == null) return;

PowerBookmarkMeta meta = bookmarkBridge.getPowerBookmarkMeta(bookmarkId);
if (meta == null || meta.getType() != PowerBookmarkType.SHOPPING) return;
Expand Down Expand Up @@ -113,7 +113,7 @@ public static void setPriceTrackingEnabled(@NonNull SubscriptionsManager subscri
* retries on failure.
*/
public static void setPriceTrackingEnabledWithSnackbars(
@NonNull SubscriptionsManager subscriptionsManager,
@Nullable SubscriptionsManager subscriptionsManager,
@NonNull BookmarkBridge bookmarkBridge, @Nullable BookmarkId bookmarkId,
boolean enabled, SnackbarManager snackbarManager, Resources resources,
Callback<Integer> callback) {
Expand Down

0 comments on commit 5de07f1

Please sign in to comment.