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

Improve layout in landscape orientation #1139

Closed
1ec5 opened this issue Feb 20, 2018 · 9 comments · Fixed by #3643
Closed

Improve layout in landscape orientation #1139

1ec5 opened this issue Feb 20, 2018 · 9 comments · Fixed by #3643
Assignees
Labels
topic: design UI Work related to visual components, Android Auto, Camera, 3D, voice, etc.
Milestone

Comments

@1ec5
Copy link
Contributor

1ec5 commented Feb 20, 2018

NavigationViewController is laid out inefficiently when the device is in landscape orientation. Each banner takes up the entire width of the screen, revealing plenty of whitespace, while taking up valuable vertical screen real estate. With enough banners visible (lanes, “then”, simulation), the user puck overlaps the banners, and the floating action buttons at right overlap the bottom bar, obscuring the exit button.

landscape

Many navigation applications, including Apple Maps, switch to a two-column layout in landscape orientation, with the left column containing the banners and the bottom bar. With this layout, the banner gets less horizontal space but more vertical space, which can be used for line wrapping or for displaying additional information like incidents.

Previously: #726.

/cc @mapbox/navigation-ios

@bsudekum
Copy link
Contributor

I'm actually unsure how the lanes view and the then banner are both showing up in this pr, as we only show the then banner if the lanes view is hidden

lanesView.update(for: routeController.routeProgress.currentLegProgress)
if lanesView.isHidden {
nextBannerView.update(for: routeController.routeProgress)
}

@1ec5
Copy link
Contributor Author

1ec5 commented Mar 31, 2018

For the original report above, I was simulating approximately this route, and the stacked views did reproduce reliably. There’s a bit of a gap between these two checks:

let durationForNext = RouteControllerHighAlertInterval * RouteControllerLinkedInstructionBufferMultiplier
guard routeProgress.currentLegProgress.currentStepProgress.durationRemaining <= durationForNext, upcomingStep.expectedTravelTime <= durationForNext else {
return false
}

durationRemaining < RouteControllerMediumAlertInterval {

So one view showed up first, then the other, as I approached the intersection.

@akitchen akitchen changed the title Inefficient use of screen real estate in landscape orientation Improve layout in landscape orientation May 18, 2018
@bsudekum
Copy link
Contributor

Posting UI without any sub instructions:
simulator screen shot - iphone x - 2018-05-21 at 11 23 30

@1ec5
Copy link
Contributor Author

1ec5 commented May 21, 2018

Note that the screenshot in #1139 (comment) was taken on an iPhone 8, while the screenshot in #1139 (comment) was taken on an iPhone X. (You can tell because of the extra padding on the right to make room for the notch.)

@brsbl-zz
Copy link

cc @cjballard would love your input here more generally, but also I think it's important to think about landscape mode as we are sprinting on redesigning the UI.

@Cjballard-zz
Copy link

Cjballard-zz commented May 29, 2018

@brsbl Was thinking about this as well while doing some test drives in landscape mode. I liked the Apple & Waze two-column approach a little better because it consolidated info neatly and reserved more map space.

apple-landscape

But more generally interested in how we can rectify information dead zones where we rarely present any information and instruction in landscape mode, and split-screen is just one solution.

dedzone

@1ec5
Copy link
Contributor Author

1ec5 commented Sep 24, 2018

By the way, we implemented a two-column layout as a matter of course in CarPlay. (We didn’t have a choice, and it looks good!)

@akitchen akitchen added CarPlay Bugs, improvements and feature requests on Apple CarPlay and removed CarPlay Bugs, improvements and feature requests on Apple CarPlay labels Jan 24, 2019
@1ec5
Copy link
Contributor Author

1ec5 commented May 28, 2019

mapbox/mapbox-gl-native#14664 adjusts the map’s vanishing point to account for edge padding, which unblocks the sort of landscape layout seen in CarPlay. (#2134 updates the CarPlay support code to take advantage of this improvement to the map SDK.)

@1ec5 1ec5 added this to the v1.4.0 milestone Nov 13, 2020
@MaximAlien MaximAlien added iOS UI Work related to visual components, Android Auto, Camera, 3D, voice, etc. labels Nov 13, 2020
@LukasPaczos LukasPaczos modified the milestones: v1.4.0, f (android-v1.6.0 / ios-v1.4.0) Dec 17, 2020
@truburt truburt removed this from the f (android-v1.6.0 / ios-v1.4.0) milestone Feb 26, 2021
@1ec5 1ec5 removed the CarPlay Bugs, improvements and feature requests on Apple CarPlay label May 18, 2021
@MaximAlien
Copy link
Contributor

Moving to v2.2 for now. There is a low chance that we'll be able to tackle this in v2.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: design UI Work related to visual components, Android Auto, Camera, 3D, voice, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants