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;
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.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_TOGGLE_CHECKED;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER;
......@@ -98,6 +99,7 @@ class TasksSurfaceMediator {
mIncognitoCookieControlsManager.addObserver(mIncognitoCookieControlsObserver);
mModel.set(
INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER, mIncognitoCookieControlsManager);
mModel.set(INCOGNITO_COOKIE_CONTROLS_ICON_CLICK_LISTENER, mIncognitoCookieControlsManager);
// Set the initial state.
mModel.set(IS_FAKE_SEARCH_BOX_VISIBLE, true);
......
......@@ -35,6 +35,9 @@ public class TasksSurfaceProperties {
public static final PropertyModel
.WritableBooleanPropertyKey INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY =
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
.WritableBooleanPropertyKey INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED =
new PropertyModel.WritableBooleanPropertyKey();
......@@ -66,7 +69,8 @@ public class TasksSurfaceProperties {
public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {IS_FAKE_SEARCH_BOX_VISIBLE,
IS_INCOGNITO, IS_INCOGNITO_DESCRIPTION_INITIALIZED, IS_INCOGNITO_DESCRIPTION_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_ENFORCEMENT, INCOGNITO_COOKIE_CONTROLS_MANAGER,
INCOGNITO_LEARN_MORE_CLICK_LISTENER, FAKE_SEARCH_BOX_CLICK_LISTENER,
......
......@@ -43,6 +43,7 @@ class TasksView extends CoordinatorLayoutForPointer {
private OnCheckedChangeListener mIncognitoCookieControlsToggleCheckedListener;
private @CookieControlsEnforcement int mIncognitoCookieControlsToggleEnforcement =
CookieControlsEnforcement.NO_ENFORCEMENT;
private View.OnClickListener mIncognitoCookieControlsIconClickListener;
/** Default constructor needed to inflate via XML. */
public TasksView(Context context, AttributeSet attrs) {
......@@ -169,16 +170,17 @@ class TasksView extends CoordinatorLayoutForPointer {
mIncognitoDescriptionView = (IncognitoDescriptionView) stub.inflate();
if (mIncognitoDescriptionLearnMoreListener != null) {
setIncognitoDescriptionLearnMoreClickListener(mIncognitoDescriptionLearnMoreListener);
mIncognitoDescriptionLearnMoreListener = null;
}
setIncognitoCookieControlsCardVisibility(mIncognitoCookieControlsCardIsVisible);
setIncognitoCookieControlsToggleChecked(mIncognitoCookieControlsToggleIsChecked);
if (mIncognitoCookieControlsToggleCheckedListener != null) {
setIncognitoCookieControlsToggleCheckedListener(
mIncognitoCookieControlsToggleCheckedListener);
mIncognitoCookieControlsToggleCheckedListener = null;
}
setIncognitoCookieControlsToggleEnforcement(mIncognitoCookieControlsToggleEnforcement);
if (mIncognitoCookieControlsIconClickListener != null) {
setIncognitoCookieControlsIconClickListener(mIncognitoCookieControlsIconClickListener);
}
}
/**
......@@ -194,11 +196,11 @@ class TasksView extends CoordinatorLayoutForPointer {
* @param listener The given click listener.
*/
void setIncognitoDescriptionLearnMoreClickListener(View.OnClickListener listener) {
if (mIncognitoDescriptionView == null) {
mIncognitoDescriptionLearnMoreListener = listener;
return;
mIncognitoDescriptionLearnMoreListener = listener;
if (mIncognitoDescriptionView != null) {
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 {
mIncognitoCookieControlsToggleCheckedListener = listener;
if (mIncognitoDescriptionView != null) {
mIncognitoDescriptionView.setCookieControlsToggleOnCheckedChangeListener(listener);
mIncognitoCookieControlsToggleCheckedListener = null;
}
}
......@@ -244,4 +247,16 @@ class TasksView extends CoordinatorLayoutForPointer {
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;
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.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_TOGGLE_CHECKED;
import static org.chromium.chrome.browser.tasks.TasksSurfaceProperties.INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED_LISTENER;
......@@ -37,6 +38,9 @@ class TasksViewBinder {
} else if (propertyKey == INCOGNITO_COOKIE_CONTROLS_CARD_VISIBILITY) {
view.setIncognitoCookieControlsCardVisibility(
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) {
view.setIncognitoCookieControlsToggleChecked(
model.get(INCOGNITO_COOKIE_CONTROLS_TOGGLE_CHECKED));
......
......@@ -4,14 +4,19 @@
package org.chromium.chrome.browser.ntp;
import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import org.chromium.base.ObserverList;
import org.chromium.chrome.R;
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.CookieControlsServiceObserver;
import org.chromium.chrome.browser.settings.website.SingleCategorySettings;
import org.chromium.chrome.browser.settings.website.SiteSettingsCategory;
import org.chromium.components.content_settings.CookieControlsEnforcement;
/**
......@@ -22,7 +27,7 @@ import org.chromium.components.content_settings.CookieControlsEnforcement;
* cookie controls view.
*/
public class IncognitoCookieControlsManager
implements CookieControlsServiceObserver, OnCheckedChangeListener {
implements CookieControlsServiceObserver, OnCheckedChangeListener, View.OnClickListener {
/**
* Interface for a class that wants to receive updates from this manager.
*/
......@@ -96,9 +101,20 @@ public class IncognitoCookieControlsManager
@Override
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)) {
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 {
mCookieControlsToggle.setChecked(enabled);
}
/**
* Set cookie controls icon on click listener.
* @param listener The given listener.
*/
public void setCookieControlsIconOnclickListener(OnClickListener listener) {
mCookieControlsManagedIcon.setOnClickListener(listener);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
......
......@@ -93,6 +93,8 @@ public class IncognitoNewTabPage
mCookieControlsManager.addObserver(mCookieControlsObserver);
mIncognitoNewTabPageView.setIncognitoCookieControlsToggleCheckedListener(
mCookieControlsManager);
mIncognitoNewTabPageView.setIncognitoCookieControlsIconOnclickListener(
mCookieControlsManager);
mCookieControlsManager.updateIfNecessary();
}
......
......@@ -160,4 +160,12 @@ public class IncognitoNewTabPageView extends FrameLayout {
void setIncognitoCookieControlsToggleEnforcement(@CookieControlsEnforcement int 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