Skip to content

Commit 4f36b42

Browse files
[SL-ONLY] Fixing google nest sleep with iphone (#536)
1 parent 0db15a4 commit 4f36b42

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

examples/platform/silabs/wifi/icd/ApplicationSleepManager.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,16 @@ bool ApplicationSleepManager::ProcessSpecialVendorIDCase(chip::VendorId vendorId
150150

151151
bool ApplicationSleepManager::ProcessKeychainEdgeCase()
152152
{
153-
bool hasValidException = false;
153+
bool hasValidException = true; // Default to true if no VendorId::Apple fabric is found
154154

155155
for (auto it = mFabricTable->begin(); it != mFabricTable->end(); ++it)
156156
{
157-
if ((it->GetVendorId() == chip::VendorId::Apple) &&
158-
mSubscriptionsInfoProvider->FabricHasAtLeastOneActiveSubscription(it->GetFabricIndex()))
157+
if (it->GetVendorId() == chip::VendorId::Apple)
159158
{
160-
hasValidException = true;
159+
if (!mSubscriptionsInfoProvider->FabricHasAtLeastOneActiveSubscription(it->GetFabricIndex()))
160+
{
161+
hasValidException = false; // Found an Apple fabric, but no active subscription
162+
}
161163
break;
162164
}
163165
}

examples/platform/silabs/wifi/icd/ApplicationSleepManager.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,12 @@ class ApplicationSleepManager : public chip::app::ReadHandler::ApplicationCallba
160160
/**
161161
* @brief Processes the Apple Keychain edge case.
162162
*
163-
* Apple, when commissioning, adds two fabric to the device. One for Apple Home and one for the Appley Keychain.
164-
* Apple Home is the active fabric which is used to communication with the device. The associated fabric also has the active
165-
* subcription. Applye Keychain fabric acts as a safety and doesn't have an active fabric with the device. As such, we need an
166-
* alternate method to check if the device can go to LI based sleep.
163+
* Apple iphone/ipad, when commissioning, adds two fabric to the device. One for Apple Home or Google Home and one for the
164+
* Appley Keychain. Apple Home or Google Home is the active fabric which is used to communication with the device. The
165+
* associated fabric also has the active subcription. Applye Keychain fabric acts as a safety and doesn't have an active fabric
166+
* with the device. As such, we need an alternate method to check if the device can go to LI based sleep
167167
*
168-
* This method checks if there is any fabric with the Apple Home vendor ID that
168+
* This method checks if there is any fabric with the Apple Home or Google Home vendor ID that
169169
* has at least one active subscription. If such a fabric is found, it allows
170170
* the device to go to LI based sleep.
171171
*

0 commit comments

Comments
 (0)