CarPlay OEM App for SiriKit - INSetDefrosterSettingsInCarIntent doesn't recognize "All of them" when prompted by needsValue()

Originator:LigerXX
Number:rdar://27796058 Date Originated:8/10/16
Status:Open Resolved:N/A
Product:Siri Product Version:iOS 10
Classification:Enhancement Reproducible:Always
 
Summary:
In the resolveDefroster(forSetDefrosterSettingsInCar: INSetDefrosterSettingsInCarIntent) we can prompt a user for more specific information regarding which defroster a user wanted to turn on (front or back), but I found that users have responded more often with "All of them" and Siri does not recognize this scenario. 

In this way, it may make more sense to use an nsarray of defrosters (similar to recipients in messaging Siri extensions) going forward

Steps to Reproduce:
1. Make CarPlay app with SiriKit that conforms to the INSetDefrosterSettingsInCarIntentHandling protocol.
2. In func resolveDefroster(forSetDefrosterSettingsInCar), use the sample code in the notes below
3. Launch CarPlay and request Siri to "turn on the defroster". 
4. Siri will respond with "which defroster?"
5. Respond with "all of them"

Expected Results:
defrosters value of type nsarray would exist that contains any defroster a user might have available and can be accessible similar to recipients in INMessage intents.

Actual Results:
user must specify either front or rear defroster and is unable to say "all of them" if an app developer requests needsValue()

Version:
iOS 10 developer beta 5 (14A5335b)

Notes:
Written in Swift 3

func resolveDefroster(forSetDefrosterSettingsInCar intent: INSetDefrosterSettingsInCarIntent, with: (INCarDefrosterResolutionResult) -> Void){
        
        var defroster = INCarDefroster.unknown
        if intent.defroster != .unknown {
            defroster = intent.defroster
        }
        
        switch defroster {
        case .front:
            with(INCarDefrosterResolutionResult.success(with: intent.defroster))
        case .rear:
            with(INCarDefrosterResolutionResult.success(with: intent.defroster))
        case .unknown:
            with(INCarDefrosterResolutionResult.needsValue())
        }
        //with(INCarDefrosterResolutionResult.notRequired())
    }

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!