diff --git a/src/CalcViewModel/Common/TraceLogger.cpp b/src/CalcViewModel/Common/TraceLogger.cpp index 47ee1279..7df8be27 100644 --- a/src/CalcViewModel/Common/TraceLogger.cpp +++ b/src/CalcViewModel/Common/TraceLogger.cpp @@ -76,6 +76,7 @@ namespace CalculatorApp constexpr auto EVENT_NAME_CORE_WINDOW_WAS_NULL = L"CoreWindowWasNull"; constexpr auto EVENT_NAME_MODE_CHANGED = L"ModeChanged"; + constexpr auto EVENT_NAME_DATE_CALCULATION_MODE_USED = L"DateCalculationModeUsed"; constexpr auto EVENT_NAME_EXCEPTION = L"Exception"; @@ -919,6 +920,15 @@ namespace CalculatorApp } } + void TraceLogger::LogDateCalculationModeUsed(bool AddSubtractMode) + { + LoggingFields fields{}; + fields.AddBoolean(L"CalculationType", AddSubtractMode); + // cast mode to an int for telemetry + fields.AddInt32(L"CalcMode", NavCategory::Serialize(ViewMode::Date)); + LogLevel2Event(EVENT_NAME_DATE_CALCULATION_MODE_USED, fields); + } + void TraceLogger::LogDateDifferenceModeUsed(int windowId) { if (!m_dateDiffUsageLoggedInSession) diff --git a/src/CalcViewModel/Common/TraceLogger.h b/src/CalcViewModel/Common/TraceLogger.h index 627d888d..84b7a425 100644 --- a/src/CalcViewModel/Common/TraceLogger.h +++ b/src/CalcViewModel/Common/TraceLogger.h @@ -77,6 +77,7 @@ namespace CalculatorApp void LogRadixButtonUsed(int windowId); void LogAngleButtonUsed(int windowId); void LogHypButtonUsed(int windowId); + void LogDateCalculationModeUsed(bool AddSubtractMode); void LogNewWindowCreationBegin(int windowId); void LogNewWindowCreationEnd(int windowId); void LogError(std::wstring_view errorString); diff --git a/src/Calculator/Views/DateCalculator.xaml.cpp b/src/Calculator/Views/DateCalculator.xaml.cpp index b3a9dcdd..141d65cb 100644 --- a/src/Calculator/Views/DateCalculator.xaml.cpp +++ b/src/Calculator/Views/DateCalculator.xaml.cpp @@ -104,6 +104,7 @@ void DateCalculator::FromDate_DateChanged(_In_ CalendarDatePicker ^ sender, _In_ auto dateCalcViewModel = safe_cast(this->DataContext); dateCalcViewModel->FromDate = e->NewDate->Value; TraceLogger::GetInstance().LogDateDifferenceModeUsed(ApplicationView::GetApplicationViewIdForWindow(CoreWindow::GetForCurrentThread())); + TraceLogger::GetInstance().LogDateCalculationModeUsed(false /* AddSubtractMode */); } else { @@ -118,6 +119,7 @@ void DateCalculator::ToDate_DateChanged(_In_ CalendarDatePicker ^ sender, _In_ C auto dateCalcViewModel = safe_cast(this->DataContext); dateCalcViewModel->ToDate = e->NewDate->Value; TraceLogger::GetInstance().LogDateDifferenceModeUsed(ApplicationView::GetApplicationViewIdForWindow(CoreWindow::GetForCurrentThread())); + TraceLogger::GetInstance().LogDateCalculationModeUsed(false /* AddSubtractMode */); } else { @@ -133,6 +135,7 @@ void DateCalculator::AddSubtract_DateChanged(_In_ CalendarDatePicker ^ sender, _ dateCalcViewModel->StartDate = e->NewDate->Value; TraceLogger::GetInstance().LogDateAddSubtractModeUsed( ApplicationView::GetApplicationViewIdForWindow(CoreWindow::GetForCurrentThread()), dateCalcViewModel->IsAddMode); + TraceLogger::GetInstance().LogDateCalculationModeUsed(true /* AddSubtractMode */); } else { @@ -145,6 +148,11 @@ void CalculatorApp::DateCalculator::OffsetValue_Changed(_In_ Platform::Object ^ auto dateCalcViewModel = safe_cast(this->DataContext); TraceLogger::GetInstance().LogDateAddSubtractModeUsed( ApplicationView::GetApplicationViewIdForWindow(CoreWindow::GetForCurrentThread()), dateCalcViewModel->IsAddMode); + // do not log telemetry for no-ops and initialization of combo boxes + if (dateCalcViewModel->DaysOffset != 0 || dateCalcViewModel->MonthsOffset != 0 || dateCalcViewModel->YearsOffset != 0) + { + TraceLogger::GetInstance().LogDateCalculationModeUsed(true /* AddSubtractMode */); + } } void DateCalculator::OnCopyMenuItemClicked(_In_ Object ^ sender, _In_ RoutedEventArgs ^ e)