| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview | 6 * @fileoverview |
| 7 * 'settings-lock-screen' allows the user to change how they unlock their | 7 * 'settings-lock-screen' allows the user to change how they unlock their |
| 8 * device. | 8 * device. |
| 9 * | 9 * |
| 10 * Example: | 10 * Example: |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 }, | 82 }, |
| 83 | 83 |
| 84 /** @private {?settings.FingerprintBrowserProxy} */ | 84 /** @private {?settings.FingerprintBrowserProxy} */ |
| 85 browserProxy_: null, | 85 browserProxy_: null, |
| 86 | 86 |
| 87 /** selectedUnlockType is defined in LockStateBehavior. */ | 87 /** selectedUnlockType is defined in LockStateBehavior. */ |
| 88 observers: ['selectedUnlockTypeChanged_(selectedUnlockType)'], | 88 observers: ['selectedUnlockTypeChanged_(selectedUnlockType)'], |
| 89 | 89 |
| 90 /** @override */ | 90 /** @override */ |
| 91 attached: function() { | 91 attached: function() { |
| 92 if (this.shouldAskForPassword_(settings.getCurrentRoute())) | 92 // currentRouteChanged is not called during the initial navigation. If the |
| 93 this.$.passwordPrompt.open(); | 93 // user navigates directly to the lockScreen page, we still want to show the |
| 94 // password prompt page. |
| 95 this.currentRouteChanged(settings.Route.LOCK_SCREEN, |
| 96 settings.Route.LOCK_SCREEN); |
| 94 this.browserProxy_ = settings.FingerprintBrowserProxyImpl.getInstance(); | 97 this.browserProxy_ = settings.FingerprintBrowserProxyImpl.getInstance(); |
| 95 }, | 98 }, |
| 96 | 99 |
| 97 /** | 100 /** |
| 98 * Overridden from settings.RouteObserverBehavior. | 101 * Overridden from settings.RouteObserverBehavior. |
| 99 * @param {!settings.Route} newRoute | 102 * @param {!settings.Route} newRoute |
| 100 * @param {!settings.Route} oldRoute | 103 * @param {!settings.Route} oldRoute |
| 101 * @protected | 104 * @protected |
| 102 */ | 105 */ |
| 103 currentRouteChanged: function(newRoute, oldRoute) { | 106 currentRouteChanged: function(newRoute, oldRoute) { |
| 104 if (newRoute == settings.Route.LOCK_SCREEN && | 107 if (newRoute == settings.Route.LOCK_SCREEN && |
| 105 this.fingerprintUnlockEnabled_ && | 108 this.fingerprintUnlockEnabled_ && |
| 106 this.browserProxy_) { | 109 this.browserProxy_) { |
| 107 this.browserProxy_.getNumFingerprints().then( | 110 this.browserProxy_.getNumFingerprints().then( |
| 108 function(numFingerprints) { | 111 function(numFingerprints) { |
| 109 this.numFingerprints_ = numFingerprints; | 112 this.numFingerprints_ = numFingerprints; |
| 110 }.bind(this)); | 113 }.bind(this)); |
| 111 } | 114 } |
| 112 | 115 |
| 113 if (this.shouldAskForPassword_(newRoute)) { | 116 if (newRoute == settings.Route.LOCK_SCREEN && !this.setModes_) { |
| 114 this.$.passwordPrompt.open(); | 117 this.$.passwordPrompt.open(); |
| 115 } else if (newRoute != settings.Route.FINGERPRINT && | 118 } else if (newRoute != settings.Route.FINGERPRINT && |
| 116 oldRoute != settings.Route.FINGERPRINT) { | 119 oldRoute != settings.Route.FINGERPRINT) { |
| 117 // If the user navigated away from the lock screen settings page they will | 120 // If the user navigated away from the lock screen settings page they will |
| 118 // have to re-enter their password. An exception is if they are navigating | 121 // have to re-enter their password. An exception is if they are navigating |
| 119 // to or from the fingerprint subpage. | 122 // to or from the fingerprint subpage. |
| 120 this.setModes_ = undefined; | 123 this.setModes_ = undefined; |
| 121 } | 124 } |
| 122 }, | 125 }, |
| 123 | 126 |
| 124 /** | 127 /** |
| 125 * Called when the unlock type has changed. | 128 * Called when the unlock type has changed. |
| 126 * @param {!string} selected The current unlock type. | 129 * @param {!string} selected The current unlock type. |
| 127 * @private | 130 * @private |
| 128 */ | 131 */ |
| 129 selectedUnlockTypeChanged_: function(selected) { | 132 selectedUnlockTypeChanged_: function(selected) { |
| 130 if (selected == LockScreenUnlockType.VALUE_PENDING) | 133 if (selected == LockScreenUnlockType.VALUE_PENDING) |
| 131 return; | 134 return; |
| 132 | 135 |
| 133 if (selected != LockScreenUnlockType.PIN_PASSWORD && this.setModes_) { | 136 if (selected != LockScreenUnlockType.PIN_PASSWORD && this.setModes_) { |
| 134 this.setModes_.call(null, [], [], function(didSet) { | 137 this.setModes_.call(null, [], [], function(didSet) { |
| 135 assert(didSet, 'Failed to clear quick unlock modes'); | 138 assert(didSet, 'Failed to clear quick unlock modes'); |
| 136 }); | 139 }); |
| 137 } | 140 } |
| 138 }, | 141 }, |
| 139 | 142 |
| 140 /** @private */ | 143 /** @private */ |
| 141 onSetModesChanged_: function() { | 144 onSetModesChanged_: function() { |
| 142 if (this.shouldAskForPassword_(settings.getCurrentRoute())) { | 145 if (settings.getCurrentRoute() == settings.Route.LOCK_SCREEN && |
| 146 !this.setModes_) { |
| 143 this.$.setupPin.close(); | 147 this.$.setupPin.close(); |
| 144 this.$.passwordPrompt.open(); | 148 this.$.passwordPrompt.open(); |
| 145 } | 149 } |
| 146 }, | 150 }, |
| 147 | 151 |
| 148 /** @private */ | 152 /** @private */ |
| 149 onPasswordClosed_: function() { | 153 onPasswordClosed_: function() { |
| 150 if (!this.setModes_) | 154 if (!this.setModes_) |
| 151 settings.navigateTo(settings.Route.PEOPLE); | 155 settings.navigateTo(settings.Route.PEOPLE); |
| 152 }, | 156 }, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 onConfigurePin_: function(e) { | 194 onConfigurePin_: function(e) { |
| 191 e.preventDefault(); | 195 e.preventDefault(); |
| 192 this.$.setupPin.open(); | 196 this.$.setupPin.open(); |
| 193 this.writeUma_(LockScreenProgress.CHOOSE_PIN_OR_PASSWORD); | 197 this.writeUma_(LockScreenProgress.CHOOSE_PIN_OR_PASSWORD); |
| 194 }, | 198 }, |
| 195 | 199 |
| 196 /** @private */ | 200 /** @private */ |
| 197 onEditFingerprints_: function() { | 201 onEditFingerprints_: function() { |
| 198 settings.navigateTo(settings.Route.FINGERPRINT); | 202 settings.navigateTo(settings.Route.FINGERPRINT); |
| 199 }, | 203 }, |
| 200 | |
| 201 /** | |
| 202 * @param {!settings.Route} route | |
| 203 * @return {boolean} Whether the password dialog should be shown. | |
| 204 * @private | |
| 205 */ | |
| 206 shouldAskForPassword_: function(route) { | |
| 207 return route == settings.Route.LOCK_SCREEN && !this.setModes_; | |
| 208 }, | |
| 209 }); | 204 }); |
| OLD | NEW |