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,19 +45,25 @@ class OnboardingMainView : public PhoneHubInterstitialView { ...@@ -45,19 +45,25 @@ class OnboardingMainView : public PhoneHubInterstitialView {
public: public:
OnboardingMainView( OnboardingMainView(
chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker, chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker,
OnboardingView* parent_view) OnboardingView* parent_view,
OnboardingView::OnboardingFlow onboarding_flow)
: PhoneHubInterstitialView(/*show_progress=*/false), : PhoneHubInterstitialView(/*show_progress=*/false),
onboarding_ui_tracker_(onboarding_ui_tracker), onboarding_ui_tracker_(onboarding_ui_tracker),
parent_view_(parent_view) { parent_view_(parent_view),
onboarding_flow_(onboarding_flow) {
SetID(PhoneHubViewID::kOnboardingMainView); SetID(PhoneHubViewID::kOnboardingMainView);
InitLayout(); InitLayout();
} }
// PhoneHubInterstitialView: // PhoneHubInterstitialView:
Screen GetScreenForMetrics() const override { Screen GetScreenForMetrics() const override {
// TODO(tengs): Distinguish between the two different onboarding flows. switch (onboarding_flow_) {
case OnboardingView::kExistingMultideviceUser:
return Screen::kOnboardingExistingMultideviceUser;
case OnboardingView::kNewMultideviceUser:
return Screen::kOnboardingNewMultideviceUser; return Screen::kOnboardingNewMultideviceUser;
} }
}
private: private:
void InitLayout() { void InitLayout() {
...@@ -105,6 +111,7 @@ class OnboardingMainView : public PhoneHubInterstitialView { ...@@ -105,6 +111,7 @@ class OnboardingMainView : public PhoneHubInterstitialView {
chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker_ = nullptr; chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker_ = nullptr;
OnboardingView* parent_view_ = nullptr; OnboardingView* parent_view_ = nullptr;
const OnboardingView::OnboardingFlow onboarding_flow_;
}; };
// OnboardingDismissPromptView ------------------------------------------------ // OnboardingDismissPromptView ------------------------------------------------
...@@ -166,13 +173,14 @@ class OnboardingDismissPromptView : public PhoneHubInterstitialView { ...@@ -166,13 +173,14 @@ class OnboardingDismissPromptView : public PhoneHubInterstitialView {
// OnboardingView ------------------------------------------------------------- // OnboardingView -------------------------------------------------------------
OnboardingView::OnboardingView( OnboardingView::OnboardingView(
chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker, 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) { : onboarding_ui_tracker_(onboarding_ui_tracker), bubble_view_(bubble_view) {
SetID(PhoneHubViewID::kOnboardingView); SetID(PhoneHubViewID::kOnboardingView);
SetLayoutManager(std::make_unique<views::FillLayout>()); SetLayoutManager(std::make_unique<views::FillLayout>());
main_view_ = AddChildView( main_view_ = AddChildView(std::make_unique<OnboardingMainView>(
std::make_unique<OnboardingMainView>(onboarding_ui_tracker_, this)); onboarding_ui_tracker_, this, onboarding_flow));
LogInterstitialScreenEvent(InterstitialScreenEvent::kShown); LogInterstitialScreenEvent(InterstitialScreenEvent::kShown);
} }
......
...@@ -31,8 +31,12 @@ class ASH_EXPORT OnboardingView : public PhoneHubContentView { ...@@ -31,8 +31,12 @@ class ASH_EXPORT OnboardingView : public PhoneHubContentView {
public: public:
METADATA_HEADER(OnboardingView); METADATA_HEADER(OnboardingView);
// The different onboarding flows that are supported.
enum OnboardingFlow { kExistingMultideviceUser = 0, kNewMultideviceUser };
OnboardingView(chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker, OnboardingView(chromeos::phonehub::OnboardingUiTracker* onboarding_ui_tracker,
TrayBubbleView* bubble_view); TrayBubbleView* bubble_view,
OnboardingFlow onboarding_flow);
OnboardingView(const OnboardingView&) = delete; OnboardingView(const OnboardingView&) = delete;
OnboardingView& operator=(const OnboardingView&) = delete; OnboardingView& operator=(const OnboardingView&) = delete;
~OnboardingView() override; ~OnboardingView() override;
......
...@@ -56,9 +56,13 @@ std::unique_ptr<PhoneHubContentView> PhoneHubUiController::CreateContentView( ...@@ -56,9 +56,13 @@ std::unique_ptr<PhoneHubContentView> PhoneHubUiController::CreateContentView(
case UiState::kHidden: case UiState::kHidden:
return nullptr; return nullptr;
case UiState::kOnboardingWithoutPhone: case UiState::kOnboardingWithoutPhone:
return std::make_unique<OnboardingView>(
phone_hub_manager_->GetOnboardingUiTracker(), bubble_view,
OnboardingView::kNewMultideviceUser);
case UiState::kOnboardingWithPhone: case UiState::kOnboardingWithPhone:
return std::make_unique<OnboardingView>( return std::make_unique<OnboardingView>(
phone_hub_manager_->GetOnboardingUiTracker(), bubble_view); phone_hub_manager_->GetOnboardingUiTracker(), bubble_view,
OnboardingView::kExistingMultideviceUser);
case UiState::kBluetoothDisabled: case UiState::kBluetoothDisabled:
return std::make_unique<BluetoothDisabledView>(); return std::make_unique<BluetoothDisabledView>();
case UiState::kInitialConnecting: 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