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

Fix apps running iOS 13 multi-window not working correctly with the lock screen #1470

Merged
merged 6 commits into from Nov 15, 2019

Conversation

joeljfischer
Copy link
Contributor

Fixes #1430, #1469

This PR is ready for review.

Risk

This PR makes no API changes.

Testing Plan

  1. Unit tests were run.
  2. The Swift example app was updated to run iOS 13 multi-window scene API and smoke tested.
  3. A separate example app supporting rotation was built on the iOS 13 multi-window scene API and smoke tested.
  4. The Obj-C example app continues to support the old-style windowing system and smoke tested.

Summary

This PR makes a few changes to lock screen support especially relating to iOS 13.

  1. There was a crash accessing [UIApplication sharedApplication].windows[0] on iOS 13.
  2. Lock screens on iOS 13 often failed to work properly; they would appear as a black screen without animation.
  3. Rotation did not work correctly when the presenting root VC supported rotation.

Changelog

Bug Fixes
  • Fixed several bugs relating to iOS 13 scene-based windowing support (multi-window) including a crash, rotation issues, and failures to show the lock screen.

CLA

@joeljfischer joeljfischer added bug A defect in the library example app Relating to the built-in example apps labels Nov 8, 2019
@joeljfischer joeljfischer self-assigned this Nov 8, 2019
@NicoleYarroch
Copy link
Contributor

I found an iOS 13 issue with dismissing the lockscreen when the phone is disconnected while the app is in the background. This is not an issue with iOS 12 dismissal code

  1. Connect the SDL_iOS Swift example app to the head unit while the app is open on the phone. Trigger a DD_ON notification so the car is moving and the lock screen shows on the phone.
  2. Put app on phone in the background
  3. Pull the USB cord
  4. Bring app on phone to the foreground

Expected Result
The lock screen should be dismissed.

Actual Result
The lock screen is not dismissed.

Copy link
Contributor

@NicoleYarroch NicoleYarroch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found one issue. I left a comment on the PR.

The lockscreen would stay active if:
* The app was in the foreground and DD was active
* The app was backgrounded
* The device was disconnected
* The app was foregrounded the lock screen would still be active
@joeljfischer
Copy link
Contributor Author

@NicoleYarroch Fixed

@NicoleYarroch
Copy link
Contributor

The only issue I noticed is that now that the lockscreen supports landscape mode, the layout of the icons obscures the Lock Screen Dismissal Warning.
Landscape - Dismissal Warning

@joeljfischer
Copy link
Contributor Author

@NicoleYarroch fixed

@SatbirTanda
Copy link
Contributor

SatbirTanda commented Nov 14, 2019

Have not been able to reproduce the original crash (in #1430), but can confirm I do not see any broken behavior with the changes. One small detail - attached is a video and from 0:15-0:20 you can see that the lock screen presents itself and the sort of disappears (originally, It would slide back down).
RPReplay_Final1573691903.MP4.zip

@joeljfischer
Copy link
Contributor Author

Hi Satbir, I saw the video, but it's difficult to discern exactly what is happening. Can you give us additional information on which module / version you were testing against as well as what you were doing when that jitter occurred (e.g. was it when you plugged the device in, or when you were changing the driver distraction state, etc.).

@SatbirTanda
Copy link
Contributor

Hey Joel,
From 0:15-0-20 was on connection to SYNC (18025), and then launching the app from sync with speed set to 0. Later in the video is me toggling between speed = 100 and speed = 0.

@joeljfischer
Copy link
Contributor Author

I believe that may be related to a particular version of Sync. I'm not seeing the behavior on newer versions of Sync nor with Manticore running Core 5.1.0.

@joeljfischer joeljfischer added this to In progress in v6.4.1 via automation Nov 15, 2019
@joeljfischer joeljfischer changed the base branch from master to develop November 15, 2019 14:43
@joeljfischer joeljfischer merged commit 2a11fef into develop Nov 15, 2019
v6.4.1 automation moved this from In progress to Done Nov 15, 2019
@joeljfischer joeljfischer deleted the bugfix/issue-1469-ios13-multiwindow branch November 15, 2019 14:44
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 example app Relating to the built-in example apps
Projects
No open projects
v6.4.1
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

3 participants