| Index: chrome/browser/resources/settings/people_page/lock_state_behavior.js
|
| diff --git a/chrome/browser/resources/settings/people_page/lock_state_behavior.js b/chrome/browser/resources/settings/people_page/lock_state_behavior.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e96c2af3453100799a6f718d6cd4e454ed97a4d4
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/settings/people_page/lock_state_behavior.js
|
| @@ -0,0 +1,76 @@
|
| +// 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
|
| + * Contains utilities that help identify the current way that the lock screen
|
| + * will be displayed.
|
| + */
|
| +
|
| +/** @enum {string} */
|
| +var LockScreenUnlockType = {
|
| + VALUE_PENDING: 'value_pending',
|
| + PASSWORD: 'password',
|
| + PIN_PASSWORD: 'pin+password'
|
| +};
|
| +
|
| +/** @polymerBehavior */
|
| +var LockStateBehavior = {
|
| + properties: {
|
| + /**
|
| + * The currently selected unlock type.
|
| + * @type {!LockScreenUnlockType}
|
| + */
|
| + selectedUnlockType: {
|
| + type: String,
|
| + notify: true,
|
| + value: LockScreenUnlockType.VALUE_PENDING
|
| + },
|
| +
|
| + /**
|
| + * True/false if there is a PIN set; undefined if the computation is still
|
| + * pending. This is a separate value from selectedUnlockType because the UI
|
| + * can change the selectedUnlockType before setting up a PIN.
|
| + * @type {boolean|undefined}
|
| + */
|
| + hasPin: {
|
| + type: Boolean,
|
| + notify: true
|
| + }
|
| + },
|
| +
|
| + /** @override */
|
| + attached: function() {
|
| + this.boundOnActiveModesChanged_ = this.updateUnlockType_.bind(this);
|
| + chrome.quickUnlockPrivate.onActiveModesChanged.addListener(
|
| + this.boundOnActiveModesChanged_);
|
| +
|
| + this.updateUnlockType_();
|
| + },
|
| +
|
| + /** @override */
|
| + detached: function() {
|
| + chrome.quickUnlockPrivate.onActiveModesChanged.removeListener(
|
| + this.boundOnActiveModesChanged_);
|
| + },
|
| +
|
| + /**
|
| + * Updates the selected unlock type radio group. This function will get called
|
| + * after preferences are initialized, after the quick unlock mode has been
|
| + * changed, and after the lockscreen preference has changed.
|
| + *
|
| + * @private
|
| + */
|
| + updateUnlockType_: function() {
|
| + chrome.quickUnlockPrivate.getActiveModes(function(modes) {
|
| + if (modes.includes(chrome.quickUnlockPrivate.QuickUnlockMode.PIN)) {
|
| + this.hasPin = true;
|
| + this.selectedUnlockType = LockScreenUnlockType.PIN_PASSWORD;
|
| + } else {
|
| + this.hasPin = false;
|
| + this.selectedUnlockType = LockScreenUnlockType.PASSWORD;
|
| + }
|
| + }.bind(this));
|
| + },
|
| +};
|
|
|