Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dismiss LockViewController not always completed #1523

Closed
kshala-ford opened this issue Jan 22, 2020 · 0 comments · Fixed by #1524
Closed

Dismiss LockViewController not always completed #1523

kshala-ford opened this issue Jan 22, 2020 · 0 comments · Fixed by #1524
Labels
bug A defect in the library manager-lockscreen Relating to the manager layer - lockscreen manager-streaming-video Relating to the manager layer - video streaming
Projects

Comments

@kshala-ford
Copy link
Contributor

Bug Report

This is a regression since 6.5.0. With 6.5.0 the lock screen presenter has changed. The logic to dismiss a lock screen is triggered for many different reasons e.g. manager connects or app gets to foreground on the phone. See SDLLockScreenPresenter.m:168. Every dismiss attempt sends a SDLLockScreenManagerWillDismissLockScreenViewController notification. However if the lock screen is not presented, the notification SDLLockScreenManagerDidDismissLockScreenViewController is missing. The latter one is important for SDLCarWindow to operate as it's tracking lockscreen transitions. The consequence is that mobile navigation apps don't project the UI as the car window is early returning in syncFrame see SDLCarWindow.m:70.

To solve the issue the lock screen presenter should not send notifications if LockViewController is not presented. See below snippet that I tested right before the notification solved the problem for me.

    if (self.lockViewController.presentingViewController == nil) {
        SDLLogW(@"Attempted to dismiss lockscreen, but lockViewController is not presented");
        if (completionHandler == nil) { return; }
        return completionHandler();
    }
Reproduction Steps
  1. Install mobile navigation app with sdl_ios 6.5.0
  2. Connect iPhone to an IVI
  3. Start the nav app on the phone
  4. Start the nav app on the IVI
Expected Behavior

The nav app should stream the app UI to the IVI

Observed Behavior

The IVI is waiting for the app to start the stream

  • The CarWindow is ignoring syncFrame calls
OS & Version Information
  • iOS Version: 13.3 (reproduced on 13.2 as well)
  • SDL iOS Version: 6.5.0
  • Testing Against: Proprietary app. Can provide access upon request
@joeljfischer joeljfischer added bug A defect in the library manager-lockscreen Relating to the manager layer - lockscreen manager-streaming-video Relating to the manager layer - video streaming labels Jan 22, 2020
@joeljfischer joeljfischer added this to Done in v6.6.0 via automation Feb 17, 2020
@joeljfischer joeljfischer mentioned this issue Apr 29, 2020
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A defect in the library manager-lockscreen Relating to the manager layer - lockscreen manager-streaming-video Relating to the manager layer - video streaming
Projects
No open projects
v6.6.0
  
Done
Development

Successfully merging a pull request may close this issue.

2 participants