| // Copyright 2018 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 |
| * Subpage of settings-multidevice-page for managing multidevice features |
| * individually and for forgetting a host. |
| */ |
| cr.exportPath('settings'); |
| |
| Polymer({ |
| is: 'settings-multidevice-subpage', |
| |
| behaviors: [MultiDeviceFeatureBehavior], |
| |
| properties: { |
| /** |
| * Alias for allowing Polymer bindings to settings.routes. |
| * @type {?SettingsRoutes} |
| */ |
| routes: { |
| type: Object, |
| value: settings.routes, |
| }, |
| }, |
| |
| /** @private {?settings.MultiDeviceBrowserProxy} */ |
| browserProxy_: null, |
| |
| /** @override */ |
| created: function() { |
| this.browserProxy_ = settings.MultiDeviceBrowserProxyImpl.getInstance(); |
| }, |
| |
| /** @private */ |
| handleVerifyButtonClick_: function(event) { |
| this.browserProxy_.retryPendingHostSetup(); |
| }, |
| |
| /** @private */ |
| handleAndroidMessagesButtonClick_: function() { |
| this.browserProxy_.setUpAndroidSms(); |
| }, |
| |
| /** |
| * @return {boolean} |
| * @private |
| */ |
| shouldShowIndividualFeatures_: function() { |
| return this.pageContentData.mode === |
| settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED; |
| }, |
| |
| /** |
| * @return {boolean} |
| * @private |
| */ |
| shouldShowVerifyButton_: function() { |
| return [ |
| settings.MultiDeviceSettingsMode.HOST_SET_WAITING_FOR_SERVER, |
| settings.MultiDeviceSettingsMode.HOST_SET_WAITING_FOR_VERIFICATION, |
| ].includes(this.pageContentData.mode); |
| }, |
| |
| /** |
| * @return {boolean} |
| * @private |
| */ |
| shouldShowSuiteToggle_: function() { |
| return this.pageContentData.mode === |
| settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED; |
| }, |
| |
| /** @private */ |
| handleForgetDeviceClick_: function() { |
| this.$.forgetDeviceDialog.showModal(); |
| }, |
| |
| /** @private */ |
| onForgetDeviceDialogCancelClick_: function() { |
| this.$.forgetDeviceDialog.close(); |
| }, |
| |
| /** @private */ |
| onForgetDeviceDialogConfirmClick_: function() { |
| this.fire('forget-device-requested'); |
| this.$.forgetDeviceDialog.close(); |
| }, |
| |
| /** |
| * @return {string} |
| * @private |
| */ |
| getStatusInnerHtml_: function() { |
| if ([ |
| settings.MultiDeviceSettingsMode.HOST_SET_WAITING_FOR_SERVER, |
| settings.MultiDeviceSettingsMode.HOST_SET_WAITING_FOR_VERIFICATION, |
| ].includes(this.pageContentData.mode)) { |
| return this.i18nAdvanced('multideviceVerificationText'); |
| } |
| return this.isSuiteOn() ? this.i18n('multideviceEnabled') : |
| this.i18n('multideviceDisabled'); |
| }, |
| |
| /** |
| * @return {boolean} |
| * @private |
| */ |
| doesAndroidMessagesRequireSetUp_: function() { |
| return this.getFeatureState(settings.MultiDeviceFeature.MESSAGES) === |
| settings.MultiDeviceFeatureState.FURTHER_SETUP_REQUIRED; |
| }, |
| |
| /** |
| * @return {boolean} |
| * @private |
| */ |
| isAndroidMessagesSetupButtonDisabled_: function() { |
| const messagesFeatureState = |
| this.getFeatureState(settings.MultiDeviceFeature.MESSAGES); |
| return !this.isSuiteOn() || |
| messagesFeatureState === |
| settings.MultiDeviceFeatureState.PROHIBITED_BY_POLICY; |
| } |
| }); |