Index: chrome/browser/resources/settings/people_page/fingerprint_list.js |
diff --git a/chrome/browser/resources/settings/people_page/fingerprint_list.js b/chrome/browser/resources/settings/people_page/fingerprint_list.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eba8ba657a1389c833b2c3ec6bd20e1ef5c42f89 |
--- /dev/null |
+++ b/chrome/browser/resources/settings/people_page/fingerprint_list.js |
@@ -0,0 +1,104 @@ |
+// 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. |
+ |
+/** |
+ * @fileoverview |
+ * Polymer element for displaying a list of fingerprints. |
+ * |
+ * Example: |
+ * <settings-fingerprint-list></settings-fingerprint-list> |
+ */ |
+ |
+(function() { |
+'use strict'; |
+ |
+/** |
+ * The max number of fingerprints this list can hold. |
+ * @type {number} |
+ * @const |
+ */ |
+var MAX_NUMBER_FINGERPRINTS_ALLOWED = 5; |
+ |
+Polymer({ |
+ is: 'settings-fingerprint-list', |
+ |
+ behaviors: [ |
+ I18nBehavior, |
+ ], |
+ |
+ properties: { |
+ /** |
+ * The list of fingerprint objects. |
+ * @type {Array<Object>} |
+ * @private |
+ */ |
+ fingerprints_: { |
+ type: Array, |
+ value: function() { |
+ return []; |
+ }, |
+ notify: true, |
+ } |
+ }, |
+ |
+ /** |
+ * Returns the text to be displayed when the user has set up |
+ * |MAX_NUMBER_FINGERPRINTS_ALLOWED|. |
+ * @return {string} |
+ * @private |
+ */ |
+ getFingerprintButtonCannotAddText_: function() { |
+ return this.i18n('lockScreenCannotAddFingerprint', |
+ MAX_NUMBER_FINGERPRINTS_ALLOWED); |
+ }, |
+ |
+ /** |
+ * Check if the registered fingerprints has a fingerprint with name |name|. |
+ * @param {string} name The name we are looking for. |
+ * @return {boolean} |
+ * @private |
+ */ |
+ isNameUsed_: function(name) { |
+ return !!this.fingerprints_.find(function(e) { |
+ return e.name == name; |
+ }); |
+ }, |
+ |
+ /** |
+ * Adds a fingerprint with a default name. |
+ * @private |
+ */ |
+ onAddFingerprint_: function() { |
+ // Determines what the newly added fingerprint's name should be. |
+ // TODO(sammiequon): Add fingerprint using private API once it is ready. |
+ |
+ var fingerprintName; |
+ for (var i = 1; i <= MAX_NUMBER_FINGERPRINTS_ALLOWED; ++i) { |
+ fingerprintName = this.i18n('lockScreenFingerprintNewName', i); |
+ if (this.isNameUsed_(fingerprintName)) |
jdufault
2016/12/06 18:13:42
A more general way to handle this would be
if (
sammiequon
2016/12/06 18:55:37
Ok.
|
+ continue; |
+ break; |
+ } |
+ this.push('fingerprints_', { 'name': fingerprintName }); |
+ }, |
+ |
+ /** |
+ * Deletes a fingerprint from |fingerprints_|. |
+ * @private |
+ */ |
+ onFingerprintDelete_: function(e) { |
+ // TODO(sammiequon): Remove fingerprint using private API once it is ready. |
+ this.splice('fingerprints_', e.model.index, 1); |
+ }, |
+ |
+ /** |
+ * Checks whether another fingerprint can be added. |
+ * @return {boolean} |
+ * @private |
+ */ |
+ canAddNewFingerprint_: function(length) { |
+ return length < MAX_NUMBER_FINGERPRINTS_ALLOWED; |
+ } |
+}); |
+})(); |