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; ...@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.preferences.PreferenceUtils;
import org.chromium.chrome.browser.preferences.SearchUtils; import org.chromium.chrome.browser.preferences.SearchUtils;
import org.chromium.chrome.browser.preferences.website.Website.StoredDataClearedCallback; import org.chromium.chrome.browser.preferences.website.Website.StoredDataClearedCallback;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.chrome.browser.util.UrlUtilities; import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.ui.widget.Toast; import org.chromium.ui.widget.Toast;
...@@ -349,6 +350,9 @@ public class SingleCategoryPreferences extends PreferenceFragment ...@@ -349,6 +350,9 @@ public class SingleCategoryPreferences extends PreferenceFragment
@Override @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear(); 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); inflater.inflate(R.menu.website_preferences_menu, menu);
mSearchItem = menu.findItem(R.id.search); mSearchItem = menu.findItem(R.id.search);
...@@ -855,7 +859,9 @@ public class SingleCategoryPreferences extends PreferenceFragment ...@@ -855,7 +859,9 @@ public class SingleCategoryPreferences extends PreferenceFragment
} }
// Configure/hide the third-party cookie toggle, as needed. // 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); thirdPartyCookies.setOnPreferenceChangeListener(this);
updateThirdPartyCookiesCheckBox(); updateThirdPartyCookiesCheckBox();
} else { } else {
......
...@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.preferences.LocationSettings; ...@@ -17,6 +17,7 @@ import org.chromium.chrome.browser.preferences.LocationSettings;
import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.PreferenceUtils; import org.chromium.chrome.browser.preferences.PreferenceUtils;
import org.chromium.chrome.browser.preferences.website.SiteSettingsCategory.Type; import org.chromium.chrome.browser.preferences.website.SiteSettingsCategory.Type;
import org.chromium.chrome.browser.util.FeatureUtilities;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -110,6 +111,10 @@ public class SiteSettingsPreferences extends PreferenceFragment ...@@ -110,6 +111,10 @@ public class SiteSettingsPreferences extends PreferenceFragment
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SENSOR_CONTENT_SETTING)) { if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SENSOR_CONTENT_SETTING)) {
getPreferenceScreen().removePreference(findPreference(Type.SENSORS)); 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 ...@@ -138,7 +143,9 @@ public class SiteSettingsPreferences extends PreferenceFragment
} }
websitePrefs.add(Type.BACKGROUND_SYNC); websitePrefs.add(Type.BACKGROUND_SYNC);
websitePrefs.add(Type.CAMERA); websitePrefs.add(Type.CAMERA);
websitePrefs.add(Type.CLIPBOARD); if (!FeatureUtilities.isNoTouchModeEnabled()) {
websitePrefs.add(Type.CLIPBOARD);
}
websitePrefs.add(Type.COOKIES); websitePrefs.add(Type.COOKIES);
websitePrefs.add(Type.JAVASCRIPT); websitePrefs.add(Type.JAVASCRIPT);
websitePrefs.add(Type.DEVICE_LOCATION); websitePrefs.add(Type.DEVICE_LOCATION);
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<dimen name="notouch_key_functions_tooltip_item_horizontal_margin">4dp</dimen> <dimen name="notouch_key_functions_tooltip_item_horizontal_margin">4dp</dimen>
<dimen name="focus_ring_stroke_width">2dp</dimen> <dimen name="focus_ring_stroke_width">2dp</dimen>
<dimen name="touchless_preferences_highlight_padding">8dp</dimen>
<!-- Open last tab placeholder dimensions. --> <!-- Open last tab placeholder dimensions. -->
<dimen name="open_last_tab_placeholder_image_size">24dp</dimen> <dimen name="open_last_tab_placeholder_image_size">24dp</dimen>
......
...@@ -4,19 +4,54 @@ ...@@ -4,19 +4,54 @@
package org.chromium.chrome.browser.touchless; package org.chromium.chrome.browser.touchless;
import android.app.Fragment;
import android.os.Bundle; import android.os.Bundle;
import android.view.Menu; 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.preferences.Preferences;
import org.chromium.chrome.browser.touchless.dialog.TouchlessDialogProperties;
import org.chromium.ui.modelutil.PropertyModel;
/** /**
* The Chrome settings activity for touchless devices. * The Chrome settings activity for touchless devices.
*/ */
public class TouchlessPreferences extends Preferences { public class TouchlessPreferences extends Preferences {
private TouchlessModelCoordinator mTouchlessModelCoordinator;
private PropertyModel mDialogModel;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(false); 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 @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