diff --git a/.gitignore b/.gitignore index 1088272..415b87d 100644 --- a/.gitignore +++ b/.gitignore @@ -290,6 +290,7 @@ __pycache__/ # Calculator specific Generated Files/ src/GraphControl/GraphingImplOverrides.props +src/CalcViewModel/DataLoaders/DataLoaderConstants.h !/build/config/TRexDefs/** !src/Calculator/TemporaryKey.pfx !src/CalculatorUnitTests/CalculatorUnitTests_TemporaryKey.pfx \ No newline at end of file diff --git a/README.md b/README.md index 0024314..fd39861 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,12 @@ Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkId=521839) to Telemetry is disabled in development builds by default, and can be enabled with the `SEND_TELEMETRY` build flag. +## Currency Converter +Windows Calculator includes a currency converter feature that uses mock data in developer builds. The data that +Microsoft uses for the currency converter feature (e.g., in the retail version of the application) is not licensed +for your use. The mock data will be clearly identifiable as it references planets instead of countries, +and remains static regardless of selected inputs. + ## Reporting Security Issues Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at <[secure@microsoft.com](mailto:secure@microsoft.com)>. diff --git a/src/CalcViewModel/CalcViewModel.vcxproj b/src/CalcViewModel/CalcViewModel.vcxproj index 4eaed17..c5ed5af 100644 --- a/src/CalcViewModel/CalcViewModel.vcxproj +++ b/src/CalcViewModel/CalcViewModel.vcxproj @@ -408,6 +408,23 @@ {311e866d-8b93-4609-a691-265941fee101} + + + /DUSE_MOCK_DATA %(AdditionalOptions) + + + + + + + + + + + + + + diff --git a/src/CalcViewModel/CalcViewModel.vcxproj.filters b/src/CalcViewModel/CalcViewModel.vcxproj.filters index d05aca0..bd0d75f 100644 --- a/src/CalcViewModel/CalcViewModel.vcxproj.filters +++ b/src/CalcViewModel/CalcViewModel.vcxproj.filters @@ -213,6 +213,12 @@ Common + + DataLoaders + + + DataLoaders + diff --git a/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp b/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp index 2fb8f0a..286422c 100644 --- a/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp +++ b/src/CalcViewModel/DataLoaders/CurrencyDataLoader.cpp @@ -644,6 +644,23 @@ void CurrencyDataLoader::GuaranteeSelectedUnits() isConversionTargetSet = true; } } + + // If still not set for either source or target, just select the first currency in the list + + if (!m_currencyUnits.empty()) + { + if (!isConversionSourceSet) + { + m_currencyUnits[0].isConversionSource = true; + isConversionSourceSet = true; + } + + if (!isConversionTargetSet) + { + m_currencyUnits[0].isConversionTarget = true; + isConversionTargetSet = true; + } + } } void CurrencyDataLoader::NotifyDataLoadFinished(bool didLoad) diff --git a/src/CalcViewModel/DataLoaders/CurrencyHttpClient.cpp b/src/CalcViewModel/DataLoaders/CurrencyHttpClient.cpp index 04167da..e9d42c6 100644 --- a/src/CalcViewModel/DataLoaders/CurrencyHttpClient.cpp +++ b/src/CalcViewModel/DataLoaders/CurrencyHttpClient.cpp @@ -1,18 +1,21 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #include "pch.h" #include "CurrencyHttpClient.h" +#ifdef USE_MOCK_DATA +#include "DataLoaderMockConstants.h" +#else +#include "DataLoaderConstants.h" +#endif + using namespace CalculatorApp::DataLoaders; using namespace Platform; using namespace std; using namespace Windows::Foundation; using namespace Windows::Web::Http; -static constexpr auto sc_MetadataUriLocalizeFor = L"https://go.microsoft.com/fwlink/?linkid=2041093&localizeFor="; -static constexpr auto sc_RatiosUriRelativeTo = L"https://go.microsoft.com/fwlink/?linkid=2041339&localCurrency="; - CurrencyHttpClient::CurrencyHttpClient() : m_client(ref new HttpClient()) , m_responseLanguage(L"en-US") diff --git a/src/CalcViewModel/DataLoaders/DataLoaderMockConstants.h b/src/CalcViewModel/DataLoaders/DataLoaderMockConstants.h new file mode 100644 index 0000000..02e7e34 --- /dev/null +++ b/src/CalcViewModel/DataLoaders/DataLoaderMockConstants.h @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#pragma once + +namespace CalculatorApp +{ + namespace DataLoaders + { + static constexpr auto sc_MetadataUriLocalizeFor = L"https://go.microsoft.com/fwlink/?linkid=2091028&localizeFor="; + static constexpr auto sc_RatiosUriRelativeTo = L"https://go.microsoft.com/fwlink/?linkid=2091307&localCurrency="; + } +}