Window Covering App QR Code Fix (#23539)

diff --git a/examples/window-app/efr32/src/WindowAppImpl.cpp b/examples/window-app/efr32/src/WindowAppImpl.cpp
index 7f9eeac..2675b73 100644
--- a/examples/window-app/efr32/src/WindowAppImpl.cpp
+++ b/examples/window-app/efr32/src/WindowAppImpl.cpp
@@ -26,6 +26,10 @@
 #include <platform/CHIPDeviceLayer.h>
 #ifdef QR_CODE_ENABLED
 #include <qrcodegen.h>
+#else
+#include "EFR32DeviceDataProvider.h"
+#include <setup_payload/QRCodeSetupPayloadGenerator.h>
+#include <setup_payload/SetupPayload.h>
 #endif // QR_CODE_ENABLED
 #include <sl_simple_button_instances.h>
 
@@ -54,6 +58,8 @@
 #define LCD_ICON_TIMEOUT 1000
 
 using namespace chip::app::Clusters::WindowCovering;
+using namespace chip;
+using namespace ::chip::DeviceLayer;
 #define APP_STATE_LED &sl_led_led0
 #define APP_ACTION_LED &sl_led_led1
 
@@ -212,6 +218,21 @@
     slLCD.Init();
 #endif
 
+#ifndef QR_CODE_ENABLED
+    // Create buffer for QR code that can fit max size and null terminator.
+    char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1];
+    chip::MutableCharSpan QRCode(qrCodeBuffer);
+
+    if (EFR32::EFR32DeviceDataProvider::GetDeviceDataProvider().GetSetupPayload(QRCode) == CHIP_NO_ERROR)
+    {
+        PrintQrCodeURL(QRCode);
+    }
+    else
+    {
+        EFR32_LOG("Getting QR code failed!");
+    }
+#endif // QR_CODE_ENABLED
+
     return CHIP_NO_ERROR;
 }