Commit 5a9883f5 authored by Tim Song's avatar Tim Song Committed by Commit Bot

[CrOS PhoneHub] Log separate metrics on onboarding screen

The onboarding screen has two separate flows that need to be logged
distinctively for metrics.

BUG=1144056,1106937

Change-Id: If36d91a2f734c1f89f49fe2eae500283151ed184
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2519155Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Tim Song <tengs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824111}
parent 34b075c1
......@@ -45,18 +45,24 @@ class OnboardingMainView : public PhoneHubInterstitialView {
public:
OnboardingMainView(
chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker,
OnboardingView* parent_view)
OnboardingView* parent_view,
OnboardingView::OnboardingFlow onboarding_flow)
: PhoneHubInterstitialView(/*show_progress=*/false),
onboarding_ui_tracker_(onboarding_ui_tracker),
parent_view_(parent_view) {
parent_view_(parent_view),
onboarding_flow_(onboarding_flow) {
SetID(PhoneHubViewID::kOnboardingMainView);
InitLayout();
}
// PhoneHubInterstitialView:
Screen GetScreenForMetrics() const override {
// TODO(tengs): Distinguish between the two different onboarding flows.
return Screen::kOnboardingNewMultideviceUser;
switch (onboarding_flow_) {
case OnboardingView::kExistingMultideviceUser:
return Screen::kOnboardingExistingMultideviceUser;
case OnboardingView::kNewMultideviceUser:
return Screen::kOnboardingNewMultideviceUser;
}
}
private:
......@@ -105,6 +111,7 @@ class OnboardingMainView : public PhoneHubInterstitialView {
chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker_ = nullptr;
OnboardingView* parent_view_ = nullptr;
const OnboardingView::OnboardingFlow onboarding_flow_;
};
// OnboardingDismissPromptView ------------------------------------------------
......@@ -166,13 +173,14 @@ class OnboardingDismissPromptView : public PhoneHubInterstitialView {
// OnboardingView -------------------------------------------------------------
OnboardingView::OnboardingView(
chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker,
TrayBubbleView* bubble_view)
TrayBubbleView* bubble_view,
OnboardingFlow onboarding_flow)
: onboarding_ui_tracker_(onboarding_ui_tracker), bubble_view_(bubble_view) {
SetID(PhoneHubViewID::kOnboardingView);
SetLayoutManager(std::make_unique<views::FillLayout>());
main_view_ = AddChildView(
std::make_unique<OnboardingMainView>(onboarding_ui_tracker_, this));
main_view_ = AddChildView(std::make_unique<OnboardingMainView>(
onboarding_ui_tracker_, this, onboarding_flow));
LogInterstitialScreenEvent(InterstitialScreenEvent::kShown);
}
......
......@@ -31,8 +31,12 @@ class ASH_EXPORT OnboardingView : public PhoneHubContentView {
public:
METADATA_HEADER(OnboardingView);
// The different onboarding flows that are supported.
enum OnboardingFlow { kExistingMultideviceUser = 0, kNewMultideviceUser };
OnboardingView(chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker,
TrayBubbleView* bubble_view);
TrayBubbleView* bubble_view,
OnboardingFlow onboarding_flow);
OnboardingView(const OnboardingView&) = delete;
OnboardingView& operator=(const OnboardingView&) = delete;
~OnboardingView() override;
......
......@@ -56,9 +56,13 @@ std::unique_ptr<PhoneHubContentView> PhoneHubUiController::CreateContentView(
case UiState::kHidden:
return nullptr;
case UiState::kOnboardingWithoutPhone:
return std::make_unique<OnboardingView>(
phone_hub_manager_->GetOnboardingUiTracker(), bubble_view,
OnboardingView::kNewMultideviceUser);
case UiState::kOnboardingWithPhone:
return std::make_unique<OnboardingView>(
phone_hub_manager_->GetOnboardingUiTracker(), bubble_view);
phone_hub_manager_->GetOnboardingUiTracker(), bubble_view,
OnboardingView::kExistingMultideviceUser);
case UiState::kBluetoothDisabled:
return std::make_unique<BluetoothDisabledView>();
case UiState::kInitialConnecting:
......
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