mirror of
https://github.com/Microsoft/calculator.git
synced 2025-07-13 00:32:52 -07:00
Updated Calculator diagnostic data collection per the specification (#572)
- Removed unneeded diagnostic events and code - Added and consolidated events into the events defined in the spec
This commit is contained in:
parent
2ff7bb4089
commit
a6384269bc
43 changed files with 449 additions and 1249 deletions
|
@ -37,6 +37,7 @@ namespace
|
|||
StringReference IsProgrammerPropertyName(L"IsProgrammer");
|
||||
StringReference DisplayValuePropertyName(L"DisplayValue");
|
||||
StringReference CalculationResultAutomationNamePropertyName(L"CalculationResultAutomationName");
|
||||
StringReference IsBitFlipCheckedPropertyName(L"IsBitFlipChecked");
|
||||
}
|
||||
|
||||
namespace CalculatorResourceKeys
|
||||
|
@ -599,8 +600,6 @@ void StandardCalculatorViewModel::OnButtonPressed(Object ^ parameter)
|
|||
NumbersAndOperatorsEnum numOpEnum = CalculatorButtonPressedEventArgs::GetOperationFromCommandParameter(parameter);
|
||||
Command cmdenum = ConvertToOperatorsEnum(numOpEnum);
|
||||
|
||||
TraceLogger::GetInstance().UpdateFunctionUsage((int)numOpEnum);
|
||||
|
||||
if (IsInError)
|
||||
{
|
||||
m_standardCalculatorManager.SendCommand(Command::CommandCLEAR);
|
||||
|
@ -668,6 +667,7 @@ void StandardCalculatorViewModel::OnButtonPressed(Object ^ parameter)
|
|||
m_isLastOperationHistoryLoad = false;
|
||||
}
|
||||
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(numOpEnum, GetCalculatorMode());
|
||||
m_standardCalculatorManager.SendCommand(cmdenum);
|
||||
}
|
||||
}
|
||||
|
@ -748,7 +748,7 @@ void StandardCalculatorViewModel::OnPasteCommand(Object ^ parameter)
|
|||
|
||||
// Ensure that the paste happens on the UI thread
|
||||
CopyPasteManager::GetStringToPaste(mode, NavCategory::GetGroupType(mode), NumberBase, bitLengthType)
|
||||
.then([this, mode](String ^ pastedString) { OnPaste(pastedString, mode); }, concurrency::task_continuation_context::use_current());
|
||||
.then([this, mode](String ^ pastedString) { OnPaste(pastedString); }, concurrency::task_continuation_context::use_current());
|
||||
}
|
||||
|
||||
CalculationManager::Command StandardCalculatorViewModel::ConvertToOperatorsEnum(NumbersAndOperatorsEnum operation)
|
||||
|
@ -756,7 +756,7 @@ CalculationManager::Command StandardCalculatorViewModel::ConvertToOperatorsEnum(
|
|||
return safe_cast<Command>(operation);
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnPaste(String ^ pastedString, ViewMode mode)
|
||||
void StandardCalculatorViewModel::OnPaste(String ^ pastedString)
|
||||
{
|
||||
// If pastedString is invalid("NoOp") then display pasteError else process the string
|
||||
if (pastedString == StringReference(CopyPasteManager::PasteErrorString))
|
||||
|
@ -765,7 +765,6 @@ void StandardCalculatorViewModel::OnPaste(String ^ pastedString, ViewMode mode)
|
|||
return;
|
||||
}
|
||||
|
||||
TraceLogger::GetInstance().LogValidInputPasted(mode);
|
||||
bool isFirstLegalChar = true;
|
||||
m_standardCalculatorManager.SendCommand(Command::CommandCENTR);
|
||||
bool sendNegate = false;
|
||||
|
@ -884,7 +883,7 @@ void StandardCalculatorViewModel::OnPaste(String ^ pastedString, ViewMode mode)
|
|||
// Handle exponent and exponent sign (...e+... or ...e-... or ...e...)
|
||||
if (mappedNumOp == NumbersAndOperatorsEnum::Exp)
|
||||
{
|
||||
//Check the following item
|
||||
// Check the following item
|
||||
switch (MapCharacterToButtonId(*(it + 1), canSendNegate))
|
||||
{
|
||||
case NumbersAndOperatorsEnum::Subtract:
|
||||
|
@ -896,7 +895,7 @@ void StandardCalculatorViewModel::OnPaste(String ^ pastedString, ViewMode mode)
|
|||
break;
|
||||
case NumbersAndOperatorsEnum::Add:
|
||||
{
|
||||
//Nothing to do, skip to the next item
|
||||
// Nothing to do, skip to the next item
|
||||
++it;
|
||||
}
|
||||
break;
|
||||
|
@ -911,8 +910,7 @@ void StandardCalculatorViewModel::OnClearMemoryCommand(Object ^ parameter)
|
|||
{
|
||||
m_standardCalculatorManager.MemorizedNumberClearAll();
|
||||
|
||||
int windowId = Utils::GetWindowId();
|
||||
TraceLogger::GetInstance().LogMemoryClearAll(windowId);
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(NumbersAndOperatorsEnum::MemoryClear, GetCalculatorMode());
|
||||
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(CalculatorResourceKeys::MemoryCleared, m_localizedMemoryCleared);
|
||||
Announcement = CalculatorAnnouncement::GetMemoryClearedAnnouncement(announcement);
|
||||
|
@ -1046,8 +1044,7 @@ void StandardCalculatorViewModel::OnMemoryButtonPressed()
|
|||
{
|
||||
m_standardCalculatorManager.MemorizeNumber();
|
||||
|
||||
int windowId = Utils::GetWindowId();
|
||||
TraceLogger::GetInstance().InsertIntoMemoryMap(windowId, IsStandard, IsScientific, IsProgrammer);
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(NumbersAndOperatorsEnum::Memory, GetCalculatorMode());
|
||||
|
||||
String ^ announcement = LocalizationStringUtil::GetLocalizedNarratorAnnouncement(
|
||||
CalculatorResourceKeys::MemorySave, m_localizedMemorySavedAutomationFormat, m_DisplayValue->Data());
|
||||
|
@ -1079,49 +1076,31 @@ void StandardCalculatorViewModel::OnMemoryItemPressed(Object ^ memoryItemPositio
|
|||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
m_standardCalculatorManager.MemorizedNumberLoad(boxedPosition->Value);
|
||||
HideMemoryClicked();
|
||||
int windowId = Utils::GetWindowId();
|
||||
TraceLogger::GetInstance().LogMemoryUsed(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer, MemorizedNumbers->Size);
|
||||
|
||||
auto mode = IsStandard ? ViewMode::Standard : IsScientific ? ViewMode::Scientific : ViewMode::Programmer;
|
||||
TraceLogger::GetInstance().LogMemoryItemLoad(mode, MemorizedNumbers->Size, boxedPosition->Value);
|
||||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnMemoryAdd(Object ^ memoryItemPosition)
|
||||
{
|
||||
// M+ will add display to memorylist if memory list is empty.
|
||||
int windowId = Utils::GetWindowId();
|
||||
|
||||
if (MemorizedNumbers)
|
||||
{
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
if (MemorizedNumbers->Size > 0)
|
||||
{
|
||||
TraceLogger::GetInstance().LogMemoryUsed(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer, MemorizedNumbers->Size);
|
||||
TraceLogger::GetInstance().UpdateMemoryMap(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer);
|
||||
}
|
||||
else
|
||||
{
|
||||
TraceLogger::GetInstance().InsertIntoMemoryMap(windowId, IsStandard, IsScientific, IsProgrammer);
|
||||
}
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(NumbersAndOperatorsEnum::MemoryAdd, GetCalculatorMode());
|
||||
m_standardCalculatorManager.MemorizedNumberAdd(boxedPosition->Value);
|
||||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::OnMemorySubtract(Object ^ memoryItemPosition)
|
||||
{
|
||||
int windowId = Utils::GetWindowId();
|
||||
|
||||
// M- will add negative of displayed number to memorylist if memory list is empty.
|
||||
if (MemorizedNumbers)
|
||||
{
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
if (MemorizedNumbers->Size > 0)
|
||||
{
|
||||
TraceLogger::GetInstance().LogMemoryUsed(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer, MemorizedNumbers->Size);
|
||||
TraceLogger::GetInstance().UpdateMemoryMap(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer);
|
||||
}
|
||||
else
|
||||
{
|
||||
TraceLogger::GetInstance().InsertIntoMemoryMap(windowId, IsStandard, IsScientific, IsProgrammer);
|
||||
}
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(NumbersAndOperatorsEnum::MemorySubtract, GetCalculatorMode());
|
||||
m_standardCalculatorManager.MemorizedNumberSubtract(boxedPosition->Value);
|
||||
}
|
||||
}
|
||||
|
@ -1130,7 +1109,6 @@ void StandardCalculatorViewModel::OnMemoryClear(_In_ Object ^ memoryItemPosition
|
|||
{
|
||||
if (MemorizedNumbers && MemorizedNumbers->Size > 0)
|
||||
{
|
||||
int windowId = Utils::GetWindowId();
|
||||
auto boxedPosition = safe_cast<Box<int> ^>(memoryItemPosition);
|
||||
|
||||
if (boxedPosition->Value >= 0)
|
||||
|
@ -1148,9 +1126,7 @@ void StandardCalculatorViewModel::OnMemoryClear(_In_ Object ^ memoryItemPosition
|
|||
{
|
||||
IsMemoryEmpty = true;
|
||||
}
|
||||
|
||||
TraceLogger::GetInstance().LogMemoryUsed(windowId, boxedPosition->Value, IsStandard, IsScientific, IsProgrammer, MemorizedNumbers->Size);
|
||||
TraceLogger::GetInstance().DeleteFromMemoryMap(windowId, boxedPosition->Value);
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(NumbersAndOperatorsEnum::MemoryClear, GetCalculatorMode());
|
||||
|
||||
wstring localizedIndex = to_wstring(boxedPosition->Value + 1);
|
||||
LocalizationSettings::GetInstance().LocalizeDisplayValue(&localizedIndex);
|
||||
|
@ -1191,6 +1167,11 @@ void StandardCalculatorViewModel::OnPropertyChanged(String ^ propertyname)
|
|||
RaisePropertyChanged(CalculationResultAutomationNamePropertyName);
|
||||
Announcement = GetDisplayUpdatedNarratorAnnouncement();
|
||||
}
|
||||
else if (propertyname == IsBitFlipCheckedPropertyName)
|
||||
{
|
||||
TraceLogger::GetInstance().UpdateButtonUsage(
|
||||
IsBitFlipChecked ? NumbersAndOperatorsEnum::BitflipButton : NumbersAndOperatorsEnum::FullKeypadButton, ViewMode::Programmer);
|
||||
}
|
||||
}
|
||||
|
||||
void StandardCalculatorViewModel::SetCalculatorType(ViewMode targetState)
|
||||
|
@ -1223,7 +1204,7 @@ void StandardCalculatorViewModel::SetCalculatorType(ViewMode targetState)
|
|||
}
|
||||
}
|
||||
|
||||
String^ StandardCalculatorViewModel::GetRawDisplayValue()
|
||||
String ^ StandardCalculatorViewModel::GetRawDisplayValue()
|
||||
{
|
||||
if (IsInError)
|
||||
{
|
||||
|
@ -1884,3 +1865,16 @@ NarratorAnnouncement ^ StandardCalculatorViewModel::GetDisplayUpdatedNarratorAnn
|
|||
|
||||
return CalculatorAnnouncement::GetDisplayUpdatedAnnouncement(announcement);
|
||||
}
|
||||
|
||||
ViewMode StandardCalculatorViewModel::GetCalculatorMode()
|
||||
{
|
||||
if (IsStandard)
|
||||
{
|
||||
return ViewMode::Standard;
|
||||
}
|
||||
else if (IsScientific)
|
||||
{
|
||||
return ViewMode::Scientific;
|
||||
}
|
||||
return ViewMode::Programmer;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue