Commit 921bdf2f authored by Nnamdi Theodore Johnson-Kanu's avatar Nnamdi Theodore Johnson-Kanu Committed by Commit Bot

[CrOS settings] Add Phone Hub feature to multidevice page

- Adds new string search tags for Phone Hub and related features
- Adds new sections for new Phone Hub realated features
- Update test to include new Phone Hub feature

Bug: 1106937
Change-Id: I4dbe78b0c94a9e26118ea4e51b725294472e6cb1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2315394Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Commit-Queue: Nnamdi Theodore Johnson-kanu <tjohnsonkanu@google.com>
Cr-Commit-Position: refs/heads/master@{#795514}
parent 6ecff125
...@@ -234,6 +234,18 @@ ...@@ -234,6 +234,18 @@
<message name="IDS_OS_SETTINGS_TAG_NEARBY_SHARE_TURN_OFF_ALT1" desc="Text for search result item which, when clicked, navigates the user to Nearby Share settings. Alternate phrase for: 'Turn off Nearby Share'"> <message name="IDS_OS_SETTINGS_TAG_NEARBY_SHARE_TURN_OFF_ALT1" desc="Text for search result item which, when clicked, navigates the user to Nearby Share settings. Alternate phrase for: 'Turn off Nearby Share'">
Disable Nearby Share Disable Nearby Share
</message> </message>
<message name="IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB" translateable="false" desc="Text for search result item which, when clicked, navigates the user to Phone Hub settings, with a toggle to enable/disable the feature. Phone hub provides the user with information about their Android phone and allows the user to perform phone-side actions directly in the Chrome OS UI.">
Phone Hub
</message>
<message name="IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS" translateable="false" desc="Text for search result item which, when clicked, navigates the user to Phone Hub Notifications settings, with a toggle to enable/disable the feature. Phone Hub Notifications mirrors all standard notifications currently being shown on connected phone device.">
Phone Hub notifications
</message>
<message name="IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_NOTIFICATION_BADGE" translateable="false" desc="Text for search result item which, when clicked, navigates the user to Phone Hub Notifications badge settings, with a toggle to enable/disable the feature. Phone Hub Notifications Badge mirrors notifications count currently being shown on connected device.">
Phone Hub notifications badge
</message>
<message name="IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION" translateable="false" desc="Text for search result item which, when clicked, navigates the user to Phone Hub Notifications badge settings, with a toggle to enable/disable the feature. Phone Hub Task Continuation allows user to continue a task between connected device and Chrome OS">
Phone Hub task continuation
</message>
<!-- People section. --> <!-- People section. -->
......
...@@ -2118,6 +2118,18 @@ ...@@ -2118,6 +2118,18 @@
<message name="IDS_SETTINGS_MULTIDEVICE_ANDROID_MESSAGES_SUMMARY" desc="Description of for the 'Android Messages' setting. This feature lets the user read and reply to text messages from their Chromebook. New text messages will appear as notifications."> <message name="IDS_SETTINGS_MULTIDEVICE_ANDROID_MESSAGES_SUMMARY" desc="Description of for the 'Android Messages' setting. This feature lets the user read and reply to text messages from their Chromebook. New text messages will appear as notifications.">
Send and receive text messages from your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>. <ph name="LINK_BEGIN">&lt;a target="_blank" href="$2<ex>https://google.com/</ex>"&gt;</ph>Learn more<ph name="LINK_END">&lt;/a&gt;</ph> Send and receive text messages from your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>. <ph name="LINK_BEGIN">&lt;a target="_blank" href="$2<ex>https://google.com/</ex>"&gt;</ph>Learn more<ph name="LINK_END">&lt;/a&gt;</ph>
</message> </message>
<message name="IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_SECTION_TITLE" translateable="false" desc="The title of the Phone Hub section on the settings page.">
Phone Hub
</message>
<message name="IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS_SECTION_TITLE" translateable="false" desc="The title of the Phone Hub Notifications section on the settings page.">
Notifications
</message>
<message name="IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_NOTIFICATION_BADGE_SECTION_TITLE" translateable="false" desc="The title of the Phone Hub Notifications Badge section on the settings page.">
Notifications Badge
</message>
<message name="IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION_SECTION_TITLE" translateable="false" desc="The title of the Phone Hub Task Continuation section on the settings page.">
Task Continuation
</message>
<!-- Lock Screen Page (OS settings) --> <!-- Lock Screen Page (OS settings) -->
<message name="IDS_ASH_SETTINGS_LOCK_SCREEN_NOTIFICATION_TITLE" desc="The title of options to change the behavior of notifications on the lock screen."> <message name="IDS_ASH_SETTINGS_LOCK_SCREEN_NOTIFICATION_TITLE" desc="The title of options to change the behavior of notifications on the lock screen.">
......
...@@ -40,6 +40,10 @@ cr.define('settings', function() { ...@@ -40,6 +40,10 @@ cr.define('settings', function() {
INSTANT_TETHERING: 1, INSTANT_TETHERING: 1,
MESSAGES: 2, MESSAGES: 2,
SMART_LOCK: 3, SMART_LOCK: 3,
PHONE_HUB: 4,
PHONE_HUB_NOTIFICATIONS: 5,
PHONE_HUB_NOTIFICATION_BADGE: 6,
PHONE_HUB_TASK_CONTINUATION: 7,
}; };
/** /**
...@@ -58,6 +62,7 @@ cr.define('settings', function() { ...@@ -58,6 +62,7 @@ cr.define('settings', function() {
UNAVAILABLE_INSUFFICIENT_SECURITY: 6, UNAVAILABLE_INSUFFICIENT_SECURITY: 6,
UNAVAILABLE_SUITE_DISABLED: 7, UNAVAILABLE_SUITE_DISABLED: 7,
FURTHER_SETUP_REQUIRED: 8, FURTHER_SETUP_REQUIRED: 8,
UNAVAILABLE_TOP_LEVEL_FEATURE_DISABLED: 9,
}; };
/** /**
...@@ -80,6 +85,10 @@ cr.define('settings', function() { ...@@ -80,6 +85,10 @@ cr.define('settings', function() {
* instantTetheringState: !settings.MultiDeviceFeatureState, * instantTetheringState: !settings.MultiDeviceFeatureState,
* messagesState: !settings.MultiDeviceFeatureState, * messagesState: !settings.MultiDeviceFeatureState,
* smartLockState: !settings.MultiDeviceFeatureState, * smartLockState: !settings.MultiDeviceFeatureState,
* phoneHubState: !settings.MultiDeviceFeatureState,
* phoneHubNotificationsState: !settings.MultiDeviceFeatureState,
* phoneHubNotificationBadgeState: !settings.MultiDeviceFeatureState,
* phoneHubTaskContinuationState: !settings.MultiDeviceFeatureState,
* isAndroidSmsPairingComplete: boolean * isAndroidSmsPairingComplete: boolean
* }} * }}
*/ */
......
...@@ -106,6 +106,14 @@ const MultiDeviceFeatureBehaviorImpl = { ...@@ -106,6 +106,14 @@ const MultiDeviceFeatureBehaviorImpl = {
return this.i18n('multideviceAndroidMessagesItemTitle'); return this.i18n('multideviceAndroidMessagesItemTitle');
case settings.MultiDeviceFeature.SMART_LOCK: case settings.MultiDeviceFeature.SMART_LOCK:
return this.i18n('multideviceSmartLockItemTitle'); return this.i18n('multideviceSmartLockItemTitle');
case settings.MultiDeviceFeature.PHONE_HUB:
return this.i18n('multidevicePhoneHubItemTitle');
case settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS:
return this.i18n('multidevicePhoneHubNotificationsItemTitle');
case settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE:
return this.i18n('multidevicePhoneHubNotificationBadgeItemTitle');
case settings.MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION:
return this.i18n('multidevicePhoneHubTaskContinuationItemTitle');
default: default:
return ''; return '';
} }
...@@ -125,6 +133,12 @@ const MultiDeviceFeatureBehaviorImpl = { ...@@ -125,6 +133,12 @@ const MultiDeviceFeatureBehaviorImpl = {
return 'os-settings:multidevice-messages'; return 'os-settings:multidevice-messages';
case settings.MultiDeviceFeature.SMART_LOCK: case settings.MultiDeviceFeature.SMART_LOCK:
return 'os-settings:multidevice-smart-lock'; return 'os-settings:multidevice-smart-lock';
// TODO(https://crbug.com/1106937): Use real Phone Hub asset.
case settings.MultiDeviceFeature.PHONE_HUB:
case settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS:
case settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE:
case settings.MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION:
return 'os-settings:multidevice-better-together-suite';
default: default:
return ''; return '';
} }
...@@ -170,6 +184,14 @@ const MultiDeviceFeatureBehaviorImpl = { ...@@ -170,6 +184,14 @@ const MultiDeviceFeatureBehaviorImpl = {
return this.pageContentData.messagesState; return this.pageContentData.messagesState;
case settings.MultiDeviceFeature.SMART_LOCK: case settings.MultiDeviceFeature.SMART_LOCK:
return this.pageContentData.smartLockState; return this.pageContentData.smartLockState;
case settings.MultiDeviceFeature.PHONE_HUB:
return this.pageContentData.phoneHubState;
case settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS:
return this.pageContentData.phoneHubNotificationsState;
case settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE:
return this.pageContentData.phoneHubNotificationBadgeState;
case settings.MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION:
return this.pageContentData.phoneHubTaskContinuationState;
default: default:
return null; return null;
} }
......
...@@ -99,6 +99,42 @@ ...@@ -99,6 +99,42 @@
</template> </template>
</settings-multidevice-feature-item> </settings-multidevice-feature-item>
</template> </template>
<template is="dom-if"
if="[[isFeatureSupported(
MultiDeviceFeature.PHONE_HUB, pageContentData)]]"
restamp>
<settings-multidevice-feature-item id="phoneHubItem"
feature="[[MultiDeviceFeature.PHONE_HUB]]"
page-content-data="[[pageContentData]]">
</settings-multidevice-feature-item>
</template>
<template is="dom-if"
if="[[isFeatureSupported(
MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS, pageContentData)]]"
restamp>
<settings-multidevice-feature-item id="phoneHubNotificationsItem"
feature="[[MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS]]"
page-content-data="[[pageContentData]]">
</settings-multidevice-feature-item>
</template>
<template is="dom-if"
if="[[isFeatureSupported(
MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE, pageContentData)]]"
restamp>
<settings-multidevice-feature-item id="phoneHubNotificationBadgeItem"
feature="[[MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE]]"
page-content-data="[[pageContentData]]">
</settings-multidevice-feature-item>
</template>
<template is="dom-if"
if="[[isFeatureSupported(
MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION, pageContentData)]]"
restamp>
<settings-multidevice-feature-item id="phoneHubTaskContinuationItem"
feature="[[MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION]]"
page-content-data="[[pageContentData]]">
</settings-multidevice-feature-item>
</template>
</div> </div>
</template> </template>
<div class="settings-box two-line"> <div class="settings-box two-line">
......
...@@ -52,6 +52,10 @@ enum Setting { ...@@ -52,6 +52,10 @@ enum Setting {
kMessagesOnOff = 206, kMessagesOnOff = 206,
kForgetPhone = 207, kForgetPhone = 207,
kNearbyShareOnOff = 208, kNearbyShareOnOff = 208,
kPhoneHubOnOff = 209,
kPhoneHubNotificationsOnOff = 210,
kPhoneHubNotificationBadgeOnOff = 211,
kPhoneHubTaskContinuationOnOff = 212,
// People section. // People section.
kAddAccount = 300, kAddAccount = 300,
......
...@@ -34,6 +34,13 @@ const char kPageContentDataHostDeviceNameKey[] = "hostDeviceName"; ...@@ -34,6 +34,13 @@ const char kPageContentDataHostDeviceNameKey[] = "hostDeviceName";
const char kPageContentDataBetterTogetherStateKey[] = "betterTogetherState"; const char kPageContentDataBetterTogetherStateKey[] = "betterTogetherState";
const char kPageContentDataInstantTetheringStateKey[] = "instantTetheringState"; const char kPageContentDataInstantTetheringStateKey[] = "instantTetheringState";
const char kPageContentDataMessagesStateKey[] = "messagesState"; const char kPageContentDataMessagesStateKey[] = "messagesState";
const char kPageContentDataPhoneHubStateKey[] = "phoneHubState";
const char kPageContentDataPhoneHubNotificationsStateKey[] =
"phoneHubNotificationsState";
const char kPageContentDataPhoneHubNotificationBadgeStateKey[] =
"phoneHubNotificationBadgeState";
const char kPageContentDataPhoneHubTaskContinuationStateKey[] =
"phoneHubTaskContinuationState";
const char kPageContentDataSmartLockStateKey[] = "smartLockState"; const char kPageContentDataSmartLockStateKey[] = "smartLockState";
const char kIsAndroidSmsPairingComplete[] = "isAndroidSmsPairingComplete"; const char kIsAndroidSmsPairingComplete[] = "isAndroidSmsPairingComplete";
...@@ -374,6 +381,25 @@ MultideviceHandler::GeneratePageContentDataDictionary() { ...@@ -374,6 +381,25 @@ MultideviceHandler::GeneratePageContentDataDictionary() {
kPageContentDataSmartLockStateKey, kPageContentDataSmartLockStateKey,
static_cast<int32_t>( static_cast<int32_t>(
feature_states[multidevice_setup::mojom::Feature::kSmartLock])); feature_states[multidevice_setup::mojom::Feature::kSmartLock]));
page_content_dictionary->SetInteger(
kPageContentDataPhoneHubStateKey,
static_cast<int32_t>(
feature_states[multidevice_setup::mojom::Feature::kPhoneHub]));
page_content_dictionary->SetInteger(
kPageContentDataPhoneHubNotificationsStateKey,
static_cast<int32_t>(
feature_states
[multidevice_setup::mojom::Feature::kPhoneHubNotifications]));
page_content_dictionary->SetInteger(
kPageContentDataPhoneHubNotificationBadgeStateKey,
static_cast<int32_t>(
feature_states
[multidevice_setup::mojom::Feature::kPhoneHubNotificationBadge]));
page_content_dictionary->SetInteger(
kPageContentDataPhoneHubTaskContinuationStateKey,
static_cast<int32_t>(
feature_states
[multidevice_setup::mojom::Feature::kPhoneHubTaskContinuation]));
if (host_status_with_device.second) { if (host_status_with_device.second) {
page_content_dictionary->SetString(kPageContentDataHostDeviceNameKey, page_content_dictionary->SetString(kPageContentDataHostDeviceNameKey,
......
...@@ -53,6 +53,14 @@ GenerateDefaultFeatureStatesMap() { ...@@ -53,6 +53,14 @@ GenerateDefaultFeatureStatesMap() {
{multidevice_setup::mojom::Feature::kMessages, {multidevice_setup::mojom::Feature::kMessages,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost}, multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kSmartLock, {multidevice_setup::mojom::Feature::kSmartLock,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kPhoneHub,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kPhoneHubNotifications,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kPhoneHubNotificationBadge,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost},
{multidevice_setup::mojom::Feature::kPhoneHubTaskContinuation,
multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost}}; multidevice_setup::mojom::FeatureState::kUnavailableNoVerifiedHost}};
} }
...@@ -94,6 +102,32 @@ void VerifyPageContentDict( ...@@ -94,6 +102,32 @@ void VerifyPageContentDict(
it = feature_states_map.find(multidevice_setup::mojom::Feature::kSmartLock); it = feature_states_map.find(multidevice_setup::mojom::Feature::kSmartLock);
EXPECT_EQ(static_cast<int>(it->second), smart_lock_state); EXPECT_EQ(static_cast<int>(it->second), smart_lock_state);
int phone_hub_state;
EXPECT_TRUE(page_content_dict->GetInteger("phoneHubState", &phone_hub_state));
it = feature_states_map.find(multidevice_setup::mojom::Feature::kPhoneHub);
EXPECT_EQ(static_cast<int>(it->second), phone_hub_state);
int phone_hub_notifications_state;
EXPECT_TRUE(page_content_dict->GetInteger("phoneHubNotificationsState",
&phone_hub_notifications_state));
it = feature_states_map.find(
multidevice_setup::mojom::Feature::kPhoneHubNotifications);
EXPECT_EQ(static_cast<int>(it->second), phone_hub_notifications_state);
int phone_hub_notification_badge_state;
EXPECT_TRUE(page_content_dict->GetInteger(
"phoneHubNotificationBadgeState", &phone_hub_notification_badge_state));
it = feature_states_map.find(
multidevice_setup::mojom::Feature::kPhoneHubNotificationBadge);
EXPECT_EQ(static_cast<int>(it->second), phone_hub_notification_badge_state);
int phone_hub_task_continuation_state;
EXPECT_TRUE(page_content_dict->GetInteger(
"phoneHubTaskContinuationState", &phone_hub_task_continuation_state));
it = feature_states_map.find(
multidevice_setup::mojom::Feature::kPhoneHubTaskContinuation);
EXPECT_EQ(static_cast<int>(it->second), phone_hub_task_continuation_state);
std::string host_device_name; std::string host_device_name;
if (expected_host_device) { if (expected_host_device) {
EXPECT_TRUE( EXPECT_TRUE(
......
...@@ -34,43 +34,66 @@ namespace settings { ...@@ -34,43 +34,66 @@ namespace settings {
namespace { namespace {
const std::vector<SearchConcept>& GetMultiDeviceOptedInSearchConcepts() { const std::vector<SearchConcept>& GetMultiDeviceOptedInSearchConcepts() {
static const base::NoDestructor<std::vector<SearchConcept>> tags({ static const base::NoDestructor<std::vector<SearchConcept>> tags(
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_SMART_LOCK_OPTIONS, {{IDS_OS_SETTINGS_TAG_MULTIDEVICE_SMART_LOCK_OPTIONS,
mojom::kSmartLockSubpagePath, mojom::kSmartLockSubpagePath,
mojom::SearchResultIcon::kLock, mojom::SearchResultIcon::kLock,
mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSubpage, mojom::SearchResultType::kSubpage,
{.subpage = mojom::Subpage::kSmartLock}}, {.subpage = mojom::Subpage::kSmartLock}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_FORGET, {IDS_OS_SETTINGS_TAG_MULTIDEVICE_FORGET,
mojom::kMultiDeviceFeaturesSubpagePath, mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone, mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting, mojom::SearchResultType::kSetting,
{.setting = mojom::Setting::kForgetPhone}, {.setting = mojom::Setting::kForgetPhone},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_FORGET_ALT1, {IDS_OS_SETTINGS_TAG_MULTIDEVICE_FORGET_ALT1,
SearchConcept::kAltTagEnd}}, SearchConcept::kAltTagEnd}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_MESSAGES, {IDS_OS_SETTINGS_TAG_MULTIDEVICE_MESSAGES,
mojom::kMultiDeviceFeaturesSubpagePath, mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kMessages, mojom::SearchResultIcon::kMessages,
mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting, mojom::SearchResultType::kSetting,
{.setting = mojom::Setting::kMessagesOnOff}, {.setting = mojom::Setting::kMessagesOnOff},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_MESSAGES_ALT1, {IDS_OS_SETTINGS_TAG_MULTIDEVICE_MESSAGES_ALT1,
SearchConcept::kAltTagEnd}}, SearchConcept::kAltTagEnd}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE, {IDS_OS_SETTINGS_TAG_MULTIDEVICE,
mojom::kMultiDeviceFeaturesSubpagePath, mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone, mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSubpage, mojom::SearchResultType::kSubpage,
{.subpage = mojom::Subpage::kMultiDeviceFeatures}, {.subpage = mojom::Subpage::kMultiDeviceFeatures},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_ALT1, SearchConcept::kAltTagEnd}}, {IDS_OS_SETTINGS_TAG_MULTIDEVICE_ALT1, SearchConcept::kAltTagEnd}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_SMART_LOCK, {IDS_OS_SETTINGS_TAG_MULTIDEVICE_SMART_LOCK,
mojom::kMultiDeviceFeaturesSubpagePath, mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kLock, mojom::SearchResultIcon::kLock,
mojom::SearchResultDefaultRank::kMedium, mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSubpage, mojom::SearchResultType::kSubpage,
{.subpage = mojom::Subpage::kSmartLock}}, {.subpage = mojom::Subpage::kSmartLock}},
}); {IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB,
mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting,
{.setting = mojom::Setting::kPhoneHubOnOff}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS,
mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting,
{.setting = mojom::Setting::kPhoneHubNotificationsOnOff}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_NOTIFICATION_BADGE,
mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting,
{.setting = mojom::Setting::kPhoneHubNotificationBadgeOnOff}},
{IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION,
mojom::kMultiDeviceFeaturesSubpagePath,
mojom::SearchResultIcon::kPhone,
mojom::SearchResultDefaultRank::kMedium,
mojom::SearchResultType::kSetting,
{.setting = mojom::Setting::kPhoneHubTaskContinuationOnOff}}});
return *tags; return *tags;
} }
...@@ -91,8 +114,21 @@ const std::vector<SearchConcept>& GetMultiDeviceOptedOutSearchConcepts() { ...@@ -91,8 +114,21 @@ const std::vector<SearchConcept>& GetMultiDeviceOptedOutSearchConcepts() {
IDS_OS_SETTINGS_TAG_MULTIDEVICE_SMART_LOCK, SearchConcept::kAltTagEnd}, IDS_OS_SETTINGS_TAG_MULTIDEVICE_SMART_LOCK, SearchConcept::kAltTagEnd},
}; };
// If Instant Tethering is available, also include that in the list. bool is_phone_hub_enabled = features::IsPhoneHubEnabled();
if (base::FeatureList::IsEnabled(features::kInstantTethering)) { bool is_instant_tether_enabled =
base::FeatureList::IsEnabled(features::kInstantTethering);
// If Phone Hub and/or Instant Tethering is available, also include them in
// the list.
if (is_phone_hub_enabled) {
set_up_concept.alt_tag_ids[3] = IDS_OS_SETTINGS_TAG_MULTIDEVICE_PHONE_HUB;
if (is_instant_tether_enabled) {
set_up_concept.alt_tag_ids[4] = IDS_OS_SETTINGS_TAG_INSTANT_TETHERING;
} else {
set_up_concept.alt_tag_ids[4] = SearchConcept::kAltTagEnd;
}
} else if (is_instant_tether_enabled) {
set_up_concept.alt_tag_ids[3] = IDS_OS_SETTINGS_TAG_INSTANT_TETHERING; set_up_concept.alt_tag_ids[3] = IDS_OS_SETTINGS_TAG_INSTANT_TETHERING;
set_up_concept.alt_tag_ids[4] = SearchConcept::kAltTagEnd; set_up_concept.alt_tag_ids[4] = SearchConcept::kAltTagEnd;
} }
...@@ -199,6 +235,14 @@ void MultiDeviceSection::AddLoadTimeData( ...@@ -199,6 +235,14 @@ void MultiDeviceSection::AddLoadTimeData(
{"multideviceEnabled", IDS_SETTINGS_MULTIDEVICE_ENABLED}, {"multideviceEnabled", IDS_SETTINGS_MULTIDEVICE_ENABLED},
{"multideviceDisabled", IDS_SETTINGS_MULTIDEVICE_DISABLED}, {"multideviceDisabled", IDS_SETTINGS_MULTIDEVICE_DISABLED},
{"multideviceSmartLockItemTitle", IDS_SETTINGS_EASY_UNLOCK_SECTION_TITLE}, {"multideviceSmartLockItemTitle", IDS_SETTINGS_EASY_UNLOCK_SECTION_TITLE},
{"multidevicePhoneHubItemTitle",
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_SECTION_TITLE},
{"multidevicePhoneHubNotificationsItemTitle",
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_NOTIFICATIONS_SECTION_TITLE},
{"multidevicePhoneHubNotificationBadgeItemTitle",
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_NOTIFICATION_BADGE_SECTION_TITLE},
{"multidevicePhoneHubTaskContinuationItemTitle",
IDS_SETTINGS_MULTIDEVICE_PHONE_HUB_TASK_CONTINUATION_SECTION_TITLE},
{"multideviceInstantTetheringItemTitle", {"multideviceInstantTetheringItemTitle",
IDS_SETTINGS_MULTIDEVICE_INSTANT_TETHERING}, IDS_SETTINGS_MULTIDEVICE_INSTANT_TETHERING},
{"multideviceInstantTetheringItemSummary", {"multideviceInstantTetheringItemSummary",
...@@ -315,6 +359,10 @@ void MultiDeviceSection::RegisterHierarchy( ...@@ -315,6 +359,10 @@ void MultiDeviceSection::RegisterHierarchy(
mojom::Setting::kMessagesSetUp, mojom::Setting::kMessagesSetUp,
mojom::Setting::kMessagesOnOff, mojom::Setting::kMessagesOnOff,
mojom::Setting::kForgetPhone, mojom::Setting::kForgetPhone,
mojom::Setting::kPhoneHubOnOff,
mojom::Setting::kPhoneHubNotificationsOnOff,
mojom::Setting::kPhoneHubNotificationBadgeOnOff,
mojom::Setting::kPhoneHubTaskContinuationOnOff,
}; };
RegisterNestedSettingBulk(mojom::Subpage::kMultiDeviceFeatures, RegisterNestedSettingBulk(mojom::Subpage::kMultiDeviceFeatures,
kMultiDeviceFeaturesSettings, generator); kMultiDeviceFeaturesSettings, generator);
......
...@@ -56,6 +56,22 @@ suite('Multidevice', function() { ...@@ -56,6 +56,22 @@ suite('Multidevice', function() {
settings.MultiDeviceFeature.SMART_LOCK) ? settings.MultiDeviceFeature.SMART_LOCK) ?
settings.MultiDeviceFeatureState.ENABLED_BY_USER : settings.MultiDeviceFeatureState.ENABLED_BY_USER :
settings.MultiDeviceFeatureState.NOT_SUPPORTED_BY_CHROMEBOOK, settings.MultiDeviceFeatureState.NOT_SUPPORTED_BY_CHROMEBOOK,
phoneHubState: supportedFeatures.includes(
settings.MultiDeviceFeature.PHONE_HUB) ?
settings.MultiDeviceFeatureState.ENABLED_BY_USER :
settings.MultiDeviceFeatureState.NOT_SUPPORTED_BY_CHROMEBOOK,
phoneHubNotificationsState: supportedFeatures.includes(
settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS) ?
settings.MultiDeviceFeatureState.ENABLED_BY_USER :
settings.MultiDeviceFeatureState.NOT_SUPPORTED_BY_CHROMEBOOK,
phoneHubNotificationBadgeState: supportedFeatures.includes(
settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE) ?
settings.MultiDeviceFeatureState.ENABLED_BY_USER :
settings.MultiDeviceFeatureState.NOT_SUPPORTED_BY_CHROMEBOOK,
phoneHubTaskContinuationState: supportedFeatures.includes(
settings.MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION) ?
settings.MultiDeviceFeatureState.ENABLED_BY_USER :
settings.MultiDeviceFeatureState.NOT_SUPPORTED_BY_CHROMEBOOK,
}); });
Polymer.dom.flush(); Polymer.dom.flush();
} }
...@@ -112,6 +128,18 @@ suite('Multidevice', function() { ...@@ -112,6 +128,18 @@ suite('Multidevice', function() {
assertEquals( assertEquals(
!!multideviceSubpage.$$('#messagesItem'), !!multideviceSubpage.$$('#messagesItem'),
mode === settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED); mode === settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED);
assertEquals(
!!multideviceSubpage.$$('#phoneHubItem'),
mode === settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED);
assertEquals(
!!multideviceSubpage.$$('#phoneHubNotificationsItem'),
mode === settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED);
assertEquals(
!!multideviceSubpage.$$('#phoneHubNotificationBadgeItem'),
mode === settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED);
assertEquals(
!!multideviceSubpage.$$('#phoneHubTaskContinuationItem'),
mode === settings.MultiDeviceSettingsMode.HOST_SET_VERIFIED);
} }
}); });
...@@ -121,24 +149,44 @@ suite('Multidevice', function() { ...@@ -121,24 +149,44 @@ suite('Multidevice', function() {
assertTrue(!!multideviceSubpage.$$('#smartLockItem')); assertTrue(!!multideviceSubpage.$$('#smartLockItem'));
assertTrue(!!multideviceSubpage.$$('#instantTetheringItem')); assertTrue(!!multideviceSubpage.$$('#instantTetheringItem'));
assertTrue(!!multideviceSubpage.$$('#messagesItem')); assertTrue(!!multideviceSubpage.$$('#messagesItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubNotificationsItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubNotificationBadgeItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubTaskContinuationItem'));
setSupportedFeatures([ setSupportedFeatures([
settings.MultiDeviceFeature.SMART_LOCK, settings.MultiDeviceFeature.SMART_LOCK,
settings.MultiDeviceFeature.MESSAGES, settings.MultiDeviceFeature.MESSAGES,
settings.MultiDeviceFeature.PHONE_HUB,
settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATIONS,
settings.MultiDeviceFeature.PHONE_HUB_NOTIFICATION_BADGE,
settings.MultiDeviceFeature.PHONE_HUB_TASK_CONTINUATION,
]); ]);
assertTrue(!!multideviceSubpage.$$('#smartLockItem')); assertTrue(!!multideviceSubpage.$$('#smartLockItem'));
assertFalse(!!multideviceSubpage.$$('#instantTetheringItem')); assertFalse(!!multideviceSubpage.$$('#instantTetheringItem'));
assertTrue(!!multideviceSubpage.$$('#messagesItem')); assertTrue(!!multideviceSubpage.$$('#messagesItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubNotificationsItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubNotificationBadgeItem'));
assertTrue(!!multideviceSubpage.$$('#phoneHubTaskContinuationItem'));
setSupportedFeatures([settings.MultiDeviceFeature.INSTANT_TETHERING]); setSupportedFeatures([settings.MultiDeviceFeature.INSTANT_TETHERING]);
assertFalse(!!multideviceSubpage.$$('#smartLockItem')); assertFalse(!!multideviceSubpage.$$('#smartLockItem'));
assertTrue(!!multideviceSubpage.$$('#instantTetheringItem')); assertTrue(!!multideviceSubpage.$$('#instantTetheringItem'));
assertFalse(!!multideviceSubpage.$$('#messagesItem')); assertFalse(!!multideviceSubpage.$$('#messagesItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubNotificationsItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubNotificationBadgeItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubTaskContinuationItem'));
setSupportedFeatures([]); setSupportedFeatures([]);
assertFalse(!!multideviceSubpage.$$('#smartLockItem')); assertFalse(!!multideviceSubpage.$$('#smartLockItem'));
assertFalse(!!multideviceSubpage.$$('#instantTetheringItem')); assertFalse(!!multideviceSubpage.$$('#instantTetheringItem'));
assertFalse(!!multideviceSubpage.$$('#messagesItem')); assertFalse(!!multideviceSubpage.$$('#messagesItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubNotificationsItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubNotificationBadgeItem'));
assertFalse(!!multideviceSubpage.$$('#phoneHubTaskContinuationItem'));
}); });
test('clicking SmartLock item routes to SmartLock subpage', function() { test('clicking SmartLock item routes to SmartLock subpage', function() {
......
...@@ -24,7 +24,14 @@ MultiDeviceSetupClient::GenerateDefaultFeatureStatesMap() { ...@@ -24,7 +24,14 @@ MultiDeviceSetupClient::GenerateDefaultFeatureStatesMap() {
{mojom::Feature::kInstantTethering, {mojom::Feature::kInstantTethering,
mojom::FeatureState::kProhibitedByPolicy}, mojom::FeatureState::kProhibitedByPolicy},
{mojom::Feature::kMessages, mojom::FeatureState::kProhibitedByPolicy}, {mojom::Feature::kMessages, mojom::FeatureState::kProhibitedByPolicy},
{mojom::Feature::kSmartLock, mojom::FeatureState::kProhibitedByPolicy}}; {mojom::Feature::kSmartLock, mojom::FeatureState::kProhibitedByPolicy},
{mojom::Feature::kPhoneHub, mojom::FeatureState::kProhibitedByPolicy},
{mojom::Feature::kPhoneHubNotifications,
mojom::FeatureState::kProhibitedByPolicy},
{mojom::Feature::kPhoneHubNotificationBadge,
mojom::FeatureState::kProhibitedByPolicy},
{mojom::Feature::kPhoneHubTaskContinuation,
mojom::FeatureState::kProhibitedByPolicy}};
} }
MultiDeviceSetupClient::MultiDeviceSetupClient() = default; MultiDeviceSetupClient::MultiDeviceSetupClient() = default;
......
...@@ -52361,6 +52361,10 @@ Called by update_net_trust_anchors.py.--> ...@@ -52361,6 +52361,10 @@ Called by update_net_trust_anchors.py.-->
<int value="206" label="Messages: On/Off"/> <int value="206" label="Messages: On/Off"/>
<int value="207" label="Forget Phone"/> <int value="207" label="Forget Phone"/>
<int value="208" label="Nearby Share: On/Off"/> <int value="208" label="Nearby Share: On/Off"/>
<int value="209" label="Phone Hub: On/Off"/>
<int value="210" label="Phone Hub Notifications: On/Off"/>
<int value="211" label="Phone Hub Notification Badge: On/Off"/>
<int value="212" label="Phone Hub Task Continuation: On/Off"/>
<int value="300" label="Add Account"/> <int value="300" label="Add Account"/>
<int value="301" label="Remove Account"/> <int value="301" label="Remove Account"/>
<int value="302" label="Split Sync On/Off"/> <int value="302" label="Split Sync On/Off"/>
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