Commit 4e52305d authored by Michael Hansen's avatar Michael Hansen Committed by Commit Bot

[Nearby] Disable/enable logic for confirm button during onboarding.

Adds disable/enable logic for the confirm button when on the contact
visibility selection page during the onboarding process for Nearby
Share.

Screenshot:
  https://screenshot.googleplex.com/AKUymEEvWtvCTrU.png

Bug: b:168841167
Change-Id: Idf6d92f743c282262e410b2ec2a0045a0ad5d4b7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2527892
Commit-Queue: Michael Hansen <hansenmichael@google.com>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826029}
parent f72000a1
...@@ -107,6 +107,12 @@ Polymer({ ...@@ -107,6 +107,12 @@ Polymer({
type: Array, type: Array,
value: null, value: null,
}, },
isVisibilitySelected: {
type: Boolean,
computed: 'isVisibilitySelected_(selectedVisibility)',
notify: true,
},
}, },
/** @private {?nearbyShare.mojom.ContactManagerInterface} */ /** @private {?nearbyShare.mojom.ContactManagerInterface} */
......
...@@ -23,12 +23,14 @@ ...@@ -23,12 +23,14 @@
sub-title="$i18n{nearbyShareVisibilityPageSubtitle}" sub-title="$i18n{nearbyShareVisibilityPageSubtitle}"
action-button-label="$i18n{nearbyShareActionsConfirm}" action-button-label="$i18n{nearbyShareActionsConfirm}"
action-button-event-name="next" action-button-event-name="next"
action-disabled="[[!isVisibilitySelected_]]"
cancel-button-label="$i18n{nearbyShareActionsCancel}" cancel-button-label="$i18n{nearbyShareActionsCancel}"
cancel-button-event-name="close" cancel-button-event-name="close"
utility-button-label="$i18n{nearbyShareVisibilityPageManageContacts}" utility-button-label="$i18n{nearbyShareVisibilityPageManageContacts}"
utility-button-event-name="manage-contacts"> utility-button-event-name="manage-contacts">
<div id=center-content slot="content"> <div id=center-content slot="content">
<nearby-contact-visibility id="contactVisibility" <nearby-contact-visibility id="contactVisibility"
is-visibility-selected="{{isVisibilitySelected_}}"
settings="{{settings}}"> settings="{{settings}}">
</nearby-contact-visibility> </nearby-contact-visibility>
</div> </div>
......
...@@ -21,15 +21,17 @@ Polymer({ ...@@ -21,15 +21,17 @@ Polymer({
settings: { settings: {
type: Object, type: Object,
notify: true, notify: true,
} },
},
listeners: { /** @private */
'next': 'onNext_', isVisibilitySelected_: {
'manage-contacts': 'onManageContacts_' type: Boolean,
notify: true,
},
}, },
/** @private */ listeners: {'next': 'onNext_', 'manage-contacts': 'onManageContacts_'},
onNext_() { onNext_() {
this.set('settings.enabled', true); this.set('settings.enabled', true);
this.fire('onboarding-complete'); this.fire('onboarding-complete');
......
...@@ -64,6 +64,13 @@ suite('NearbyShare', function() { ...@@ -64,6 +64,13 @@ suite('NearbyShare', function() {
return dialog.$$(page).$$('nearby-page-template').$$(button); return dialog.$$(page).$$('nearby-page-template').$$(button);
} }
function selectAllContacts() {
dialog.$$('nearby-visibility-page')
.$$('nearby-contact-visibility')
.$$('#allContacts')
.click();
}
suite('EnabledTests', function() { suite('EnabledTests', function() {
setup(function() { setup(function() {
sharedSetup(true); sharedSetup(true);
...@@ -163,6 +170,8 @@ suite('NearbyShare', function() { ...@@ -163,6 +170,8 @@ suite('NearbyShare', function() {
assertTrue(isVisible('nearby-visibility-page')); assertTrue(isVisible('nearby-visibility-page'));
// Advance to the next page. // Advance to the next page.
fakeContactManager.completeDownload();
selectAllContacts();
getButton('nearby-visibility-page', '#actionButton').click(); getButton('nearby-visibility-page', '#actionButton').click();
await test_util.waitAfterNextRender(dialog); await test_util.waitAfterNextRender(dialog);
...@@ -183,6 +192,8 @@ suite('NearbyShare', function() { ...@@ -183,6 +192,8 @@ suite('NearbyShare', function() {
assertTrue(isVisible('nearby-visibility-page')); assertTrue(isVisible('nearby-visibility-page'));
// This should close the dialog. // This should close the dialog.
fakeContactManager.completeDownload();
selectAllContacts();
getButton('nearby-visibility-page', '#actionButton').click(); getButton('nearby-visibility-page', '#actionButton').click();
assertTrue(dialog.closing_); assertTrue(dialog.closing_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment