Commit b6714ec1 authored by Ehimare Okoyomon's avatar Ehimare Okoyomon Committed by Commit Bot

Add click listener for incognito cookie controls icon

Add click listener for cookie controls icon to take the user to Cookie
Settings page.

Bug: 1040091
Change-Id: I7143cff849ac140a79dfa638acdc0f1ad8c2adcc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2091530Reviewed-by: default avatarChristian Dullweber <dullweber@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Ehimare Okoyomon <eokoyomon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748176}
parent d9569a65
...@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.tasks; ...@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.tasks;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_CLICK_LISTENER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_CLICK_LISTENER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_TEXT_WATCHER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_TEXT_WATCHER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_MANAGER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_MANAGER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER;
...@@ -98,6 +99,7 @@ class TasksSurfaceMediator { ...@@ -98,6 +99,7 @@ class TasksSurfaceMediator {
mIncognitoCookieControlsManager.addObserver(mIncognitoCookieControlsObserver); mIncognitoCookieControlsManager.addObserver(mIncognitoCookieControlsObserver);
mModel.set( mModel.set(
INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER, mIncognitoCookieControlsManager); INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER, mIncognitoCookieControlsManager);
mModel.set(INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER, mIncognitoCookieControlsManager);
// Set the initial state. // Set the initial state.
mModel.set(IS_FAKE_SEARCH_BOX_VISIBLE, true); mModel.set(IS_FAKE_SEARCH_BOX_VISIBLE, true);
......
...@@ -35,6 +35,9 @@ public class TasksSurfaceProperties { ...@@ -35,6 +35,9 @@ public class TasksSurfaceProperties {
public static final PropertyModel public static final PropertyModel
.WritableBooleanPropertyKey INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY = .WritableBooleanPropertyKey INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY =
new PropertyModel.WritableBooleanPropertyKey(); new PropertyModel.WritableBooleanPropertyKey();
public static final PropertyModel.WritableObjectPropertyKey<View.OnClickListener>
INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER =
new PropertyModel.WritableObjectPropertyKey<View.OnClickListener>();
public static final PropertyModel public static final PropertyModel
.WritableBooleanPropertyKey INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED = .WritableBooleanPropertyKey INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED =
new PropertyModel.WritableBooleanPropertyKey(); new PropertyModel.WritableBooleanPropertyKey();
...@@ -66,7 +69,8 @@ public class TasksSurfaceProperties { ...@@ -66,7 +69,8 @@ public class TasksSurfaceProperties {
public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {IS_FAKE_SEARCH_BOX_VISIBLE, public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {IS_FAKE_SEARCH_BOX_VISIBLE,
IS_INCOGNITO, IS_INCOGNITO_DESCRIPTION_INITIALIZED, IS_INCOGNITO_DESCRIPTION_VISIBLE, IS_INCOGNITO, IS_INCOGNITO_DESCRIPTION_INITIALIZED, IS_INCOGNITO_DESCRIPTION_VISIBLE,
IS_TAB_CAROUSEL_VISIBLE, IS_VOICE_RECOGNITION_BUTTON_VISIBLE, IS_TAB_CAROUSEL_VISIBLE, IS_VOICE_RECOGNITION_BUTTON_VISIBLE,
INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY, INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED, INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY,
INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER, INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED,
INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER, INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER,
INCOGNITO_COOKIE_CONTROLS_TOGGLE_ENFORCEMENT, INCOGNITO_COOKIE_CONTROLS_MANAGER, INCOGNITO_COOKIE_CONTROLS_TOGGLE_ENFORCEMENT, INCOGNITO_COOKIE_CONTROLS_MANAGER,
INCOGNITO_LEARN_MORE_CLICK_LISTENER, FAKE_SEARCH_BOX_CLICK_LISTENER, INCOGNITO_LEARN_MORE_CLICK_LISTENER, FAKE_SEARCH_BOX_CLICK_LISTENER,
......
...@@ -43,6 +43,7 @@ class TasksView extends CoordinatorLayoutForPointer { ...@@ -43,6 +43,7 @@ class TasksView extends CoordinatorLayoutForPointer {
private OnCheckedChangeListener mIncognitoCookieControlsToggleCheckedListener; private OnCheckedChangeListener mIncognitoCookieControlsToggleCheckedListener;
private @CookieControlsEnforcement int mIncognitoCookieControlsToggleEnforcement = private @CookieControlsEnforcement int mIncognitoCookieControlsToggleEnforcement =
CookieControlsEnforcement.NO_ENFORCEMENT; CookieControlsEnforcement.NO_ENFORCEMENT;
private View.OnClickListener mIncognitoCookieControlsIconClickListener;
/** Default constructor needed to inflate via XML. */ /** Default constructor needed to inflate via XML. */
public TasksView(Context context, AttributeSet attrs) { public TasksView(Context context, AttributeSet attrs) {
...@@ -169,16 +170,17 @@ class TasksView extends CoordinatorLayoutForPointer { ...@@ -169,16 +170,17 @@ class TasksView extends CoordinatorLayoutForPointer {
mIncognitoDescriptionView = (IncognitoDescriptionView) stub.inflate(); mIncognitoDescriptionView = (IncognitoDescriptionView) stub.inflate();
if (mIncognitoDescriptionLearnMoreListener != null) { if (mIncognitoDescriptionLearnMoreListener != null) {
setIncognitoDescriptionLearnMoreClickListener(mIncognitoDescriptionLearnMoreListener); setIncognitoDescriptionLearnMoreClickListener(mIncognitoDescriptionLearnMoreListener);
mIncognitoDescriptionLearnMoreListener = null;
} }
setIncognitoCookieControlsCardVisibility(mIncognitoCookieControlsCardIsVisible); setIncognitoCookieControlsCardVisibility(mIncognitoCookieControlsCardIsVisible);
setIncognitoCookieControlsToggleChecked(mIncognitoCookieControlsToggleIsChecked); setIncognitoCookieControlsToggleChecked(mIncognitoCookieControlsToggleIsChecked);
if (mIncognitoCookieControlsToggleCheckedListener != null) { if (mIncognitoCookieControlsToggleCheckedListener != null) {
setIncognitoCookieControlsToggleCheckedListener( setIncognitoCookieControlsToggleCheckedListener(
mIncognitoCookieControlsToggleCheckedListener); mIncognitoCookieControlsToggleCheckedListener);
mIncognitoCookieControlsToggleCheckedListener = null;
} }
setIncognitoCookieControlsToggleEnforcement(mIncognitoCookieControlsToggleEnforcement); setIncognitoCookieControlsToggleEnforcement(mIncognitoCookieControlsToggleEnforcement);
if (mIncognitoCookieControlsIconClickListener != null) {
setIncognitoCookieControlsIconClickListener(mIncognitoCookieControlsIconClickListener);
}
} }
/** /**
...@@ -194,11 +196,11 @@ class TasksView extends CoordinatorLayoutForPointer { ...@@ -194,11 +196,11 @@ class TasksView extends CoordinatorLayoutForPointer {
* @param listener The given click listener. * @param listener The given click listener.
*/ */
void setIncognitoDescriptionLearnMoreClickListener(View.OnClickListener listener) { void setIncognitoDescriptionLearnMoreClickListener(View.OnClickListener listener) {
if (mIncognitoDescriptionView == null) { mIncognitoDescriptionLearnMoreListener = listener;
mIncognitoDescriptionLearnMoreListener = listener; if (mIncognitoDescriptionView != null) {
return; mIncognitoDescriptionView.findViewById(R.id.learn_more).setOnClickListener(listener);
mIncognitoDescriptionLearnMoreListener = null;
} }
mIncognitoDescriptionView.findViewById(R.id.learn_more).setOnClickListener(listener);
} }
/** /**
...@@ -231,6 +233,7 @@ class TasksView extends CoordinatorLayoutForPointer { ...@@ -231,6 +233,7 @@ class TasksView extends CoordinatorLayoutForPointer {
mIncognitoCookieControlsToggleCheckedListener = listener; mIncognitoCookieControlsToggleCheckedListener = listener;
if (mIncognitoDescriptionView != null) { if (mIncognitoDescriptionView != null) {
mIncognitoDescriptionView.setCookieControlsToggleOnCheckedChangeListener(listener); mIncognitoDescriptionView.setCookieControlsToggleOnCheckedChangeListener(listener);
mIncognitoCookieControlsToggleCheckedListener = null;
} }
} }
...@@ -244,4 +247,16 @@ class TasksView extends CoordinatorLayoutForPointer { ...@@ -244,4 +247,16 @@ class TasksView extends CoordinatorLayoutForPointer {
mIncognitoDescriptionView.setCookieControlsEnforcement(enforcement); mIncognitoDescriptionView.setCookieControlsEnforcement(enforcement);
} }
} }
/**
* Set the incognito cookie controls icon click listener.
* @param listener The given onclick listener.
*/
void setIncognitoCookieControlsIconClickListener(OnClickListener listener) {
mIncognitoCookieControlsIconClickListener = listener;
if (mIncognitoDescriptionView != null) {
mIncognitoDescriptionView.setCookieControlsIconOnclickListener(listener);
mIncognitoCookieControlsIconClickListener = null;
}
}
} }
...@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.tasks; ...@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.tasks;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_CLICK_LISTENER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_CLICK_LISTENER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_TEXT_WATCHER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.FAKE_SEARCH_BOX_TEXT_WATCHER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_MANAGER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_MANAGER;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER; import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER;
...@@ -37,6 +38,9 @@ class TasksViewBinder { ...@@ -37,6 +38,9 @@ class TasksViewBinder {
} else if (propertyKey == INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY) { } else if (propertyKey == INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY) {
view.setIncognitoCookieControlsCardVisibility( view.setIncognitoCookieControlsCardVisibility(
model.get(INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY)); model.get(INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY));
} else if (propertyKey == INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER) {
view.setIncognitoCookieControlsIconClickListener(
model.get(INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER));
} else if (propertyKey == INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED) { } else if (propertyKey == INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED) {
view.setIncognitoCookieControlsToggleChecked( view.setIncognitoCookieControlsToggleChecked(
model.get(INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED)); model.get(INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED));
......
...@@ -4,14 +4,19 @@ ...@@ -4,14 +4,19 @@
package org.chromium.chrome.browser.ntp; package org.chromium.chrome.browser.ntp;
import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.CompoundButton.OnCheckedChangeListener;
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.settings.SettingsLauncher;
import org.chromium.chrome.browser.settings.website.CookieControlsServiceBridge; import org.chromium.chrome.browser.settings.website.CookieControlsServiceBridge;
import org.chromium.chrome.browser.settings.website.CookieControlsServiceBridge.CookieControlsServiceObserver; import org.chromium.chrome.browser.settings.website.CookieControlsServiceBridge.CookieControlsServiceObserver;
import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
import org.chromium.components.content_settings.CookieControlsEnforcement; import org.chromium.components.content_settings.CookieControlsEnforcement;
/** /**
...@@ -22,7 +27,7 @@ import org.chromium.components.content_settings.CookieControlsEnforcement; ...@@ -22,7 +27,7 @@ import org.chromium.components.content_settings.CookieControlsEnforcement;
* cookie controls view. * cookie controls view.
*/ */
public class IncognitoCookieControlsManager public class IncognitoCookieControlsManager
implements CookieControlsServiceObserver, OnCheckedChangeListener { implements CookieControlsServiceObserver, OnCheckedChangeListener, View.OnClickListener {
/** /**
* Interface for a class that wants to receive updates from this manager. * Interface for a class that wants to receive updates from this manager.
*/ */
...@@ -96,9 +101,20 @@ public class IncognitoCookieControlsManager ...@@ -96,9 +101,20 @@ public class IncognitoCookieControlsManager
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (mShowCard && mEnforcement == CookieControlsEnforcement.NO_ENFORCEMENT if (mEnforcement == CookieControlsEnforcement.NO_ENFORCEMENT
&& (buttonView.getId() == R.id.cookie_controls_card_toggle)) { && (buttonView.getId() == R.id.cookie_controls_card_toggle)) {
mServiceBridge.handleCookieControlsToggleChanged(isChecked); mServiceBridge.handleCookieControlsToggleChanged(isChecked);
} }
} }
@Override
public void onClick(View v) {
if (v.getId() == R.id.cookie_controls_card_managed_icon) {
Bundle fragmentArguments = new Bundle();
fragmentArguments.putString(SingleCategorySettings.EXTRA_CATEGORY,
SiteSettingsCategory.preferenceKey(SiteSettingsCategory.Type.COOKIES));
SettingsLauncher.getInstance().launchSettingsPage(
v.getContext(), SingleCategorySettings.class, fragmentArguments);
}
}
} }
...@@ -85,6 +85,14 @@ public class IncognitoDescriptionView extends LinearLayout { ...@@ -85,6 +85,14 @@ public class IncognitoDescriptionView extends LinearLayout {
mCookieControlsToggle.setChecked(enabled); mCookieControlsToggle.setChecked(enabled);
} }
/**
* Set cookie controls icon on click listener.
* @param listener The given listener.
*/
public void setCookieControlsIconOnclickListener(OnClickListener listener) {
mCookieControlsManagedIcon.setOnClickListener(listener);
}
@Override @Override
protected void onFinishInflate() { protected void onFinishInflate() {
super.onFinishInflate(); super.onFinishInflate();
......
...@@ -93,6 +93,8 @@ public class IncognitoNewTabPage ...@@ -93,6 +93,8 @@ public class IncognitoNewTabPage
mCookieControlsManager.addObserver(mCookieControlsObserver); mCookieControlsManager.addObserver(mCookieControlsObserver);
mIncognitoNewTabPageView.setIncognitoCookieControlsToggleCheckedListener( mIncognitoNewTabPageView.setIncognitoCookieControlsToggleCheckedListener(
mCookieControlsManager); mCookieControlsManager);
mIncognitoNewTabPageView.setIncognitoCookieControlsIconOnclickListener(
mCookieControlsManager);
mCookieControlsManager.updateIfNecessary(); mCookieControlsManager.updateIfNecessary();
} }
......
...@@ -160,4 +160,12 @@ public class IncognitoNewTabPageView extends FrameLayout { ...@@ -160,4 +160,12 @@ public class IncognitoNewTabPageView extends FrameLayout {
void setIncognitoCookieControlsToggleEnforcement(@CookieControlsEnforcement int enforcement) { void setIncognitoCookieControlsToggleEnforcement(@CookieControlsEnforcement int enforcement) {
mDescriptionView.setCookieControlsEnforcement(enforcement); mDescriptionView.setCookieControlsEnforcement(enforcement);
} }
/**
* Set the incognito cookie controls icon click listener.
* @param listener The given onclick listener.
*/
void setIncognitoCookieControlsIconOnclickListener(OnClickListener listener) {
mDescriptionView.setCookieControlsIconOnclickListener(listener);
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment