Fix int promotion compile errors on thermostat application (#34627)

* Fix int promotion compile errors

* Fix cast types

* Minimize cast size

* Fix typo

---------

Co-authored-by: Andrei Litvin <andreilitvin@google.com>
diff --git a/examples/thermostat/linux/thermostat-delegate-impl.cpp b/examples/thermostat/linux/thermostat-delegate-impl.cpp
index fa7bd9a..491e44a 100644
--- a/examples/thermostat/linux/thermostat-delegate-impl.cpp
+++ b/examples/thermostat/linux/thermostat-delegate-impl.cpp
@@ -96,10 +96,10 @@
         const uint8_t handle[] = { static_cast<uint8_t>(presetScenario) };
         mPresets[index].SetPresetHandle(DataModel::MakeNullable(ByteSpan(handle)));
         mPresets[index].SetName(NullOptional);
-        int16_t coolingSetpointValue = 2500 + index * 100;
+        int16_t coolingSetpointValue = static_cast<int16_t>(2500 + (index * 100));
         mPresets[index].SetCoolingSetpoint(MakeOptional(coolingSetpointValue));
 
-        int16_t heatingSetpointValue = 2100 - index * 100;
+        int16_t heatingSetpointValue = static_cast<int16_t>(2100 - (index * 100));
         mPresets[index].SetHeatingSetpoint(MakeOptional(heatingSetpointValue));
         mPresets[index].SetBuiltIn(DataModel::MakeNullable(true));
         index++;
diff --git a/examples/thermostat/linux/thermostat-manager.cpp b/examples/thermostat/linux/thermostat-manager.cpp
index 0026616..e96f04a 100644
--- a/examples/thermostat/linux/thermostat-manager.cpp
+++ b/examples/thermostat/linux/thermostat-manager.cpp
@@ -398,8 +398,8 @@
 
 void ThermostatManager::UpdateRunningModeForHeating()
 {
-    const int16_t heatingOnThreshold  = mOccupiedHeatingSetpoint - mOccupiedSetback * 10;
-    const int16_t heatingOffThreshold = mOccupiedHeatingSetpoint + mOccupiedSetback * 10;
+    const int16_t heatingOnThreshold  = mOccupiedHeatingSetpoint - static_cast<int16_t>(mOccupiedSetback * 10);
+    const int16_t heatingOffThreshold = mOccupiedHeatingSetpoint + static_cast<int16_t>(mOccupiedSetback * 10);
 
     if (mRunningMode == ThermostatRunningModeEnum::kHeat)
     {
@@ -429,8 +429,8 @@
 
 void ThermostatManager::UpdateRunningModeForCooling()
 {
-    const int16_t coolingOffThreshold = mOccupiedCoolingSetpoint - mOccupiedSetback * 10;
-    const int16_t coolingOnThreshold  = mOccupiedCoolingSetpoint + mOccupiedSetback * 10;
+    const int16_t coolingOffThreshold = mOccupiedCoolingSetpoint - static_cast<int16_t>(mOccupiedSetback * 10);
+    const int16_t coolingOnThreshold  = mOccupiedCoolingSetpoint + static_cast<int16_t>(mOccupiedSetback * 10);
 
     if (mRunningMode == ThermostatRunningModeEnum::kCool)
     {