Commit dd96ab5d authored by Natalie Chouinard's avatar Natalie Chouinard Committed by Commit Bot

Migrate Autofill Assistant Settings page to SL

Migrate the Google Assistant in Chrome Settings screen from deprecated
framework preferences to the preferences Support Library.

Bug: 968592
Change-Id: I899aff6125d5213aac424bae99e74ce09ee90892
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1696284Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Reviewed-by: default avatarMathias Carlen <mcarlen@chromium.org>
Commit-Queue: Natalie Chouinard <chouinard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#676572}
parent 778138db
......@@ -137,7 +137,7 @@ class AssistantHeaderViewBinder
view.mProfileIconMenu.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId();
if (itemId == R.id.settings) {
PreferencesLauncher.launchSettingsPage(
PreferencesLauncher.launchSettingsPageCompat(
view.mHeader.getContext(), AutofillAssistantPreferences.class);
return true;
} else if (itemId == R.id.send_feedback) {
......
......@@ -4,44 +4,42 @@
package org.chromium.chrome.browser.preferences.autofill_assistant;
import android.content.Context;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceFragment;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.support.v7.preference.PreferenceScreen;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.ChromeSwitchPreference;
import org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat;
/** The "Autofill Assistant" preferences screen in Settings. */
public class AutofillAssistantPreferences extends PreferenceFragment {
public class AutofillAssistantPreferences extends PreferenceFragmentCompat {
/** Autofill Assistant switch preference key name. */
public static final String PREF_AUTOFILL_ASSISTANT_SWITCH = "autofill_assistant_switch";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
getActivity().setTitle(R.string.prefs_autofill_assistant_title);
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getActivity()));
PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getStyledContext());
setPreferenceScreen(screen);
createAutofillAssistantSwitch();
}
private void createAutofillAssistantSwitch() {
ChromeSwitchPreference autofillAssistantSwitch =
new ChromeSwitchPreference(getActivity(), null);
ChromeSwitchPreferenceCompat autofillAssistantSwitch =
new ChromeSwitchPreferenceCompat(getStyledContext(), null);
autofillAssistantSwitch.setKey(PREF_AUTOFILL_ASSISTANT_SWITCH);
autofillAssistantSwitch.setTitle(R.string.prefs_autofill_assistant_switch);
autofillAssistantSwitch.setSummaryOn(R.string.text_on);
autofillAssistantSwitch.setSummaryOff(R.string.text_off);
autofillAssistantSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContextUtils.getAppSharedPreferences()
.edit()
.putBoolean(PREF_AUTOFILL_ASSISTANT_SWITCH, (boolean) newValue)
.apply();
return true;
}
autofillAssistantSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
ContextUtils.getAppSharedPreferences()
.edit()
.putBoolean(PREF_AUTOFILL_ASSISTANT_SWITCH, (boolean) newValue)
.apply();
return true;
});
getPreferenceScreen().addPreference(autofillAssistantSwitch);
......@@ -52,4 +50,8 @@ public class AutofillAssistantPreferences extends PreferenceFragment {
autofillAssistantSwitch.setChecked(ContextUtils.getAppSharedPreferences().getBoolean(
PREF_AUTOFILL_ASSISTANT_SWITCH, true));
}
private Context getStyledContext() {
return getPreferenceManager().getContext();
}
}
......@@ -23,7 +23,7 @@ import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.history.HistoryActivity;
import org.chromium.chrome.browser.preferences.ChromeSwitchPreference;
import org.chromium.chrome.browser.preferences.ChromeSwitchPreferenceCompat;
import org.chromium.chrome.browser.preferences.MainPreferences;
import org.chromium.chrome.browser.preferences.Preferences;
import org.chromium.chrome.browser.preferences.PreferencesTest;
......@@ -85,15 +85,15 @@ public class AutofillAssistantPreferencesTest {
TestThreadUtils.runOnUiThreadBlocking(() -> {
AutofillAssistantPreferences autofillAssistantPrefs =
(AutofillAssistantPreferences) preferences.getMainFragment();
ChromeSwitchPreference onOffSwitch =
(ChromeSwitchPreference) autofillAssistantPrefs.findPreference(
(AutofillAssistantPreferences) preferences.getMainFragmentCompat();
ChromeSwitchPreferenceCompat onOffSwitch =
(ChromeSwitchPreferenceCompat) autofillAssistantPrefs.findPreference(
AutofillAssistantPreferences.PREF_AUTOFILL_ASSISTANT_SWITCH);
Assert.assertTrue(onOffSwitch.isChecked());
PreferencesTest.clickPreference(autofillAssistantPrefs, onOffSwitch);
onOffSwitch.performClick();
Assert.assertFalse(getAutofillAssistantSwitch(true));
PreferencesTest.clickPreference(autofillAssistantPrefs, onOffSwitch);
onOffSwitch.performClick();
Assert.assertTrue(getAutofillAssistantSwitch(false));
preferences.finish();
......@@ -105,9 +105,9 @@ public class AutofillAssistantPreferencesTest {
AutofillAssistantPreferences.class.getName());
TestThreadUtils.runOnUiThreadBlocking(() -> {
AutofillAssistantPreferences autofillAssistantPrefs =
(AutofillAssistantPreferences) preferences2.getMainFragment();
ChromeSwitchPreference onOffSwitch =
(ChromeSwitchPreference) autofillAssistantPrefs.findPreference(
(AutofillAssistantPreferences) preferences2.getMainFragmentCompat();
ChromeSwitchPreferenceCompat onOffSwitch =
(ChromeSwitchPreferenceCompat) autofillAssistantPrefs.findPreference(
AutofillAssistantPreferences.PREF_AUTOFILL_ASSISTANT_SWITCH);
Assert.assertFalse(onOffSwitch.isChecked());
});
......
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