From b1f49a2fcb1513db87593a0d1bd6679886c4a070 Mon Sep 17 00:00:00 2001 From: Vignesh M <32194608+vishegn@users.noreply.github.com> Date: Tue, 14 Jul 2020 22:38:57 +0530 Subject: [PATCH] Narrator does not provide the confirmation when user deleted one history from the history list items #1172 (#1302) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Narrator reads incorrect information as “History and Memory list” in Programmer Calculator #1174 --- .../Common/Automation/NarratorAnnouncement.cpp | 7 +++++++ .../Common/Automation/NarratorAnnouncement.h | 1 + src/CalcViewModel/HistoryViewModel.cpp | 10 +++++++++- src/CalcViewModel/HistoryViewModel.h | 1 + src/Calculator/Resources/en-US/Resources.resw | 4 ++++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp index 18f4df6..a3f0976 100644 --- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp +++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.cpp @@ -18,6 +18,7 @@ namespace CalculatorApp::Common::Automation StringReference MemoryItemChanged(L"MemorySlotChanged"); StringReference MemoryItemAdded(L"MemorySlotAdded"); StringReference HistoryCleared(L"HistoryCleared"); + StringReference HistorySlotCleared(L"HistorySlotCleared"); StringReference CategoryNameChanged(L"CategoryNameChanged"); StringReference UpdateCurrencyRates(L"UpdateCurrencyRates"); StringReference DisplayCopied(L"DisplayCopied"); @@ -104,6 +105,12 @@ NarratorAnnouncement ^ CalculatorAnnouncement::GetHistoryClearedAnnouncement(Str announcement, CalculatorActivityIds::HistoryCleared, AutomationNotificationKind::ItemRemoved, AutomationNotificationProcessing::MostRecent); } +NarratorAnnouncement ^ CalculatorAnnouncement::GetHistorySlotClearedAnnouncement(String ^ announcement) +{ + return ref new NarratorAnnouncement( + announcement, CalculatorActivityIds::HistorySlotCleared, AutomationNotificationKind::ItemRemoved, AutomationNotificationProcessing::ImportantMostRecent); +} + NarratorAnnouncement ^ CalculatorAnnouncement::GetCategoryNameChangedAnnouncement(String ^ announcement) { return ref new NarratorAnnouncement( diff --git a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h index 7b93401..53a2f61 100644 --- a/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h +++ b/src/CalcViewModel/Common/Automation/NarratorAnnouncement.h @@ -57,6 +57,7 @@ public static NarratorAnnouncement ^ GetMemoryItemAddedAnnouncement(Platform::String ^ announcement); static NarratorAnnouncement ^ GetHistoryClearedAnnouncement(Platform::String ^ announcement); + static NarratorAnnouncement ^ GetHistorySlotClearedAnnouncement(Platform::String ^ announcement); static NarratorAnnouncement ^ GetCategoryNameChangedAnnouncement(Platform::String ^ announcement); diff --git a/src/CalcViewModel/HistoryViewModel.cpp b/src/CalcViewModel/HistoryViewModel.cpp index b6ca448..8235c93 100644 --- a/src/CalcViewModel/HistoryViewModel.cpp +++ b/src/CalcViewModel/HistoryViewModel.cpp @@ -23,14 +23,16 @@ using namespace Windows::Foundation::Collections; static StringReference HistoryVectorLengthKey{ L"HistoryVectorLength" }; static StringReference ItemsSizeKey{ L"ItemsCount" }; -namespace CalculatorApp::ViewModel::HistoryResourceKeys +namespace HistoryResourceKeys { StringReference HistoryCleared(L"HistoryList_Cleared"); + StringReference HistorySlotCleared(L"Format_HistorySlotCleared"); } HistoryViewModel::HistoryViewModel(_In_ CalculationManager::CalculatorManager* calculatorManager) : m_calculatorManager(calculatorManager) , m_localizedHistoryCleared(nullptr) + , m_localizedHistorySlotCleared(nullptr) { AreHistoryShortcutsEnabled = true; @@ -129,6 +131,12 @@ void HistoryViewModel::DeleteItem(_In_ HistoryItemViewModel ^ e) RaisePropertyChanged(ItemsSizeKey); } } + // Adding 1 to the history item index to provide 1-based numbering on announcements. + wstring localizedIndex = to_wstring(itemIndex + 1); + LocalizationSettings::GetInstance().LocalizeDisplayValue(&localizedIndex); + m_localizedHistorySlotCleared = AppResourceProvider::GetInstance()->GetResourceString(HistoryResourceKeys::HistorySlotCleared); + String ^ announcement = LocalizationStringUtil::GetLocalizedString(m_localizedHistorySlotCleared, StringReference(localizedIndex.c_str())); + HistoryAnnouncement = CalculatorAnnouncement::GetHistorySlotClearedAnnouncement(announcement); } void HistoryViewModel::OnHideCommand(_In_ Platform::Object ^ e) diff --git a/src/CalcViewModel/HistoryViewModel.h b/src/CalcViewModel/HistoryViewModel.h index 9b40efe..d7c7874 100644 --- a/src/CalcViewModel/HistoryViewModel.h +++ b/src/CalcViewModel/HistoryViewModel.h @@ -61,6 +61,7 @@ namespace CalculatorApp CalculatorDisplay m_calculatorDisplay; CalculationManager::CalculatorMode m_currentMode; Platform::String ^ m_localizedHistoryCleared; + Platform::String ^ m_localizedHistorySlotCleared; }; } } diff --git a/src/Calculator/Resources/en-US/Resources.resw b/src/Calculator/Resources/en-US/Resources.resw index 473fa13..345b1cf 100644 --- a/src/Calculator/Resources/en-US/Resources.resw +++ b/src/Calculator/Resources/en-US/Resources.resw @@ -4715,6 +4715,10 @@ Memory list Automation name for the group of controls for memory list. + + History slot %1 cleared + {Locked='%1'} Formatting string for a Narrator announcement when the user clears a history slot. The %1 is the index of the history slot. For example, users might hear "History slot 2 cleared". + Calculator always on top Announcement to indicate calculator window is always shown on top.