Commit cee9190c authored by Mehran Mahmoudi's avatar Mehran Mahmoudi Committed by Commit Bot

[Touchless] UX polishes to preferences

This addresses some comments from UX review on settings for touchless
devices. More information on the bug.

Bug: 962562,963515,961904
Change-Id: I6146f1dbddbb580748074ad201c82f267e5306ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613709
Commit-Queue: Mehran Mahmoudi <mahmoudi@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Reviewed-by: default avatarFinnur Thorarinsson <finnur@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661002}
parent 6c88fc8b
......@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.preferences.PreferenceUtils;
import org.chromium.chrome.browser.preferences.SearchUtils;
import org.chromium.chrome.browser.preferences.website.Website.StoredDataClearedCallback;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.ui.widget.Toast;
......@@ -349,6 +350,9 @@ public class SingleCategoryPreferences extends PreferenceFragment
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
// We don't need the options menu in touchless mode (crbug/962562).
if (FeatureUtilities.isNoTouchModeEnabled()) return;
inflater.inflate(R.menu.website_preferences_menu, menu);
mSearchItem = menu.findItem(R.id.search);
......@@ -855,7 +859,9 @@ public class SingleCategoryPreferences extends PreferenceFragment
}
// Configure/hide the third-party cookie toggle, as needed.
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
// We don't need this toggle in touchless. Refer to crbug/951850.
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)
&& !FeatureUtilities.isNoTouchModeEnabled()) {
thirdPartyCookies.setOnPreferenceChangeListener(this);
updateThirdPartyCookiesCheckBox();
} else {
......
......@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.preferences.LocationSettings;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.PreferenceUtils;
import org.chromium.chrome.browser.preferences.website.SiteSettingsCategory.Type;
import org.chromium.chrome.browser.util.FeatureUtilities;
import java.util.ArrayList;
import java.util.List;
......@@ -110,6 +111,10 @@ public class SiteSettingsPreferences extends PreferenceFragment
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SENSOR_CONTENT_SETTING)) {
getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
}
// We don't have clipboard support in touchless mode (crbug/963515).
if (FeatureUtilities.isNoTouchModeEnabled()) {
getPreferenceScreen().removePreference(findPreference(Type.CLIPBOARD));
}
}
}
......@@ -138,7 +143,9 @@ public class SiteSettingsPreferences extends PreferenceFragment
}
websitePrefs.add(Type.BACKGROUND_SYNC);
websitePrefs.add(Type.CAMERA);
websitePrefs.add(Type.CLIPBOARD);
if (!FeatureUtilities.isNoTouchModeEnabled()) {
websitePrefs.add(Type.CLIPBOARD);
}
websitePrefs.add(Type.COOKIES);
websitePrefs.add(Type.JAVASCRIPT);
websitePrefs.add(Type.DEVICE_LOCATION);
......
......@@ -16,6 +16,7 @@
<dimen name="notouch_key_functions_tooltip_item_horizontal_margin">4dp</dimen>
<dimen name="focus_ring_stroke_width">2dp</dimen>
<dimen name="touchless_preferences_highlight_padding">8dp</dimen>
<!-- Open last tab placeholder dimensions. -->
<dimen name="open_last_tab_placeholder_image_size">24dp</dimen>
......
......@@ -4,19 +4,54 @@
package org.chromium.chrome.browser.touchless;
import android.app.Fragment;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ListView;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.preferences.Preferences;
import org.chromium.chrome.browser.touchless.dialog.TouchlessDialogProperties;
import org.chromium.ui.modelutil.PropertyModel;
/**
* The Chrome settings activity for touchless devices.
*/
public class TouchlessPreferences extends Preferences {
private TouchlessModelCoordinator mTouchlessModelCoordinator;
private PropertyModel mDialogModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
mTouchlessModelCoordinator = AppHooks.get().createTouchlessModelCoordinator(this);
mDialogModel =
new PropertyModel.Builder(TouchlessDialogProperties.MINIMAL_DIALOG_KEYS).build();
mTouchlessModelCoordinator.addModelToQueue(mDialogModel);
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
int padding = getResources().getDimensionPixelSize(
org.chromium.chrome.touchless.R.dimen.touchless_preferences_highlight_padding);
Fragment fragment = getFragmentManager().findFragmentById(android.R.id.content);
ListView listView = fragment.getView().findViewById(android.R.id.list);
listView.setPadding(padding, 0, padding, 0);
listView.setDividerHeight(padding);
}
@Override
protected void onResume() {
super.onResume();
TouchlessDialogProperties.ActionNames actionNames =
new TouchlessDialogProperties.ActionNames();
actionNames.select = R.string.select;
actionNames.cancel = R.string.back;
actionNames.alt = 0;
mDialogModel.set(TouchlessDialogProperties.ACTION_NAMES, actionNames);
}
@Override
......
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