Fix tv-casting-app implementation of commissioner discovery/resolution (#23787)

* tv-casting-app/darwin: fixing condition checked before returning from the CommissionableDataProviderImpl

* tv-casting-app/android: resolving deadlock in using the NsdManager

* Reusing one ExecutorService per chrisdecenzo's feedback
diff --git a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java
index b0644c4..5fda64c 100644
--- a/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java
+++ b/examples/tv-casting-app/android/App/app/src/main/jni/com/chip/casting/NsdDiscoveryListener.java
@@ -22,6 +22,8 @@
 import android.util.Log;
 import chip.platform.NsdManagerServiceResolver;
 import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 public class NsdDiscoveryListener implements NsdManager.DiscoveryListener {
   private static final String TAG = NsdDiscoveryListener.class.getSimpleName();
@@ -33,6 +35,7 @@
   private final SuccessCallback<DiscoveredNodeData> successCallback;
   private final FailureCallback failureCallback;
   private final NsdManagerServiceResolver.NsdManagerResolverAvailState nsdManagerResolverAvailState;
+  private final ExecutorService resolutionExecutor;
 
   public NsdDiscoveryListener(
       NsdManager nsdManager,
@@ -49,6 +52,7 @@
     this.successCallback = successCallback;
     this.failureCallback = failureCallback;
     this.nsdManagerResolverAvailState = nsdManagerResolverAvailState;
+    this.resolutionExecutor = Executors.newSingleThreadExecutor();
   }
 
   @Override
@@ -58,24 +62,32 @@
 
   @Override
   public void onServiceFound(NsdServiceInfo service) {
-    Log.d(TAG, "Service discovery success. " + service);
-    if (service.getServiceType().equals(targetServiceType)) {
-      if (nsdManagerResolverAvailState != null) {
-        nsdManagerResolverAvailState.acquireResolver();
-      }
-      nsdManager.resolveService(
-          service,
-          new NsdResolveListener(
-              nsdManager,
-              deviceTypeFilter,
-              preCommissionedVideoPlayers,
-              successCallback,
-              failureCallback,
-              nsdManagerResolverAvailState,
-              1));
-    } else {
-      Log.d(TAG, "Ignoring discovered service: " + service.toString());
-    }
+    this.resolutionExecutor.execute(
+        new Runnable() {
+          @Override
+          public void run() {
+            Log.d(TAG, "Service discovery success. " + service);
+            if (service.getServiceType().equals(targetServiceType)) {
+              if (nsdManagerResolverAvailState != null) {
+                nsdManagerResolverAvailState.acquireResolver();
+              }
+
+              Log.d(TAG, "Calling NsdManager.resolveService for " + service);
+              nsdManager.resolveService(
+                  service,
+                  new NsdResolveListener(
+                      nsdManager,
+                      deviceTypeFilter,
+                      preCommissionedVideoPlayers,
+                      successCallback,
+                      failureCallback,
+                      nsdManagerResolverAvailState,
+                      1));
+            } else {
+              Log.d(TAG, "Ignoring discovered service: " + service.toString());
+            }
+          }
+        });
   }
 
   @Override
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp
index 872feb5..b05ce4a 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/CommissionableDataProviderImpl.hpp
@@ -74,7 +74,7 @@
 
     CHIP_ERROR GetSpake2pIterationCount(uint32_t & iterationCount) override
     {
-        if (mSetupDiscriminator > 0)
+        if (mSpake2pIterationCount > 0)
         {
             iterationCount = mSpake2pIterationCount;
         }
diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj
index dfaf0a6..6252d2c 100644
--- a/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj
+++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting.xcodeproj/project.pbxproj
@@ -420,7 +420,7 @@
 					CoreData,
 					"-Wl,-unexported_symbol,\"__Z*\"",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.matter.TvCasting-sharadb";
+				PRODUCT_BUNDLE_IDENTIFIER = com.matter.TvCasting;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
 				SWIFT_EMIT_LOC_STRINGS = YES;
@@ -467,7 +467,7 @@
 					"-Wformat-nonliteral",
 					"-Wformat-security",
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = "com.matter.TvCasting-sharadb";
+				PRODUCT_BUNDLE_IDENTIFIER = com.matter.TvCasting;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
 				SWIFT_EMIT_LOC_STRINGS = YES;
diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift
index 26e4768..daef2e7 100644
--- a/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift
+++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting/TvCastingApp.swift
@@ -38,6 +38,12 @@
                         }
                         appParameters.rotatingDeviceIdUniqueId = Data(rotatingDeviceIdUniqueId)
                         
+                        let onboardingParameters: OnboardingPayload = OnboardingPayload()
+                        onboardingParameters.setupPasscode = 20202021
+                        onboardingParameters.setupDiscriminator = 3840
+                        
+                        appParameters.onboardingPayload = onboardingParameters
+                        
                         castingServerBridge.initApp(appParameters, clientQueue: DispatchQueue.main, initAppStatusHandler: { (result: Bool) -> () in
                             self.Log.info("initApp result \(result)")
                         })