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

Side by Side Diff: chrome/browser/resources/settings/people_page/lock_screen.js

Issue 2208473007: Rework quick unlock settings to follow new specs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Fix closure (bad merge) Created 4 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 /**
6 * @fileoverview
7 * 'settings-lock-screen' allows the user to change how they unlock their
8 * device.
9 *
10 * Example:
11 *
12 * <settings-lock-screen
13 * prefs="{{prefs}}">
14 * </settings-lock-screen>
15 */
16
17 Polymer({
18 is: 'settings-lock-screen',
19
20 behaviors: [I18nBehavior, LockStateBehavior, settings.RouteObserverBehavior],
21
22 properties: {
23 /** Preferences state. */
24 prefs: {
25 type: Object
26 },
27
28 /**
29 * setModes_ is a partially applied function that stores the previously
30 * entered password. It's defined only when the user has already entered a
31 * valid password.
32 *
33 * @type {Object|undefined}
34 * @private
35 */
36 setModes_: {
37 type: Object,
38 observer: 'onSetModesChanged_'
39 },
40 },
41
42 /** selectedUnlockType is defined in LockStateBehavior. */
43 observers: ['selectedUnlockTypeChanged_(selectedUnlockType)'],
44
45 /** @override */
46 attached: function() {
47 // currentRouteChanged is not called during the initial navigation. If the
48 // user navigates directly to the lockScreen page, we still want to show the
49 // password prompt page.
50 this.currentRouteChanged();
51 },
52
53 /**
54 * Overridden from settings.RouteObserverBehavior.
55 * @protected
56 */
57 currentRouteChanged: function() {
58 if (settings.getCurrentRoute() == settings.Route.LOCK_SCREEN &&
59 !this.setModes_) {
60 this.$.passwordPrompt.open();
61 } else {
62 // If the user navigated away from the lock screen settings page they will
63 // have to re-enter their password.
64 this.setModes_ = undefined;
65 }
66 },
67
68 /**
69 * Called when the unlock type has changed.
70 * @param {!string} selected The current unlock type.
71 * @private
72 */
73 selectedUnlockTypeChanged_: function(selected) {
74 if (selected == LockScreenUnlockType.VALUE_PENDING)
75 return;
76
77 if (selected != LockScreenUnlockType.PIN_PASSWORD && this.setModes_) {
78 this.setModes_.call(null, [], [], function(didSet) {
79 assert(didSet, 'Failed to clear quick unlock modes');
80 });
81 }
82 },
83
84 /** @private */
85 onSetModesChanged_: function() {
86 if (settings.getCurrentRoute() == settings.Route.LOCK_SCREEN &&
87 !this.setModes_) {
88 this.$.setupPin.close();
89 this.$.passwordPrompt.open();
90 }
91 },
92
93 /** @private */
94 onPasswordClosed_: function() {
95 if (!this.setModes_)
96 settings.navigateTo(settings.Route.PEOPLE);
97 },
98
99 /** @private */
100 onPinSetupDone_: function() {
101 this.$.setupPin.close();
102 },
103
104 /**
105 * Returns true if the setup pin section should be shown.
106 * @param {!string} selectedUnlockType The current unlock type. Used to let
107 * Polymer know about the dependency.
108 * @private
109 */
110 showConfigurePinButton_: function(selectedUnlockType) {
111 return selectedUnlockType === LockScreenUnlockType.PIN_PASSWORD;
112 },
113
114 /** @private */
115 getSetupPinText_: function() {
116 if (this.hasPin)
117 return this.i18n('lockScreenChangePinButton');
118 return this.i18n('lockScreenSetupPinButton');
119 },
120
121 /** @private */
122 onConfigurePin_: function() {
123 this.$.setupPin.open();
124 },
125 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698