diff --git a/build/pipelines/azure-pipelines.loc.yaml b/build/pipelines/azure-pipelines.loc.yaml index a90e401c..cf02b223 100644 --- a/build/pipelines/azure-pipelines.loc.yaml +++ b/build/pipelines/azure-pipelines.loc.yaml @@ -30,7 +30,7 @@ jobs: displayName: Send resources to Touchdown Build inputs: teamId: 86 - authId: d3dd8113-65b3-4526-bdca-a00a7d1c37ba + authId: bf6d44ca-3210-4cfa-833f-c79f164ea27b authKey: $(LocServiceKey) isPreview: false relativePathRoot: src/Calculator/Resources/en-US/ diff --git a/build/pipelines/azure-pipelines.release.yaml b/build/pipelines/azure-pipelines.release.yaml index a53ab1db..295be1ee 100644 --- a/build/pipelines/azure-pipelines.release.yaml +++ b/build/pipelines/azure-pipelines.release.yaml @@ -16,8 +16,8 @@ pr: none variables: versionMajor: 10 - versionMinor: 2101 - versionBuild: $[counter('10.2101.*', 0)] + versionMinor: 2102 + versionBuild: $[counter('10.2102.*', 0)] versionPatch: 0 name: '$(versionMajor).$(versionMinor).$(versionBuild).$(versionPatch)' diff --git a/docs/ManualTests.md b/docs/ManualTests.md index 884f0aef..a0f3094f 100644 --- a/docs/ManualTests.md +++ b/docs/ManualTests.md @@ -10,7 +10,7 @@ These manual tests are run before every release of the Calculator app. **Test 1** Steps: 1. From the Standard Calculator page, input “3”, “+”, “3”, “Enter” on the keyboard -Expected: “6” shows up in the display +*Expected: “6” shows up in the display * 2. Input “4”, “-”, “2”, “=” using the in-app buttons *Expected: “2” shows up in the display* diff --git a/src/CalcManager/CEngine/History.cpp b/src/CalcManager/CEngine/History.cpp index ea73e18c..e002e62a 100644 --- a/src/CalcManager/CEngine/History.cpp +++ b/src/CalcManager/CEngine/History.cpp @@ -4,6 +4,7 @@ #include "Header Files/CalcEngine.h" #include "Command.h" #include "ExpressionCommand.h" +#include "winerror_cross_platform.h" constexpr int ASCII_0 = 48; diff --git a/src/CalcManager/CEngine/scicomm.cpp b/src/CalcManager/CEngine/scicomm.cpp index e6017c89..d7655b27 100644 --- a/src/CalcManager/CEngine/scicomm.cpp +++ b/src/CalcManager/CEngine/scicomm.cpp @@ -13,7 +13,9 @@ * Author: \****************************************************************************/ +#include #include +#include #include "Header Files/CalcEngine.h" #include "Header Files/CalcUtils.h" #include "NumberFormattingUtils.h" diff --git a/src/CalcManager/CEngine/scifunc.cpp b/src/CalcManager/CEngine/scifunc.cpp index b767968a..f6e1b600 100644 --- a/src/CalcManager/CEngine/scifunc.cpp +++ b/src/CalcManager/CEngine/scifunc.cpp @@ -17,6 +17,7 @@ /*** ***/ /**************************************************************************/ #include "Header Files/CalcEngine.h" +#include "winerror_cross_platform.h" using namespace std; using namespace CalcEngine; diff --git a/src/CalcManager/ExpressionCommandInterface.h b/src/CalcManager/ExpressionCommandInterface.h index 4ea9b81b..45f786b4 100644 --- a/src/CalcManager/ExpressionCommandInterface.h +++ b/src/CalcManager/ExpressionCommandInterface.h @@ -6,6 +6,7 @@ #include // for std::shared_ptr #include #include "Command.h" +#include "sal_cross_platform.h" class ISerializeCommandVisitor; diff --git a/src/CalcManager/NumberFormattingUtils.h b/src/CalcManager/NumberFormattingUtils.h index 2f13ebfc..f5587fe6 100644 --- a/src/CalcManager/NumberFormattingUtils.h +++ b/src/CalcManager/NumberFormattingUtils.h @@ -4,6 +4,7 @@ #pragma once #include +#include "sal_cross_platform.h" namespace CalcManager::NumberFormattingUtils { diff --git a/src/CalcViewModel/Common/NavCategory.cpp b/src/CalcViewModel/Common/NavCategory.cpp index 6af89959..3f4c2158 100644 --- a/src/CalcViewModel/Common/NavCategory.cpp +++ b/src/CalcViewModel/Common/NavCategory.cpp @@ -60,7 +60,7 @@ bool IsGraphingModeAvailable() } Box ^ _isGraphingModeEnabledCached = nullptr; -bool IsGraphingModeEnabled() +bool IsGraphingModeEnabled(User ^ currentUser = nullptr) { if (!IsGraphingModeAvailable()) { @@ -72,17 +72,19 @@ bool IsGraphingModeEnabled() return _isGraphingModeEnabledCached->Value; } - User ^ firstUser; - create_task(User::FindAllAsync(UserType::LocalUser)).then([&firstUser](IVectorView ^ users) { - firstUser = users->GetAt(0); }).wait(); - auto namedPolicyData = NamedPolicy::GetPolicyFromPathForUser(firstUser, L"Education", L"AllowGraphingCalculator"); - _isGraphingModeEnabledCached = namedPolicyData->GetBoolean() == true; + if (!currentUser) + { + return true; + } + + auto namedPolicyData = NamedPolicy::GetPolicyFromPathForUser(currentUser, L"Education", L"AllowGraphingCalculator"); + _isGraphingModeEnabledCached = namedPolicyData->GetBoolean() == true; return _isGraphingModeEnabledCached->Value; } // The order of items in this list determines the order of items in the menu. -static const list s_categoryManifest = [] { +static list s_categoryManifest = [] { auto res = list{ NavCategoryInitializer{ ViewMode::Standard, STANDARD_ID, L"Standard", @@ -108,7 +110,7 @@ static const list s_categoryManifest = [] { bool supportGraphingCalculator = IsGraphingModeAvailable(); if (supportGraphingCalculator) { - const bool isEnabled = IsGraphingModeEnabled(); + bool isEnabled = IsGraphingModeEnabled(); res.push_back(NavCategoryInitializer{ ViewMode::Graphing, GRAPHING_ID, L"Graphing", @@ -276,6 +278,25 @@ static const list s_categoryManifest = [] { return res; }(); +void NavCategory::InitializeCategoryManifest(User ^ user) +{ + int i = 0; + for (NavCategoryInitializer category : s_categoryManifest) + { + if (category.viewMode == ViewMode::Graphing) + { + auto navCatInit = s_categoryManifest.begin(); + std::advance(navCatInit, i); + (*navCatInit).isEnabled = IsGraphingModeEnabled(user); + break; + } + else + { + i++; + } + } + } + // This function should only be used when storing the mode to app data. int NavCategory::Serialize(ViewMode mode) { diff --git a/src/CalcViewModel/Common/NavCategory.h b/src/CalcViewModel/Common/NavCategory.h index b7c46057..c0ce95f0 100644 --- a/src/CalcViewModel/Common/NavCategory.h +++ b/src/CalcViewModel/Common/NavCategory.h @@ -92,7 +92,7 @@ namespace CalculatorApp const MyVirtualKey virtualKey; const wchar_t* const accessKey; const bool supportsNegative; - const bool isEnabled; + bool isEnabled; }; private @@ -140,6 +140,8 @@ namespace CalculatorApp static bool IsDateCalculatorViewMode(ViewMode mode); static bool IsConverterViewMode(ViewMode mode); + static void InitializeCategoryManifest(Windows::System::User ^ user); + static Platform::String ^ GetFriendlyName(ViewMode mode); static Platform::String ^ GetNameResourceKey(ViewMode mode); static CategoryGroupType GetGroupType(ViewMode mode); diff --git a/src/Calculator/App.xaml.cpp b/src/Calculator/App.xaml.cpp index e72b57c7..27075669 100644 --- a/src/Calculator/App.xaml.cpp +++ b/src/Calculator/App.xaml.cpp @@ -225,12 +225,12 @@ void App::OnLaunched(LaunchActivatedEventArgs ^ args) // If the app got pre-launch activated, then save that state in a flag m_preLaunched = true; } + NavCategory::InitializeCategoryManifest(args->User); OnAppLaunch(args, args->Arguments); } void App::OnAppLaunch(IActivatedEventArgs ^ args, String ^ argument) { - // Uncomment the following lines to display frame-rate and per-frame CPU usage info. //#if _DEBUG // if (IsDebuggerPresent()) diff --git a/src/nuget.config b/src/nuget.config index 63a9d4e6..2b0a8e9e 100644 --- a/src/nuget.config +++ b/src/nuget.config @@ -1,13 +1,11 @@ - - - - + + - - - - + + + + \ No newline at end of file