// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.chrome.browser.preferences.website; import android.content.Context; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceFragment; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import org.chromium.chrome.R; import org.chromium.chrome.browser.help.HelpAndFeedback; import org.chromium.chrome.browser.preferences.ButtonPreference; import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.ui.widget.Toast; /** * Fragment to keep track of the translate preferences. */ public class TranslatePreferences extends PreferenceFragment { public static final String PREF_TRANSLATE_SWITCH = "translate_switch"; public static final String PREF_RESET_TRANSLATE_BUTTON = "reset_translate_button"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.translate_preferences); getActivity().setTitle(R.string.google_translate); setHasOptionsMenu(true); final Context context = getActivity(); if (context == null) return; ChromeSwitchPreference translateSwitch = (ChromeSwitchPreference) findPreference(PREF_TRANSLATE_SWITCH); boolean isTranslateEnabled = PrefServiceBridge.getInstance().isTranslateEnabled(); translateSwitch.setChecked(isTranslateEnabled); translateSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { PrefServiceBridge.getInstance().setTranslateEnabled((boolean) newValue); return true; } }); translateSwitch.setManagedPreferenceDelegate(new ManagedPreferenceDelegate() { @Override public boolean isPreferenceControlledByPolicy(Preference preference) { return PrefServiceBridge.getInstance().isTranslateManaged(); } }); ButtonPreference resetTranslateButton = (ButtonPreference) findPreference(PREF_RESET_TRANSLATE_BUTTON); resetTranslateButton.setOnPreferenceClickListener(new OnPreferenceClickListener(){ @Override public boolean onPreferenceClick(Preference preference) { PrefServiceBridge.getInstance().resetTranslateDefaults(); Toast.makeText(getActivity(), getString( R.string.translate_prefs_toast_description), Toast.LENGTH_SHORT).show(); return 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(R.drawable.ic_help_and_feedback); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); menu.add(Menu.NONE, R.id.menu_id_reset, Menu.NONE, R.string.reset_translate_defaults); } @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); if (itemId == R.id.menu_id_targeted_help) { HelpAndFeedback.getInstance(getActivity()) .show(getActivity(), getString(R.string.help_context_translate), Profile.getLastUsedProfile(), null); return true; } else if (itemId == R.id.menu_id_reset) { PrefServiceBridge.getInstance().resetTranslateDefaults(); Toast.makeText(getActivity(), getString( R.string.translate_prefs_toast_description), Toast.LENGTH_SHORT).show(); return true; } return false; } }