Commit b6061bd3 authored by Ioana Pandele's avatar Ioana Pandele Committed by Chromium LUCI CQ

[PwdCheckAndroid] Add a targeted help menu item to password check

The help launcher is only called if the help button has a targeted help
menu item id, but the menu contained the default help item id.

Bug: 1157428
Change-Id: Ib6c3c25e4a71268c0c9afccbb84bf2e43dd3922e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2584504Reviewed-by: default avatarFriedrich [CET] <fhorschig@chromium.org>
Commit-Queue: Ioana Pandele <ioanap@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835666}
parent c01e115c
...@@ -45,6 +45,7 @@ android_library("public_java") { ...@@ -45,6 +45,7 @@ android_library("public_java") {
"//third_party/android_deps:androidx_fragment_fragment_java", "//third_party/android_deps:androidx_fragment_fragment_java",
"//third_party/android_deps:androidx_preference_preference_java", "//third_party/android_deps:androidx_preference_preference_java",
"//third_party/android_deps:androidx_recyclerview_recyclerview_java", "//third_party/android_deps:androidx_recyclerview_recyclerview_java",
"//third_party/android_deps:androidx_vectordrawable_vectordrawable_java",
"//third_party/android_deps:material_design_java", "//third_party/android_deps:material_design_java",
] ]
sources = [ sources = [
...@@ -165,6 +166,7 @@ android_resources("java_resources") { ...@@ -165,6 +166,7 @@ android_resources("java_resources") {
] ]
deps = [ deps = [
"//chrome/browser/ui/android/strings:ui_strings_grd", "//chrome/browser/ui/android/strings:ui_strings_grd",
"//components/browser_ui/settings/android:java_resources",
"//components/strings:components_strings_grd", "//components/strings:components_strings_grd",
] ]
} }
...@@ -6,10 +6,13 @@ package org.chromium.chrome.browser.password_check; ...@@ -6,10 +6,13 @@ package org.chromium.chrome.browser.password_check;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceFragmentCompat;
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
/** /**
* This class is responsible for rendering the check passwords view in the settings menu. * This class is responsible for rendering the check passwords view in the settings menu.
...@@ -36,6 +39,16 @@ public class PasswordCheckFragmentView extends PreferenceFragmentCompat { ...@@ -36,6 +39,16 @@ public class PasswordCheckFragmentView extends PreferenceFragmentCompat {
getActivity().setTitle(R.string.passwords_check_title); getActivity().setTitle(R.string.passwords_check_title);
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getStyledContext())); setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getStyledContext()));
mPasswordCheckReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState); mPasswordCheckReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(VectorDrawableCompat.create(
getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme()));
} }
@Override @Override
......
...@@ -16,9 +16,11 @@ import static org.junit.Assert.assertFalse; ...@@ -16,9 +16,11 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.chromium.base.test.util.CriteriaHelper.pollUiThread; import static org.chromium.base.test.util.CriteriaHelper.pollUiThread;
import static org.chromium.chrome.browser.password_check.PasswordCheckProperties.CompromisedCredentialProperties.COMPROMISED_CREDENTIAL; import static org.chromium.chrome.browser.password_check.PasswordCheckProperties.CompromisedCredentialProperties.COMPROMISED_CREDENTIAL;
...@@ -725,6 +727,14 @@ public class PasswordCheckViewTest { ...@@ -725,6 +727,14 @@ public class PasswordCheckViewTest {
CriteriaHelper.pollInstrumentationThread(() -> recordedDismiss.get() == 1); CriteriaHelper.pollInstrumentationThread(() -> recordedDismiss.get() == 1);
} }
@Test
@SmallTest
public void testHelpHandlerCalled() {
when(mComponentUi.handleHelp(any())).thenReturn(true);
onView(withId(R.id.menu_id_targeted_help)).perform(click());
verify(mComponentUi).handleHelp(any());
}
private MVCListAdapter.ListItem buildHeader(@PasswordCheckUIStatus int status, private MVCListAdapter.ListItem buildHeader(@PasswordCheckUIStatus int status,
Integer compromisedCredentialsCount, Long checkTimestamp) { Integer compromisedCredentialsCount, Long checkTimestamp) {
return buildHeader(status, compromisedCredentialsCount, checkTimestamp, null, true); return buildHeader(status, compromisedCredentialsCount, checkTimestamp, null, true);
......
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