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

Unified Diff: chrome/browser/resources/settings/people_page/fingerprint_list.js

Issue 2538303002: md-settings: Added settings for fingerprint unlock. (Closed)
Patch Set: Created 4 years 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: 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..00a0ebc7301f03930a0c60c82a7312512d10e89b
--- /dev/null
+++ b/chrome/browser/resources/settings/people_page/fingerprint_list.js
@@ -0,0 +1,112 @@
+// 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.
+ *
+ * Properties:
+ * items: The fingerprints to display.
+ *
+ * Example:
+ * <settings-fingerprint-list></settings-fingerprint-list>
jdufault 2016/12/01 17:11:20 Include items binding in your example.
sammiequon 2016/12/01 20:52:29 Done.
+ */
+
+(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
+ */
+ items: {
+ 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);
+ },
+
+ /**
+ * Adds a fingerprint with a default name. Should open up a dialog or move to
+ * a new page, then go through a new fingerprint setup phase and probably
+ * store the fingerprint somehow. For now just adds a new fingerpint to
+ * |items|.
+ * @private
+ */
+ onAddFingerprint_: function() {
+ // Determines what the newly added fingerprint's name should be. The name
+ // should be in the format "Finger x" where x should be the lowest unused
+ // number. A number is considered used if it matches the pattern "Finger x".
+ // Note that finger x or Fingerx are not considered matches.
+ var numbersUsed = [];
+ var isRtl = document.dir == 'rtl';
jdufault 2016/12/01 17:11:19 There is a lot of complexity here to try to figure
sammiequon 2016/12/01 20:52:29 Done.
+ var defaultName = this.i18n('lockScreenFingerprintNewName');
+ var pattern = isRtl ? '^[0-9] ' + defaultName + '$' :
+ '^' + defaultName + ' [0-9]$';
+ var regex = new RegExp(pattern);
+ for (var i = 0; i < this.items.length; ++i) {
+ var name = this.items[i]['name'];
+ if (!!regex.exec(name))
+ numbersUsed.push(parseInt(isRtl ? name[0] : name[name.length - 1]));
+ }
+
+ var index = this.items.length + 1;
+ for (var i = 1; i <= this.items.length; ++i) {
+ if (!numbersUsed.includes(i)) {
+ index = i;
+ break;
+ }
+ }
+ this.push('items', { 'name': isRtl ? index + ' ' + defaultName :
jdufault 2016/12/01 17:11:19 Use a string format parameter to handle this logic
sammiequon 2016/12/01 20:52:29 Done.
+ defaultName + ' ' + index });
+ },
+
+ /**
+ * Deletes a fingerprint from |items|. Should signal to the fingerprint module
jdufault 2016/12/01 17:11:20 What is the "fingerprint module"? // TODO(sammieq
sammiequon 2016/12/01 20:52:29 Done.
+ * to remove the fingerprint as well.
+ * @private
+ */
+ onItemDelete_: function(e) {
+ this.splice('items', e.model.index, 1);
+ },
+
+ /**
+ * Checks whether another fingerprint can be added.
+ * @return {boolean}
+ * @private
+ */
+ canAddNewFingerprint_: function(length) {
+ return length < MAX_NUMBER_FINGERPRINTS_ALLOWED;
+ }
+});
+})();

Powered by Google App Engine
This is Rietveld 408576698