Commit 18a95ec0 authored by Gavin Williams's avatar Gavin Williams Committed by Commit Bot

Refactor the settings pin keyboard to fix touch ripples

-Now that pin_keyboard uses cr-button(used to be paper-button) there
is no need for an additional paper-ripple.

-cr-button needs logic for being able to customize ripples since
pin_keyboard uses a custom ripple. The same createRipple function
exists in cr-toggle, cr-slider, etc.

Bug: 1007235
Change-Id: Ib391bd45f87c65bf3ae5982dfccc4a61e5fd807d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1829766
Commit-Queue: Gavin Williams <gavinwill@chromium.org>
Reviewed-by: default avatarBailey Berro <baileyberro@chromium.org>
Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701742}
parent 10ee1f7e
...@@ -116,6 +116,15 @@ ...@@ -116,6 +116,15 @@
width: var(--pin-button-width); width: var(--pin-button-width);
@apply --pin-keyboard-digit-button; @apply --pin-keyboard-digit-button;
--ink-color: var(--google-grey-900);
--paper-ripple-height: var(--pin-button-ripple-height);
--paper-ripple-left: var(--pin-button-ripple-left);
--paper-ripple-opacity: .15;
--paper-ripple-top: var(--pin-button-ripple-top);
--paper-ripple-width: var(--pin-button-ripple-width);
@apply --pin-keyboard-paper-ripple;
} }
:host-context(.focus-outline-visible) .digit-button:focus { :host-context(.focus-outline-visible) .digit-button:focus {
...@@ -140,17 +149,6 @@ ...@@ -140,17 +149,6 @@
height: 16px; height: 16px;
} }
paper-ripple {
--paper-ripple-opacity: .15;
color: var(--google-grey-900);
height: var(--pin-button-ripple-height);
left: var(--pin-button-ripple-left);
top: var(--pin-button-ripple-top);
width: var(--pin-button-ripple-width);
@apply --pin-keyboard-paper-ripple;
}
#pinInput { #pinInput {
--cr-input-error-display: none; --cr-input-error-display: none;
--cr-input-input: { --cr-input-input: {
...@@ -207,81 +205,71 @@ ...@@ -207,81 +205,71 @@
<div id="rowsContainer"> <div id="rowsContainer">
<div class="row"> <div class="row">
<cr-button class="digit-button" on-tap="onNumberTap_" value="1" <cr-button class="digit-button" on-tap="onNumberTap_" value="1"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard1')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard1')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">&nbsp;</inner-text> hidden="[[!enableLetters]]">&nbsp;</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-button class="digit-button" on-tap="onNumberTap_" value="2" <cr-button class="digit-button" on-tap="onNumberTap_" value="2"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard2')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard2')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">ABC</inner-text> hidden="[[!enableLetters]]">ABC</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-button class="digit-button" on-tap="onNumberTap_" value="3" <cr-button class="digit-button" on-tap="onNumberTap_" value="3"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard3')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard3')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">DEF</inner-text> hidden="[[!enableLetters]]">DEF</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
</div> </div>
<div class="row"> <div class="row">
<cr-button class="digit-button" on-tap="onNumberTap_" value="4" <cr-button class="digit-button" on-tap="onNumberTap_" value="4"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard4')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard4')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">GHI</inner-text> hidden="[[!enableLetters]]">GHI</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-button class="digit-button" on-tap="onNumberTap_" value="5" <cr-button class="digit-button" on-tap="onNumberTap_" value="5"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard5')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard5')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">JKL</inner-text> hidden="[[!enableLetters]]">JKL</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-button class="digit-button" on-tap="onNumberTap_" value="6" <cr-button class="digit-button" on-tap="onNumberTap_" value="6"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard6')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard6')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">MNO</inner-text> hidden="[[!enableLetters]]">MNO</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
</div> </div>
<div class="row"> <div class="row">
<cr-button class="digit-button" on-tap="onNumberTap_" value="7" <cr-button class="digit-button" on-tap="onNumberTap_" value="7"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard7')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard7')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">PQRS</inner-text> hidden="[[!enableLetters]]">PQRS</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-button class="digit-button" on-tap="onNumberTap_" value="8" <cr-button class="digit-button" on-tap="onNumberTap_" value="8"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard8')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard8')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">TUV</inner-text> hidden="[[!enableLetters]]">TUV</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-button class="digit-button" on-tap="onNumberTap_" value="9" <cr-button class="digit-button" on-tap="onNumberTap_" value="9"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard9')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard9')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">WXYZ</inner-text> hidden="[[!enableLetters]]">WXYZ</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
</div> </div>
<div class="row bottom-row"> <div class="row bottom-row">
<div class="digit-button"></div> <div class="digit-button"></div>
<cr-button class="digit-button" on-tap="onNumberTap_" value="0" <cr-button class="digit-button" on-tap="onNumberTap_" value="0"
noink> circle-ripple>
<inner-text class="number">[[i18n('pinKeyboard0')]]</inner-text> <inner-text class="number">[[i18n('pinKeyboard0')]]</inner-text>
<inner-text class="letter" <inner-text class="letter"
hidden="[[!enableLetters]]">+</inner-text> hidden="[[!enableLetters]]">+</inner-text>
<paper-ripple class="circle" center></paper-ripple>
</cr-button> </cr-button>
<cr-icon-button id="backspaceButton" <cr-icon-button id="backspaceButton"
disabled$="[[!hasInput_(value)]]" disabled$="[[!hasInput_(value)]]"
......
...@@ -151,6 +151,12 @@ ...@@ -151,6 +151,12 @@
paper-ripple { paper-ripple {
color: var(--ink-color); color: var(--ink-color);
height: var(--paper-ripple-height);
width: var(--paper-ripple-width);
/* Fallback to 0 to match the values in paper-ripple.html. Falls back
* to null without this. */
left: var(--paper-ripple-left, 0);
top: var(--paper-ripple-top, 0);
} }
</style> </style>
<slot></slot> <slot></slot>
......
...@@ -21,6 +21,15 @@ Polymer({ ...@@ -21,6 +21,15 @@ Polymer({
reflectToAttribute: true, reflectToAttribute: true,
observer: 'disabledChanged_', observer: 'disabledChanged_',
}, },
/**
* Flag used for formatting ripples on circle shaped cr-buttons.
* @private
*/
circleRipple: {
type: Boolean,
value: false,
},
}, },
hostAttributes: { hostAttributes: {
...@@ -149,5 +158,22 @@ Polymer({ ...@@ -149,5 +158,22 @@ Polymer({
* longer uses tap event at least with addEventListener(). * longer uses tap event at least with addEventListener().
* @private * @private
*/ */
onTap_: function() {} onTap_: function() {},
//
/**
* Customize the element's ripple. Overriding the '_createRipple' function
* from PaperRippleBehavior.
* @return {PaperRippleElement}
*/
_createRipple: function() {
const ripple = Polymer.PaperRippleBehavior._createRipple();
if (this.circleRipple) {
ripple.setAttribute('center', '');
ripple.classList.add('circle');
}
return ripple;
},
}); });
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