Allow sample apps to override BaseApplication's default lcd screen (#31603)

* Allow sample apps to override BaseApplication's default lcd screen

* Restyled by whitespace

* use virtual method in parent class

---------

Co-authored-by: Restyled.io <commits@restyled.io>
diff --git a/examples/platform/silabs/BaseApplication.cpp b/examples/platform/silabs/BaseApplication.cpp
index fadeaf9..99acb26 100644
--- a/examples/platform/silabs/BaseApplication.cpp
+++ b/examples/platform/silabs/BaseApplication.cpp
@@ -458,11 +458,7 @@
             // - Cycle LCD screen
             CancelFunctionTimer();
 
-            OutputQrCode(false);
-#ifdef DISPLAY_ENABLED
-            UpdateLCDStatusScreen();
-            slLCD.CycleScreens();
-#endif
+            AppTask::GetAppTask().UpdateDisplay();
 
 #ifdef SL_WIFI
             if (!ConnectivityMgr().IsWiFiStationProvisioned())
@@ -493,6 +489,15 @@
     }
 }
 
+void BaseApplication::UpdateDisplay()
+{
+    OutputQrCode(false);
+#ifdef DISPLAY_ENABLED
+    UpdateLCDStatusScreen();
+    slLCD.CycleScreens();
+#endif
+}
+
 void BaseApplication::CancelFunctionTimer()
 {
     if (xTimerStop(sFunctionTimer, pdMS_TO_TICKS(0)) == pdFAIL)
diff --git a/examples/platform/silabs/BaseApplication.h b/examples/platform/silabs/BaseApplication.h
index 0bde0e7..b38f0e5 100644
--- a/examples/platform/silabs/BaseApplication.h
+++ b/examples/platform/silabs/BaseApplication.h
@@ -105,6 +105,11 @@
      */
     static void PostEvent(const AppEvent * event);
 
+    /**
+     * @brief Overridable function used to update display on button press
+     */
+    virtual void UpdateDisplay();
+
 #ifdef DISPLAY_ENABLED
     /**
      * @brief Return LCD object
diff --git a/examples/platform/silabs/display/lcd.h b/examples/platform/silabs/display/lcd.h
index b6f3fc9..703e72a 100644
--- a/examples/platform/silabs/display/lcd.h
+++ b/examples/platform/silabs/display/lcd.h
@@ -71,6 +71,7 @@
     void SetScreen(Screen_e screen);
     void CycleScreens(void);
     void SetStatus(DisplayStatus_t & status);
+    void WriteStatus();
 
 #ifdef QR_CODE_ENABLED
     void SetQRCode(uint8_t * str, uint32_t size);
@@ -85,7 +86,6 @@
     } DemoState_t;
 
     void WriteDemoUI();
-    void WriteStatus();
 
 #ifdef QR_CODE_ENABLED
     void WriteQRCode();