Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Unified Diff: ui/login/account_picker/user_pod_row.js

Issue 2785003002: cros: Showing pin on lock is no longer associated with sending user list. (Closed)
Patch Set: Initial upload Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/login/account_picker/user_pod_row.js
diff --git a/ui/login/account_picker/user_pod_row.js b/ui/login/account_picker/user_pod_row.js
index 13a1c64d1ef3afee5b957db7f01ca5408c119855..d5191f570f437251fc33f5a9c1bb1ac17605178e 100644
--- a/ui/login/account_picker/user_pod_row.js
+++ b/ui/login/account_picker/user_pod_row.js
@@ -744,6 +744,13 @@ cr.define('login', function() {
*/
fingerprintAuthenticated_: false,
+ /**
+ * True iff the pod can display the pin keyboard. The pin keyboard may not
+ * always be displayed even if this is true, ie, if the virtual keyboard is
+ * also being displayed.
+ */
+ pinEnabled: false,
+
/** @override */
decorate: function() {
this.tabIndex = UserPodTabOrder.POD_INPUT;
@@ -1225,10 +1232,6 @@ cr.define('login', function() {
this.submitButton.classList.toggle('error-shown', visible);
},
- toggleTransitions: function(enable) {
- this.classList.toggle('flying-pin-pod', enable);
- },
-
updatePinClass_: function(element, enable) {
element.classList.toggle('pin-enabled', enable);
element.classList.toggle('pin-disabled', !enable);
@@ -1242,6 +1245,10 @@ cr.define('login', function() {
if (visible && Oobe.getInstance().virtualKeyboardShown)
return;
+ // Do not show pin keyboard if the pod does not have pin enabled.
+ if (visible && !this.pinEnabled)
+ return;
+
var elements = this.getElementsByClassName('pin-tag');
for (var i = 0; i < elements.length; ++i)
this.updatePinClass_(elements[i], visible);
@@ -2850,15 +2857,6 @@ cr.define('login', function() {
},
/**
- * Enables or disables transitions on every pod instance.
- * @param {boolean} enable
- */
- toggleTransitions: function(enable) {
- for (var i = 0; i < this.pods.length; ++i)
- this.pods[i].toggleTransitions(enable);
- },
-
- /**
* Performs visual changes on the user pod if there is an error.
* @param {boolean} visible Whether to show or hide the display.
*/
@@ -2872,7 +2870,7 @@ cr.define('login', function() {
* @param {boolean} visible
*/
setFocusedPodPinVisibility: function(visible) {
- if (this.focusedPod_ && this.focusedPod_.user.showPin)
+ if (this.focusedPod_)
this.focusedPod_.setPinVisibility(visible);
},
@@ -2894,21 +2892,60 @@ cr.define('login', function() {
},
/**
- * Remove the pin keyboard from the pod with the given |username|.
+ * Enables or disables the pin keyboard for the given user. A disabled pin
+ * keyboard will never be displayed.
+ *
+ * If the user's pod is focused, then enabling the pin keyboard will display
+ * it; disabling the pin keyboard will hide it.
+ * @param {!user} username
xiyuan 2017/04/03 21:21:43 nit: {!user} -> {!string}
jdufault 2017/04/10 21:06:31 Done.
+ * @param {boolean} enabled
+ */
+ setPinEnabled: function(username, enabled) {
+ var pod = this.getPodWithUsername_(username);
+ if (!pod) {
+ console.error('Attempt to enable/disable pin keyboard of missing pod.');
+ return;
+ }
+
+ // Make sure to set |pinEnabled| before toggling visiblity to avoid
+ // validation errors.
+ pod.pinEnabled = enabled;
+
+ if (this.focusedPod_ == pod) {
+ if (enabled) {
+ ensurePinKeyboardLoaded(
+ this.setPinVisibility.bind(this, username, true));
+ } else {
+ this.setPinVisibility(username, false);
+ }
+ }
+ },
+
+ /**
+ * Shows or hides the pin keyboard from the pod with the given |username|.
+ * This is only a visibility change; the pin keyboard can be reshown.
+ *
+ * Use setPinEnabled if the pin keyboard should be disabled for the given
+ * user.
* @param {!user} username
* @param {boolean} visible
*/
- removePinKeyboard: function(username) {
+ setPinVisibility: function(username, visible) {
var pod = this.getPodWithUsername_(username);
if (!pod) {
- console.warn('Attempt to remove pin keyboard of missing pod.');
+ console.error('Attempt to show/hide pin keyboard of missing pod.');
+ return;
+ }
+ if (visible && pod.pinEnabled === false) {
+ console.error('Attempt to show disabled pin keyboard');
return;
}
- // Remove the child, so that the virtual keyboard cannot bring it up
- // again after three tries.
- if (pod.pinContainer)
- pod.removeChild(pod.pinContainer);
- pod.setPinVisibility(false);
+ if (visible && this.focusedPod_ != pod) {
+ console.error('Attempt to show pin keyboard on non-focused pod');
+ return;
+ }
+
+ pod.setPinVisibility(visible);
},
/**

Powered by Google App Engine
This is Rietveld 408576698