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.