[android] refactor map button and remove layers selection from main menu #2905

Merged
arnaudvergnet merged 11 commits from layers-menu into master 2022-09-05 06:42:26 +00:00
arnaudvergnet commented 2022-07-02 22:17:54 +00:00 (Migrated from github.com)

Idea was discussed in organicmaps/organicmaps#1745.

Layers are now only present in the main menu. The layers button raised too many issues and I personally never use it so removing it makes the app cleaner.

Layers button is now between zoom and position buttons and layers selection has been removed from the main menu to avoid duplicating UI elements.

To simplify handling of on-map buttons, a new class MapButtonsController has been created and all on-map buttons have been added to the map_navigation_buttons xml layout (even the bookmark and search buttons only shown when planning/navigating). This class is responsible of controlling the visibility of all map buttons and will translate them when the place page moves. The class provides a callback to use in the MwmActivity to detect which button has been pressed.

All button resources (button background and icons) have been updated to use xml/svg format. This makes buttons appear sharper and makes maintaining easier.

Here is a video demo in portrait mode:

https://user-images.githubusercontent.com/80701113/177939604-1eda3ecd-b273-4d15-9f68-2839433a37f7.mp4

And here is the demo in landscape mode:

https://user-images.githubusercontent.com/80701113/177939641-894d7d0a-77b1-4ccf-8218-4b5bd81f2150.mp4

Closes #2614, closes #1655, closes #508

Idea was discussed in https://git.omaps.dev/organicmaps/organicmaps/issues/1745. ~~Layers are now only present in the main menu. The layers button raised too many issues and I personally never use it so removing it makes the app cleaner.~~ Layers button is now between zoom and position buttons and layers selection has been removed from the main menu to avoid duplicating UI elements. To simplify handling of on-map buttons, a new class `MapButtonsController` has been created and all on-map buttons have been added to the `map_navigation_buttons` xml layout (even the bookmark and search buttons only shown when planning/navigating). This class is responsible of controlling the visibility of all map buttons and will translate them when the place page moves. The class provides a callback to use in the `MwmActivity` to detect which button has been pressed. All button resources (button background and icons) have been updated to use xml/svg format. This makes buttons appear sharper and makes maintaining easier. Here is a video demo in portrait mode: https://user-images.githubusercontent.com/80701113/177939604-1eda3ecd-b273-4d15-9f68-2839433a37f7.mp4 And here is the demo in landscape mode: https://user-images.githubusercontent.com/80701113/177939641-894d7d0a-77b1-4ccf-8218-4b5bd81f2150.mp4 Closes #2614, closes #1655, closes #508
Owner

Makes perfect sense to de-duplicate the UI.

However I'm a bit worried that after adding a few alternative map styles (outdoors, every day, cycling, etc.) it will be too crowded in the main menu pop-up (atm it takes ~60% of screen estate when open on my device) and we'll have to go back to a separate layers/styles button.

Also personally I use the layers button always - never used the main menu pop-up to switch layers. And there will be many users who are accustomed to it too and they may "lose" the feature after the update - and I don't know how we can address it easily.

Makes perfect sense to de-duplicate the UI. However I'm a bit worried that after adding a few alternative map styles (outdoors, every day, cycling, etc.) it will be too crowded in the main menu pop-up (atm it takes ~60% of screen estate when open on my device) and we'll have to go back to a separate layers/styles button. Also personally I use the layers button always - never used the main menu pop-up to switch layers. And there will be many users who are accustomed to it too and they may "lose" the feature after the update - and I don't know how we can address it easily.
arnaudvergnet commented 2022-07-03 18:58:23 +00:00 (Migrated from github.com)

If we keep it then we have to change the way map buttons are handled. Right now it is quite complicated and introduces many bugs.

If we keep it then we have to change the way map buttons are handled. Right now it is quite complicated and introduces many bugs.
biodranik (Migrated from github.com) reviewed 2022-07-04 22:02:15 +00:00
biodranik (Migrated from github.com) left a comment

Let's think about the future:

  1. We'll definitely add some map styles, like "outdoor", in addition to our existing one ("generic"). There also could be "city tourism", "cycling", "driving", in addition to existing "public transport". Isolines will be rewritten at some point and will be joined with outdoor and cycling.
  2. There should be some indicator on the screen, which style is active now, right? Would it be better to copy it from some other popular maps apps?
Let's think about the future: 1. We'll definitely add some map styles, like "outdoor", in addition to our existing one ("generic"). There also could be "city tourism", "cycling", "driving", in addition to existing "public transport". Isolines will be rewritten at some point and will be joined with outdoor and cycling. 2. There should be some indicator on the screen, which style is active now, right? Would it be better to copy it from some other popular maps apps?
arnaudvergnet commented 2022-07-05 06:23:28 +00:00 (Migrated from github.com)

What I can try to do then is to re-add the layers button but making sure it fixes the current bugs. And then I will remove the layers selection in the main menu (maybe replace it by the OM logo?).

What I can try to do then is to re-add the layers button but making sure it fixes the current bugs. And then I will remove the layers selection in the main menu (maybe replace it by the OM logo?).
biodranik commented 2022-07-05 06:35:53 +00:00 (Migrated from github.com)

It is a possible approach but needs a bit of UI/UX designing first.

It is a possible approach but needs a bit of UI/UX designing first.
Owner

Yeap its a very good point about a visible current layer/style indicator.
And from my POV it makes a perfect sense to combine it with a switcher.

So from my POV keeping the separate button and removing layers from the menu (TBH I see no point to substitute it with an OM logo or anything else - the menu will be just more compact and its great).
But I agree there are some unresolved usability issues with that layers switch button.
Do you have an idea already how to fix them?

Yeap its a very good point about a visible current layer/style indicator. And from my POV it makes a perfect sense to combine it with a switcher. So from my POV keeping the separate button and removing layers from the menu (TBH I see no point to substitute it with an OM logo or anything else - the menu will be just more compact and its great). But I agree there are some unresolved usability issues with that layers switch button. Do you have an idea already how to fix them?
arnaudvergnet commented 2022-07-05 18:07:38 +00:00 (Migrated from github.com)

But I agree there are some unresolved usability issues with that layers switch button.
Do you have an idea already how to fix them?

I was thinking of handling all map buttons at the same time, maybe by resizing the parent layout instead of working with each button separately.

Should I close this issue and create another one or can I simply update this one?

> But I agree there are some unresolved usability issues with that layers switch button. > Do you have an idea already how to fix them? I was thinking of handling all map buttons at the same time, maybe by resizing the parent layout instead of working with each button separately. Should I close this issue and create another one or can I simply update this one?
biodranik commented 2022-07-05 22:59:24 +00:00 (Migrated from github.com)

You can work on this one, I think your initial intention was to clean up the old/buggy code, and that's good )
I would use some icons to indicate the selected style (Apple maps do it great), and probably move it on the lower right, near the position button, for easier switching.
And please no animations! The interface should be blazing fast everywhere :)

You can work on this one, I think your initial intention was to clean up the old/buggy code, and that's good ) I would use some icons to indicate the selected style (Apple maps do it great), and probably move it on the lower right, near the position button, for easier switching. And please no animations! The interface should be blazing fast everywhere :)
arnaudvergnet commented 2022-07-08 07:26:52 +00:00 (Migrated from github.com)

I updated the main post with information from my latest commits.

I updated the main post with information from my latest commits.
arnaudvergnet commented 2022-07-08 07:29:11 +00:00 (Migrated from github.com)

You can work on this one, I think your initial intention was to clean up the old/buggy code, and that's good )

I tried to refactor as much as possible but there is still room for improvement.

I would use some icons to indicate the selected style (Apple maps do it great), and probably move it on the lower right, near the position button, for easier switching.

The button is now in the lower right but I did not change the icon yet. I will have to experiment with this.

And please no animations! The interface should be blazing fast everywhere :)

Buttons are instantly shown/hidden without animations!

> You can work on this one, I think your initial intention was to clean up the old/buggy code, and that's good ) I tried to refactor as much as possible but there is still room for improvement. > I would use some icons to indicate the selected style (Apple maps do it great), and probably move it on the lower right, near the position button, for easier switching. The button is now in the lower right but I did not change the icon yet. I will have to experiment with this. > And please no animations! The interface should be blazing fast everywhere :) Buttons are instantly shown/hidden without animations!
biodranik commented 2022-07-08 10:03:01 +00:00 (Migrated from github.com)

Thanks for the videos! It looks great, and can be improved even more ;-)

  1. Is it possible to flexibly "compress" buttons so they will stay on the screen for as much time as possible (until there is a space for them), by reducing gaps between buttons?
  2. Is it possible to avoid moving buttons at all in the landscape, because there is a lot of space for buttons on the left and on the right?
  3. What is the behavior on tablets?
Thanks for the videos! It looks great, and can be improved even more ;-) 1. Is it possible to flexibly "compress" buttons so they will stay on the screen for as much time as possible (until there is a space for them), by reducing gaps between buttons? 2. Is it possible to avoid moving buttons at all in the landscape, because there is a lot of space for buttons on the left and on the right? 3. What is the behavior on tablets?
arnaudvergnet commented 2022-07-08 10:41:49 +00:00 (Migrated from github.com)
  1. I can try to do that
  2. It should be possible yes but the place page may still show over the buttons on phones with small screens.
  3. I don't known how to enable tablet mode (I saw references to a tablet mode in the code)
1. I can try to do that 2. It should be possible yes but the place page may still show over the buttons on phones with small screens. 3. I don't known how to enable tablet mode (I saw references to a tablet mode in the code)
arnaudvergnet commented 2022-07-08 17:58:21 +00:00 (Migrated from github.com)

@biodranik I implemented 1. and 2. I ended up removing the class NavigationButtonsAnimationController and moved the logic inside MapsButtonsController to make the architecture easier to understand.

Here is a video demonstrating point 1:

https://user-images.githubusercontent.com/80701113/178043981-3517032a-39ed-428f-8c87-47a1f1f3fdf9.mp4

And here for point 2:

https://user-images.githubusercontent.com/80701113/178043985-fbaf50a0-b254-4f50-a6f7-ab0e1b860d17.mp4

For point 3, here is how it looks on the Pixel C. Like in landscape, it does not move the buttons because the code checks for the place page width to see if it will obstruct the buttons.

https://user-images.githubusercontent.com/80701113/178045032-50fdfce6-8e60-4ced-bad6-ee361007b42f.mp4

If everything is good for you, I can rework the PR git history to make it cleaner or you can squash when merging, your call.

@biodranik I implemented 1. and 2. I ended up removing the class `NavigationButtonsAnimationController` and moved the logic inside `MapsButtonsController` to make the architecture easier to understand. Here is a video demonstrating point 1: https://user-images.githubusercontent.com/80701113/178043981-3517032a-39ed-428f-8c87-47a1f1f3fdf9.mp4 And here for point 2: https://user-images.githubusercontent.com/80701113/178043985-fbaf50a0-b254-4f50-a6f7-ab0e1b860d17.mp4 For point 3, here is how it looks on the Pixel C. Like in landscape, it does not move the buttons because the code checks for the place page width to see if it will obstruct the buttons. https://user-images.githubusercontent.com/80701113/178045032-50fdfce6-8e60-4ced-bad6-ee361007b42f.mp4 **If everything is good for you, I can rework the PR git history to make it cleaner or you can squash when merging, your call.**
biodranik commented 2022-07-08 22:05:46 +00:00 (Migrated from github.com)

This should be carefully tested in all modes before the merge :) @rtsisyk can you please help?

This should be carefully tested in all modes before the merge :) @rtsisyk can you please help?
biodranik (Migrated from github.com) approved these changes 2022-07-08 22:19:27 +00:00
biodranik (Migrated from github.com) left a comment

LGTM with minor comments.

LGTM with minor comments.
biodranik (Migrated from github.com) commented 2022-07-08 22:07:49 +00:00

When it can be null?

When it can be null?
biodranik (Migrated from github.com) commented 2022-07-08 22:08:01 +00:00

nit: final

nit: final
biodranik (Migrated from github.com) commented 2022-07-08 22:10:33 +00:00

Won't it be covered anymore?

Won't it be covered anymore?
biodranik (Migrated from github.com) commented 2022-07-08 22:12:13 +00:00
    frame.findViewById(R.id.nav_zoom_in).setOnClickListener((v) -> mapButtonClickListener.onClick(MapButtons.zoomIn));
```suggestion frame.findViewById(R.id.nav_zoom_in).setOnClickListener((v) -> mapButtonClickListener.onClick(MapButtons.zoomIn)); ```
biodranik (Migrated from github.com) commented 2022-07-08 22:12:39 +00:00
    frame.findViewById(R.id.nav_zoom_out).setOnClickListener((v) -> mapButtonClickListener.onClick(MapButtons.zoomOut));
```suggestion frame.findViewById(R.id.nav_zoom_out).setOnClickListener((v) -> mapButtonClickListener.onClick(MapButtons.zoomOut)); ```
biodranik (Migrated from github.com) commented 2022-07-08 22:13:09 +00:00

(v)?

(v)?
biodranik (Migrated from github.com) commented 2022-07-08 22:14:38 +00:00
    mSearchButtonFrame.findViewById(R.id.btn_bookmarks).setImageDrawable(Graphics.tint(bookmarkButton.getContext(), R.drawable.ic_menu_bookmarks));
```suggestion mSearchButtonFrame.findViewById(R.id.btn_bookmarks).setImageDrawable(Graphics.tint(bookmarkButton.getContext(), R.drawable.ic_menu_bookmarks)); ```
biodranik (Migrated from github.com) commented 2022-07-08 22:17:48 +00:00
    if (enabled)
      drawable = R.drawable.ic_layers_clear;
```suggestion if (enabled) drawable = R.drawable.ic_layers_clear; ```
biodranik (Migrated from github.com) commented 2022-07-08 22:18:14 +00:00
    mLayersButton.setImageDrawable(Graphics.tint(mLayersButton.getContext(), drawable));
```suggestion mLayersButton.setImageDrawable(Graphics.tint(mLayersButton.getContext(), drawable)); ```
@ -110,20 +104,13 @@ public class NavigationController implements Application.ActivityLifecycleCallba
UiUtils.extendViewWithStatusBar(mStreetFrame);
UiUtils.extendViewMarginWithStatusBar(turnFrame);
biodranik (Migrated from github.com) commented 2022-07-08 22:18:46 +00:00
    final Application app = (Application) mFrame.getContext().getApplicationContext();
```suggestion final Application app = (Application) mFrame.getContext().getApplicationContext(); ```
biodranik (Migrated from github.com) reviewed 2022-07-08 22:20:40 +00:00
biodranik (Migrated from github.com) left a comment

@pastk @rtsisyk @vng it should be squashed on merge after a proper testing

@pastk @rtsisyk @vng it should be squashed on merge after a proper testing
Member

It'd be nice to have a left-handed mode that flips the buttons to the left :) I really like it so far though!

It'd be nice to have a left-handed mode that flips the buttons to the left :) I really like it so far though!
biodranik commented 2022-07-09 06:15:31 +00:00 (Migrated from github.com)

Yes, mirroring the interface for left-handed, and un-mirroring it for RTL text layouts was already requested by several people. Not sure if it's easy to do though (mirror interface only while leaving the text direction as is).

Yes, mirroring the interface for left-handed, and un-mirroring it for RTL text layouts was already requested by several people. Not sure if it's easy to do though (mirror interface only while leaving the text direction as is).
arnaudvergnet commented 2022-07-09 06:18:35 +00:00 (Migrated from github.com)

It'd be nice to have a left-handed mode that flips the buttons to the left :) I really like it so far though!

I agree I would be nice but it should probably done in an other PR as it would change not only the map buttons, but also the FAB buttons in the search, bookmark and download screens.

> It'd be nice to have a left-handed mode that flips the buttons to the left :) I really like it so far though! I agree I would be nice but it should probably done in an other PR as it would change not only the map buttons, but also the FAB buttons in the search, bookmark and download screens.
arnaudvergnet (Migrated from github.com) reviewed 2022-07-09 12:34:22 +00:00
arnaudvergnet (Migrated from github.com) commented 2022-07-09 12:34:22 +00:00

It is a leftover from the original code but you are right it should not be possible (and if it is there better be a crash than a silent error)

It is a leftover from the original code but you are right it should not be possible (and if it is there better be a crash than a silent error)
arnaudvergnet (Migrated from github.com) reviewed 2022-07-09 12:36:08 +00:00
arnaudvergnet (Migrated from github.com) commented 2022-07-09 12:36:08 +00:00

It is still necessary to adjust the compass position to show the navigation toolbar

It is still necessary to adjust the compass position to show the navigation toolbar
arnaudvergnet (Migrated from github.com) reviewed 2022-07-09 12:42:19 +00:00
arnaudvergnet (Migrated from github.com) commented 2022-07-09 12:42:19 +00:00

OnClickListener expects a function accepting a View and not returning anything. If I do not put the view argument the compiler complains. So here the v argument is simply ignored. I did not find a better way, seems like a limitation from Java.

`OnClickListener` expects a function accepting a `View` and not returning anything. If I do not put the view argument the compiler complains. So here the `v` argument is simply ignored. I did not find a better way, seems like a limitation from Java.
arnaudvergnet (Migrated from github.com) reviewed 2022-07-09 12:44:55 +00:00
arnaudvergnet (Migrated from github.com) commented 2022-07-09 12:44:55 +00:00

This refactoring is not possible as the bookmarkButton variable is used twice (bookmarkButton.setImageDrawable and bookmarkButton.getContext()).

This refactoring is not possible as the `bookmarkButton` variable is used twice (`bookmarkButton.setImageDrawable` and `bookmarkButton.getContext()`).
Owner

Why don't we show the layers button in routing and navigation modes?
Its quite inconvenient to go back to the main map mode just to e.g. turn on subway layer to locate that subway entrance you're going to. Especially inconvenient if one had a customized route with a lot of intermediate stops - it'll be reset.

Some bugs I found after a quick testing on a Nexus S emulator (480x800 res):

  • the + zoom button doesn't fit in the landscape mode
  • both zoom buttons are gone in routing/navigation for the landscape mode and for routing in the portrait mode (portrait navigation is ok)
  • bookmarks button (a star) doesn't work in routing/navigation modes

Also when I open a PP first buttons to disappear because of lack of space are zoom buttons and I'm left with the "center" and "layers" ones. I think zoom buttons are used more often and thus are more important to stay on the screen.
Also in portrait mode there is space actually to preserve all buttons, but they won't move higher that the top + button.

layers-land

layers-portrait

Also TBH personally I liked the previous top left corner location of the layers button more.

Why don't we show the layers button in routing and navigation modes? Its quite inconvenient to go back to the main map mode just to e.g. turn on subway layer to locate that subway entrance you're going to. Especially inconvenient if one had a customized route with a lot of intermediate stops - it'll be reset. Some bugs I found after a quick testing on a Nexus S emulator (480x800 res): - the `+` zoom button doesn't fit in the landscape mode - both zoom buttons are gone in routing/navigation for the landscape mode and for routing in the portrait mode (portrait navigation is ok) - bookmarks button (a star) doesn't work in routing/navigation modes Also when I open a PP first buttons to disappear because of lack of space are zoom buttons and I'm left with the "center" and "layers" ones. I think zoom buttons are used more often and thus are more important to stay on the screen. Also in portrait mode there is space actually to preserve all buttons, but they won't move higher that the top `+` button. ![layers-land](https://user-images.githubusercontent.com/18434508/178116794-49f928ab-d52d-429d-aca0-20f1af129bd0.png) ![layers-portrait](https://user-images.githubusercontent.com/18434508/178116796-95102620-d037-411a-b1ad-87ae7e7fc6f5.png) Also TBH personally I liked the previous top left corner location of the layers button more.
biodranik commented 2022-07-09 18:58:23 +00:00 (Migrated from github.com)

RE: Case when buttons don't fit the height in landscape. Should their size be automatically reduced to fit the height? Or do we need a different layout and button positions?

RE: Case when buttons don't fit the height in landscape. Should their size be automatically reduced to fit the height? Or do we need a different layout and button positions?
biodranik commented 2022-07-09 18:59:09 +00:00 (Migrated from github.com)

Does the layers button show which layer is active at the moment? It would be great if it will be clear for users.

Does the layers button show which layer is active at the moment? It would be great if it will be clear for users.
arnaudvergnet commented 2022-07-09 20:29:17 +00:00 (Migrated from github.com)

Why don't we show the layers button in routing and navigation modes?

It was the behavior before the PR and even if I show it, it has no effect when routing.

> Why don't we show the layers button in routing and navigation modes? It was the behavior before the PR and even if I show it, it has no effect when routing.
arnaudvergnet commented 2022-07-09 20:31:37 +00:00 (Migrated from github.com)

Also TBH personally I liked the previous top left corner location of the layers button more.

If layers are a feature often used, then it should not be in the top left. Bottom right is more accessible for one-handed use.

> Also TBH personally I liked the previous top left corner location of the layers button more. If layers are a feature often used, then it should not be in the top left. Bottom right is more accessible for one-handed use.
arnaudvergnet commented 2022-07-09 20:35:36 +00:00 (Migrated from github.com)

RE: Case when buttons don't fit the height in landscape. Should their size be automatically reduced to fit the height? Or do we need a different layout and button positions?

Using a different layout would take too much screen space. IMO reducing button size would be better

Does the layers button show which layer is active at the moment? It would be great if it will be clear for users.

It does not but I don't know if using the layers graphics is a good idea as they may not render well on a small button. We may need a new very simple icons.

> RE: Case when buttons don't fit the height in landscape. Should their size be automatically reduced to fit the height? Or do we need a different layout and button positions? Using a different layout would take too much screen space. IMO reducing button size would be better > Does the layers button show which layer is active at the moment? It would be great if it will be clear for users. It does not but I don't know if using the layers graphics is a good idea as they may not render well on a small button. We may need a new very simple icons.
Owner

Also TBH personally I liked the previous top left corner location of the layers button more.

If layers are a feature often used, then it should not be in the top left. Bottom right is more accessible for one-handed use.

True. But we don't put buttons for seldom used functions onto the map screen, so by this definition all of them are used often;
the point is that "often" is relative :)

For sure the zoom and center buttons are used more often. Also the right side of the screen is crowded with buttons already, while the left side will be empty if we move the layers button...

At the very least if not keeping the layers button in top left then let's put it above the zoom buttons (ideally - top right corner and then the compass button should appear right under it or, alternatively, the compass button should push the layers one below it when visible). It'll make more logical for the layers button to disappera before zoom buttons when there is not enough space.

What do you think?

> > Also TBH personally I liked the previous top left corner location of the layers button more. > > If layers are a feature often used, then it should not be in the top left. Bottom right is more accessible for one-handed use. True. But we don't put buttons for seldom used functions onto the map screen, so by this definition all of them are used often; the point is that "often" is relative :) For sure the zoom and center buttons are used more often. Also the right side of the screen is crowded with buttons already, while the left side will be empty if we move the layers button... At the very least if not keeping the layers button in top left then let's put it above the zoom buttons (ideally - top right corner and then the compass button should appear right under it or, alternatively, the compass button should push the layers one below it when visible). It'll make more logical for the layers button to disappera before zoom buttons when there is not enough space. What do you think?
Owner

RE: Case when buttons don't fit the height in landscape. Should their size be automatically reduced to fit the height? Or do we need a different layout and button positions?

Using a different layout would take too much screen space. IMO reducing button size would be better

I believe all buttons will fit if we just reducing spacing between them.

It does not but I don't know if using the layers graphics is a good idea as they may not render well on a small button. We may need a new very simple icons.

I believe there are icons for that in the iOS version already. Is that right @biodranik ?

> > RE: Case when buttons don't fit the height in landscape. Should their size be automatically reduced to fit the height? Or do we need a different layout and button positions? > > Using a different layout would take too much screen space. IMO reducing button size would be better > I believe all buttons will fit if we just reducing spacing between them. > > It does not but I don't know if using the layers graphics is a good idea as they may not render well on a small button. We may need a new very simple icons. I believe there are icons for that in the iOS version already. Is that right @biodranik ?
Owner

Ugh.. its even more crowded when the compass button is visible...

layers-land-compass

Ugh.. its even more crowded when the compass button is visible... ![layers-land-compass](https://user-images.githubusercontent.com/18434508/178138809-3773bad2-1403-4963-8343-7b293d70d6de.png)
Owner

One more glitch:

  • in the landscape routing mode the bookmarks and search buttons are visible initially
  • they disappear when a PP is opened
  • when the PP is closed the buttons don't re-appear
  • they do re-appear after routing mode change (e.g. from vehicle to cycling)

layers-land-disappear

One more glitch: - in the landscape routing mode the bookmarks and search buttons are visible initially - they disappear when a PP is opened - when the PP is closed the buttons don't re-appear - they do re-appear after routing mode change (e.g. from vehicle to cycling) ![layers-land-disappear](https://user-images.githubusercontent.com/18434508/178138846-2790aec3-0cbb-4a74-b5f1-9b3566e90719.png)
Owner

Why don't we show the layers button in routing and navigation modes?

It was the behavior before the PR and even if I show it, it has no effect when routing.

Yeap the subway layer doesn't switch unless a routing mode (car/bicycle...) is changed. The contour lines switching works well though. Let's leave it for another issue.

> > Why don't we show the layers button in routing and navigation modes? > > It was the behavior before the PR and even if I show it, it has no effect when routing. Yeap the subway layer doesn't switch unless a routing mode (car/bicycle...) is changed. The contour lines switching works well though. Let's leave it for another issue.
biodranik commented 2022-07-10 09:47:24 +00:00 (Migrated from github.com)

Looks like we need to sit and carefully think over the whole UI and UX to avoid introducing new issues.

Let's brainstorm what would be the best UI, including:

  • bottom bar (is it needed? Can we add more buttons there?)
  • compass button (it is drawn and positioned in the C++ code)
  • all other buttons
  • different modes of the app (build a route, navigation for cars/cyclers/hikers)
  • obviously different current ones and planned ones (will layers exclude each other or can be combined?)
  • easiness of use for more frequent buttons/features.
Looks like we need to sit and carefully think over the whole UI and UX to avoid introducing new issues. Let's brainstorm what would be the best UI, including: - bottom bar (is it needed? Can we add more buttons there?) - compass button (it is drawn and positioned in the C++ code) - all other buttons - different modes of the app (build a route, navigation for cars/cyclers/hikers) - obviously different current ones and planned ones (will layers exclude each other or can be combined?) - easiness of use for more frequent buttons/features.
Owner
* compass button (it is drawn and positioned in the C++ code)

Oh ok, then its gonna be tricky to put the layers button into the top right corner...

* obviously different current ones and planned ones (will layers exclude each other or can be combined?)

They could be combined I think.
E.g. almost any style (cycling, vehicle, etc.) + contour lines layer. Same for subway layer.
Also possibly a "clean/minimal" mode + any style.

> * compass button (it is drawn and positioned in the C++ code) Oh ok, then its gonna be tricky to put the layers button into the top right corner... > * obviously different current ones and planned ones (will layers exclude each other or can be combined?) They could be combined I think. E.g. almost any style (cycling, vehicle, etc.) + contour lines layer. Same for subway layer. Also possibly a "clean/minimal" mode + any style.
arnaudvergnet commented 2022-07-10 10:54:36 +00:00 (Migrated from github.com)

For small screens a big problem is the bottom bar. It takes way too much space so if we want to show map buttons as well, half the screen becomes unusable for the map.

The bottom bar has only 4 actions:

  • help/about
  • search
  • bookmarks
  • settings

Help can be accessed from the settings so this one can go. Search and bookmarks already have map buttons ready, but those are only shown when navigating/routing. Settings can only be accessed from the menu.

So in the end, if we want to remove the bottom bar, we would only need to add one more button to access the settings. We would then have to rethink where each button should be placed. When routing is enabled, layers and settings button could then disappear to leave more screen space.

This would help solving issues for small screens in regular map view mode. For routing/planning, we could move some less used buttons in the planning header or the navigation bottom sheet (we would need to decide which buttons are less useful for navigation). Reducing the size of buttons would also help on small density screen.

Here are examples from the StreetComplete app:

Portrait Landscape Menu
Screenshot_20220710-124759_Street�Complete Screenshot_20220710-124805_Street�Complete Screenshot_20220710-124809_Street�Complete

In this app, bottom sheets when selecting elements in the map simply hide the position and zoom buttons. But this is not an issue as those are never used when a map element is selected.

For small screens a big problem is the bottom bar. It takes way too much space so if we want to show map buttons as well, half the screen becomes unusable for the map. The bottom bar has only 4 actions: - help/about - search - bookmarks - settings Help can be accessed from the settings so this one can go. Search and bookmarks already have map buttons ready, but those are only shown when navigating/routing. Settings can only be accessed from the menu. So in the end, if we want to remove the bottom bar, we would only need to add one more button to access the settings. We would then have to rethink where each button should be placed. When routing is enabled, layers and settings button could then disappear to leave more screen space. This would help solving issues for small screens in regular map view mode. For routing/planning, we could move some less used buttons in the planning header or the navigation bottom sheet (we would need to decide which buttons are less useful for navigation). Reducing the size of buttons would also help on small density screen. Here are examples from the StreetComplete app: | Portrait | Landscape | Menu | |-|-|-| | ![Screenshot_20220710-124759_Street�Complete](https://user-images.githubusercontent.com/80701113/178141736-a9cf65b7-8c92-4c39-8ea3-9dee5239dbca.png) | ![Screenshot_20220710-124805_Street�Complete](https://user-images.githubusercontent.com/80701113/178141738-b4be25af-ef7c-4276-9356-ef2fff410b6f.png) | ![Screenshot_20220710-124809_Street�Complete](https://user-images.githubusercontent.com/80701113/178141739-5d6145e9-9f83-4011-9a51-19f8ed4004b8.png) | In this app, bottom sheets when selecting elements in the map simply hide the position and zoom buttons. But this is not an issue as those are never used when a map element is selected.
arnaudvergnet commented 2022-07-10 11:00:35 +00:00 (Migrated from github.com)

And here is a comparison side by side with OM using split screen to simulate a small screen size:

And here is a comparison side by side with OM using split screen to simulate a small screen size: <img src="https://user-images.githubusercontent.com/80701113/178141967-e95854d8-f34f-4ac1-9aa8-fbb70e568899.png" width="400px"/>
biodranik commented 2022-07-10 11:17:43 +00:00 (Migrated from github.com)

Thanks, that's a great start. A few more important points:

  1. I like floating buttons instead of the toolbar, it makes the map more usable (you see more of the map). Below is the screenshot of what it looked like 10 years ago.
  2. Help button is important. It should solve several main problems:
    1. New users are often lost and they need easy help/feedback/report a bug button, otherwise, we get many negative reviews in app stores. As we target the whole world audience, it is important to have an easy-to-find help button. Its contents should be optimized/changed, of course, too.
    2. We need an easy way to reach our users via news/updates/whatsnew/any other important messages. A highlighted help button will solve this issue (e.g. a user will see a small red dot on it, like on the menu now, and will click it and see some important news from us).
  3. A separate download/update maps button may also be needed. There should be an easy way to update maps for several reasons, the most important one is that we often fix issues or add new features. Although some settings for "automatic updates" can solve it, that's not trivial to implement, especially in the background.

image

Thanks, that's a great start. A few more important points: 1. I like floating buttons instead of the toolbar, it makes the map more usable (you see more of the map). Below is the screenshot of what it looked like 10 years ago. 2. Help button is important. It should solve several main problems: 1. New users are often lost and they need easy help/feedback/report a bug button, otherwise, we get many negative reviews in app stores. As we target the whole world audience, it is important to have an easy-to-find help button. Its contents should be optimized/changed, of course, too. 2. We need an easy way to reach our users via news/updates/whatsnew/any other important messages. A highlighted help button will solve this issue (e.g. a user will see a small red dot on it, like on the menu now, and will click it and see some important news from us). 3. A separate download/update maps button may also be needed. There should be an easy way to update maps for several reasons, the most important one is that we often fix issues or add new features. Although some settings for "automatic updates" can solve it, that's not trivial to implement, especially in the background. ![image](https://user-images.githubusercontent.com/170263/178142186-700e4f5b-94f1-424e-b4f5-06427b910bb2.png)
Owner

Let's put the help button into the main menu pop-up then?
It'll be easily accessible then (compared to the traditional bottom location inside of settings).
And also won't always occupy screen space as its something not used often anyway.
And the red dot will be visible on the menu button like it is now. A user will open it and see if its map updates or some news.

Let's put the help button into the main menu pop-up then? It'll be easily accessible then (compared to the traditional bottom location inside of settings). And also won't always occupy screen space as its something not used often anyway. And the red dot will be visible on the menu button like it is now. A user will open it and see if its map updates or some news.
arnaudvergnet commented 2022-07-10 15:42:20 +00:00 (Migrated from github.com)

To make working with map buttons easier, I converted all of them from ImageButton with a custom background to a regular FloatingActionButton. This looks way better and I was able to make buttons smaller and feel more consistent. The previous buttons had their margin in their background so I was not able to reduce it as much as I wanted. Here is what it looks like on a Pixel 2 (small screen):

Portrait Landscape
Screenshot_1657467345 Screenshot_1657467461

If we remove the bottom bar, there would be even more space.

To make working with map buttons easier, I converted all of them from `ImageButton` with a custom background to a regular `FloatingActionButton`. This looks way better and I was able to make buttons smaller and feel more consistent. The previous buttons had their margin in their background so I was not able to reduce it as much as I wanted. Here is what it looks like on a Pixel 2 (small screen): | Portrait | Landscape | |-|-| | ![Screenshot_1657467345](https://user-images.githubusercontent.com/80701113/178151728-95bf89aa-9081-4f81-a2b8-8775c2b9eb96.png) | ![Screenshot_1657467461](https://user-images.githubusercontent.com/80701113/178151729-b9e39b9d-0520-4f41-a1cd-186760a1d4f2.png) | If we remove the bottom bar, there would be even more space.
biodranik commented 2022-07-10 17:35:29 +00:00 (Migrated from github.com)

Looks good! Can you please make buttons a bit more transparent, like on iOS?
Btw, iOS works now with SVG, so it would be great to also have source icons in it.

Looks good! Can you please make buttons a bit more transparent, like on iOS? Btw, iOS works now with SVG, so it would be great to also have source icons in it.
arnaudvergnet commented 2022-07-10 17:58:31 +00:00 (Migrated from github.com)

Looks good! Can you please make buttons a bit more transparent, like on iOS?

Sure, I will try once I managed to remove the bottom menu (it is a bit harder than I thought).

Btw, iOS works now with SVG, so it would be great to also have source icons in it.

I am not sure I understand. Do you want me to use the iOS icons in Android, or the other way around? I created the icons with the Android Studio assets generator.

> Looks good! Can you please make buttons a bit more transparent, like on iOS? Sure, I will try once I managed to remove the bottom menu (it is a bit harder than I thought). > Btw, iOS works now with SVG, so it would be great to also have source icons in it. I am not sure I understand. Do you want me to use the iOS icons in Android, or the other way around? I created the icons with the Android Studio assets generator.
arnaudvergnet commented 2022-07-11 10:41:28 +00:00 (Migrated from github.com)

This is how it looks on the Pixel 2 without the bottom bar. I was not able to lower the map buttons as there are still some cases where a bottom bar is shown (search, place page toolbar and navigation menu). There are still some issues with landscape mode but this is slowly improving.

https://user-images.githubusercontent.com/80701113/178246638-d365d7e4-badc-4899-bd70-abd30ef6c748.mp4

This is how it looks on the Pixel 2 without the bottom bar. I was not able to lower the map buttons as there are still some cases where a bottom bar is shown (search, place page toolbar and navigation menu). There are still some issues with landscape mode but this is slowly improving. https://user-images.githubusercontent.com/80701113/178246638-d365d7e4-badc-4899-bd70-abd30ef6c748.mp4
arnaudvergnet commented 2022-07-11 10:48:04 +00:00 (Migrated from github.com)

Regarding button placement, we could place the menu button in the top left, position, search and zoom buttons to the right (from bottom to top in this order), and then at the left layers and bookmark. We would have 4 buttons max on each side, and while navigating the layers and settings buttons disappear.

Regarding button placement, we could place the menu button in the top left, position, search and zoom buttons to the right (from bottom to top in this order), and then at the left layers and bookmark. We would have 4 buttons max on each side, and while navigating the layers and settings buttons disappear.
Owner

Regarding button placement, we could place the menu button in the top left, position, search and zoom buttons to the right (from bottom to top in this order), and then at the left layers and bookmark. We would have 4 buttons max on each side, and while navigating the layers and settings buttons disappear.

There is a compass button also, so for your suggestion it makes 5 buttons on the right side (a bit crowded):

  1. compass
  2. position
  3. search
  4. zoom +
  5. zoom -

And 3 buttons on the left:

  1. menu
  2. layers
  3. bookmarks

Here are some thoughts:

  • screen space-wise for portrait orientation it makes more sense to put more buttons along the bottom and/or top edge - it will make a usable map box less narrow, more square and hence more convenient, imho; in this sense having menu, search and bookmarks in the bottom bar made sense;
  • the current UX is to hide menu, search and bookmarks when a PP is open - we don't have to make these 3 buttons always visible in toolbar-less layout too
  • some people don't use the zoom buttons and turn them off in settings - this convenience-wise prime space could be used for other buttons - i.e. think of a separate buttons layout for non-users of zoom buttons?

Here is a raw buttons layout idea based on these points:

Right top corner:

  1. compass

Right side (very convenient location, often-used functions):

  1. zoom +
  2. zoom -
  3. position

Right bottom edge (convenient location, often-used functions):

  1. search
  2. bookmarks (to the left of the search)

Left bottom corner (less convenient location, less often-used functions):

  1. menu

Top left corner (less convenient location, less often-used functions):

  1. layers

The bottom buttons will be hidden when a PP is open (just like it is now).
So overall for the regular map view mode there is very little UX change.

In the routing and navigation mode the search and bookmarks are moved to the left side, menu is gone (like it is now). The layers button will be gone for now. When its functionality is fixed for routing/navigation then it could be moved to the right along the top edge just enough so to give space to the next turn sign.

When zoom buttons are disabled:

Right top corner:

  1. compass

Right side:

  1. search
  2. bookmarks
  3. position

Left bottom corner:

  1. menu

Top left corner:

  1. layers

So search and bookmarks will be available always regardless of PP state. Also they won't be moved in routing/navigation mode.

What do you think?

Also need to think about a landscape layout and layouts for left-handed people and RTL languages...

> Regarding button placement, we could place the menu button in the top left, position, search and zoom buttons to the right (from bottom to top in this order), and then at the left layers and bookmark. We would have 4 buttons max on each side, and while navigating the layers and settings buttons disappear. There is a compass button also, so for your suggestion it makes 5 buttons on the right side (a bit crowded): 1. `compass` 2. `position` 3. `search` 4. `zoom +` 5. `zoom -` And 3 buttons on the left: 1. `menu` 2. `layers` 3. `bookmarks` Here are some thoughts: - screen space-wise for portrait orientation it makes more sense to put more buttons along the bottom and/or top edge - it will make a usable map box less narrow, more square and hence more convenient, imho; in this sense having `menu`, `search` and `bookmarks` in the bottom bar made sense; - the current UX is to hide `menu`, `search` and `bookmarks` when a PP is open - we don't have to make these 3 buttons always visible in toolbar-less layout too - some people don't use the zoom buttons and turn them off in settings - this convenience-wise prime space could be used for other buttons - i.e. think of a separate buttons layout for non-users of zoom buttons? Here is a raw buttons layout idea based on these points: Right top corner: 1. `compass` Right side (very convenient location, often-used functions): 1. `zoom +` 2. `zoom -` 3. `position` Right bottom edge (convenient location, often-used functions): 1. `search` 2. `bookmarks` (to the left of the `search`) Left bottom corner (less convenient location, less often-used functions): 1. `menu` Top left corner (less convenient location, less often-used functions): 1. `layers` The bottom buttons will be hidden when a PP is open (just like it is now). So overall for the regular map view mode there is very little UX change. In the routing and navigation mode the `search` and `bookmarks` are moved to the left side, `menu` is gone (like it is now). The `layers` button will be gone for now. When its functionality is fixed for routing/navigation then it could be moved to the right along the top edge just enough so to give space to the next turn sign. When zoom buttons are disabled: Right top corner: 1. `compass` Right side: 1. `search` 2. `bookmarks` 4. `position` Left bottom corner: 1. `menu` Top left corner: 1. `layers` So `search` and `bookmarks` will be available always regardless of PP state. Also they won't be moved in routing/navigation mode. What do you think? Also need to think about a landscape layout and layouts for left-handed people and RTL languages...
arnaudvergnet commented 2022-07-11 16:03:55 +00:00 (Migrated from github.com)

screen space-wise for portrait orientation it makes more sense to put more buttons along the bottom and/or top edge

You are right it makes sense to have a large area at the center of the screen free of buttons.

the current UX is to hide menu, search and bookmarks when a PP is open

I can try to make a zone where buttons won't move and put those in there.

some people don't use the zoom buttons and turn them off in settings - this convenience-wise prime space could be used for other buttons - i.e. think of a separate buttons layout for non-users of zoom buttons?

This could complicate the code quite a bit. Right now layouts are defined in xml, but this would mean defining layout in java code or dynamically loading the right layout from java.

Here is a raw buttons layout idea based on these points

Now that I've simplified how buttons are handled, I can try to make such a layout.

> screen space-wise for portrait orientation it makes more sense to put more buttons along the bottom and/or top edge You are right it makes sense to have a large area at the center of the screen free of buttons. > the current UX is to hide menu, search and bookmarks when a PP is open I can try to make a zone where buttons won't move and put those in there. > some people don't use the zoom buttons and turn them off in settings - this convenience-wise prime space could be used for other buttons - i.e. think of a separate buttons layout for non-users of zoom buttons? This could complicate the code quite a bit. Right now layouts are defined in xml, but this would mean defining layout in java code or dynamically loading the right layout from java. > Here is a raw buttons layout idea based on these points Now that I've simplified how buttons are handled, I can try to make such a layout.
arnaudvergnet commented 2022-07-11 16:40:04 +00:00 (Migrated from github.com)

Something like this would be ok?

Something like this would be ok? <img src="https://user-images.githubusercontent.com/80701113/178314538-31669515-199b-4203-939a-2a36652eabfd.png" width="50%"/>
Owner

Looks great!!!

Looks great!!!
arnaudvergnet commented 2022-07-11 18:49:37 +00:00 (Migrated from github.com)

I managed to make the layout change based on navigation state. The map buttons are now stored in a fragment, and this fragment has its layout replaced when starting/exiting navigation mode. So now we have a system to completely customize the map button layout in one place!

https://user-images.githubusercontent.com/80701113/178336312-745e5a40-f9e1-4955-b1bd-caf76f8fd43e.mp4

I managed to make the layout change based on navigation state. The map buttons are now stored in a fragment, and this fragment has its layout replaced when starting/exiting navigation mode. So now we have a system to completely customize the map button layout in one place! https://user-images.githubusercontent.com/80701113/178336312-745e5a40-f9e1-4955-b1bd-caf76f8fd43e.mp4
biodranik commented 2022-07-11 22:09:24 +00:00 (Migrated from github.com)

Thanks for the experiments! A few observations:

  1. Left buttons shouldn't be higher than the right ones.
  2. There is plenty of space at the bottom. Many other buttons can be placed there instead of removing them.
  3. Probably a smaller button size would be not so intrusive.
Thanks for the experiments! A few observations: 1. Left buttons shouldn't be higher than the right ones. 2. There is plenty of space at the bottom. Many other buttons can be placed there instead of removing them. 3. Probably a smaller button size would be not so intrusive.
arnaudvergnet commented 2022-07-12 05:51:18 +00:00 (Migrated from github.com)
  1. The search button expands when clicked in navigation, so it cannot be at the same height as the position button. I can put the bookmark button bellow the search to align left and right buttons.
  2. There is space but adding more buttons will just clutter the screen. We can add back the help button next to the menu, but there should be an option to hide it like the zoom buttons.
  3. The buttons are 48dp, if made smaller I fear it would be too difficult to press, especially on larger screens (remember the screenshots/videos were taken on a pixel 2)
1. The search button expands when clicked in navigation, so it cannot be at the same height as the position button. I can put the bookmark button bellow the search to align left and right buttons. 2. There is space but adding more buttons will just clutter the screen. We can add back the help button next to the menu, but there should be an option to hide it like the zoom buttons. 3. The buttons are 48dp, if made smaller I fear it would be too difficult to press, especially on larger screens (remember the screenshots/videos were taken on a pixel 2)
biodranik commented 2022-07-12 16:31:10 +00:00 (Migrated from github.com)

Re:3
It should be possible to change the buttons size depending on the screen dpi and size, right?

Re:3 It should be possible to change the buttons size depending on the screen dpi and size, right?
arnaudvergnet commented 2022-07-12 17:34:50 +00:00 (Migrated from github.com)

Good news! I have been able to create a separate layout for each mode (regular, planning and navigation) and for each orientation (portrait and landscape). So we now have 6 xml layout files to describe all possible button positions.

Each layout is separated into 4 zones: top, bottom, left and right. Top and bottom are fixed, buttons in those zones will not move with the place page. Buttons in left and right will move according to the place page and disappear when reaching the top. Buttons in the left and right have a separate parent . This means you can fine tune the top and bottom margins to make them appear and disappear on different heights.

For example, bookmark and search buttons need to disappear before other buttons in navigation mode because of the next turn indication.

Here are some quick videos showing all the layouts. I did not put much thought into the layout themselves, but we now have the system in place so we can start fine tuning everything.

https://user-images.githubusercontent.com/80701113/178556004-691c6a09-b194-4a9f-8998-2bbe8dd678c1.mp4

https://user-images.githubusercontent.com/80701113/178556008-5eeaa00c-61e0-4d75-b983-44b2abcae602.mp4

Good news! I have been able to create a separate layout for each mode (regular, planning and navigation) and for each orientation (portrait and landscape). So we now have **6 xml layout files** to describe all possible button positions. Each layout is separated into 4 zones: top, bottom, left and right. **Top and bottom are fixed**, buttons in those zones will not move with the place page. **Buttons in left and right will move according to the place page** and disappear when reaching the top. Buttons in the left and right have a separate parent . This means you can fine tune the top and bottom margins to make them appear and disappear on different heights. For example, bookmark and search buttons need to disappear before other buttons in navigation mode because of the next turn indication. Here are some quick videos showing all the layouts. I did not put much thought into the layout themselves, but we now have the system in place so we can start fine tuning everything. https://user-images.githubusercontent.com/80701113/178556004-691c6a09-b194-4a9f-8998-2bbe8dd678c1.mp4 https://user-images.githubusercontent.com/80701113/178556008-5eeaa00c-61e0-4d75-b983-44b2abcae602.mp4
arnaudvergnet commented 2022-07-12 17:37:44 +00:00 (Migrated from github.com)

It should be possible to change the buttons size depending on the screen dpi and size, right?

Yep I just discovered you can create files storing dimensions depending on the phone's DPI.

> It should be possible to change the buttons size depending on the screen dpi and size, right? Yep I just discovered you can create files storing dimensions depending on the phone's DPI.
j13m126 commented 2022-07-12 18:07:06 +00:00 (Migrated from github.com)

wow, your changes look really good. I love it!

this PR also fixes #2280, I guess :)

wow, your changes look really good. I love it! this PR also fixes #2280, I guess :)
arnaudvergnet commented 2022-07-12 18:44:30 +00:00 (Migrated from github.com)

Thanks! haven't tried split screen but this should make it easier to work with such cases.

Thanks! haven't tried split screen but this should make it easier to work with such cases.
arnaudvergnet commented 2022-07-13 18:05:14 +00:00 (Migrated from github.com)

@j13m126 This PR fixes some of the issues in #2280 but there are still some overlapping with the rest of the UI in navigation mode.

Map Planning Navigation
Screenshot_1657735270 Screenshot_1657735277 Screenshot_1657735280
@j13m126 This PR fixes some of the issues in #2280 but there are still some overlapping with the rest of the UI in navigation mode. |Map | Planning | Navigation | |-|-|-| | ![Screenshot_1657735270](https://user-images.githubusercontent.com/80701113/178800621-59d2e9ab-8b6b-4087-aba3-bd3850f0e0a6.png) | ![Screenshot_1657735277](https://user-images.githubusercontent.com/80701113/178800628-acf145c5-2ba1-4e5e-bf75-9ad8ebe37ee4.png) | ![Screenshot_1657735280](https://user-images.githubusercontent.com/80701113/178800633-8d79b64a-426e-479e-90c5-113ce1c75b66.png) |
j13m126 commented 2022-07-14 20:39:31 +00:00 (Migrated from github.com)

Looks great, thanks! Looking forward to using it :)

Looks great, thanks! Looking forward to using it :)
Owner

Good news! I have been able to create a separate layout for each mode (regular, planning and navigation) and for each orientation (portrait and landscape). So we now have 6 xml layout files to describe all possible button positions.

Each layout is separated into 4 zones: top, bottom, left and right. Top and bottom are fixed, buttons in those zones will not move with the place page. Buttons in left and right will move according to the place page and disappear when reaching the top. Buttons in the left and right have a separate parent . This means you can fine tune the top and bottom margins to make them appear and disappear on different heights.

For example, bookmark and search buttons need to disappear before other buttons in navigation mode because of the next turn indication.

Here are some quick videos showing all the layouts. I did not put much thought into the layout themselves, but we now have the system in place so we can start fine tuning everything.
2022-07-12.19-29-55.mp4
2022-07-12.19-31-30.mp4

I like the idea. Can we add this new mode under a feature flag in Settings? It will take some time for users to accept this significant change of UI.

> Good news! I have been able to create a separate layout for each mode (regular, planning and navigation) and for each orientation (portrait and landscape). So we now have **6 xml layout files** to describe all possible button positions. > > Each layout is separated into 4 zones: top, bottom, left and right. **Top and bottom are fixed**, buttons in those zones will not move with the place page. **Buttons in left and right will move according to the place page** and disappear when reaching the top. Buttons in the left and right have a separate parent . This means you can fine tune the top and bottom margins to make them appear and disappear on different heights. > > For example, bookmark and search buttons need to disappear before other buttons in navigation mode because of the next turn indication. > > Here are some quick videos showing all the layouts. I did not put much thought into the layout themselves, but we now have the system in place so we can start fine tuning everything. > 2022-07-12.19-29-55.mp4 > 2022-07-12.19-31-30.mp4 I like the idea. Can we add this new mode under a feature flag in Settings? It will take some time for users to accept this significant change of UI.
biodranik commented 2022-07-17 06:50:04 +00:00 (Migrated from github.com)

I like the idea. Can we add this new mode under a feature flag in Settings? It will take some time for users to accept this significant change of UI.

No! We definitely don't want to keep old and new code together, the goal is to make the UI better for users and make UI code support easier for us.

There is a way to test these changes. It is called a beta release. We'll make a separate build of the beta so everyone can provide feedback before merging changes into the master.

> I like the idea. Can we add this new mode under a feature flag in Settings? It will take some time for users to accept this significant change of UI. No! We definitely don't want to keep old and new code together, the goal is to make the UI better for users and make UI code support easier for us. There is a way to test these changes. It is called a beta release. We'll make a separate build of the beta so everyone can provide feedback before merging changes into the master.
Owner

to make the UI better for users and make UI code support easier for us.

Users will have some resistant against this change, even if it is considered "better".

> to make the UI better for users and make UI code support easier for us. Users will have some resistant against this change, even if it is considered "better".
Owner

image

My wishes:

  1. Move '?' into the main menu.
  2. Move bookmarks to the right column to have all buttons in one column.
    3
![image](https://user-images.githubusercontent.com/1799054/179389796-fd22e09d-8209-4045-9eb7-c5c73d53a383.png) My wishes: 1. Move '?' into the main menu. 2. Move bookmarks to the right column to have all buttons in one column. 3
arnaudvergnet commented 2022-07-17 08:33:39 +00:00 (Migrated from github.com)

Can we add this new mode under a feature flag in Settings? It will take some time for users to accept this significant change of UI

Seeing how I nearly rewrote everything related to buttons I'm afraid this would not be possible without much additional work.

Users will have some resistant against this change, even if it is considered "better".

In the end there is not much UX changes. We still have the same buttons at the bottom, but in floating buttons instead of a menu bar. The rest of the buttons are also in their original place, but better handle small screens / landscape. I agree some will be resistant to change, but there are also some who will welcome it. There will always be people who dislike changes but the app must continue to evolve one step at a time.

Move '?' into the main menu

I did that at first but I was told to put it back here to match the previous UX. I was planning on creating a setting to hide it.

Move bookmarks to the right column to have all buttons in one column.

We want to avoid having too much buttons near the center of the screen. Concentrating buttons in the bottom right makes it easier for users to reach (and maybe in an other PR a left handed mode will be added. It also makes it easier to adapt to small screens.

> Can we add this new mode under a feature flag in Settings? It will take some time for users to accept this significant change of UI Seeing how I nearly rewrote everything related to buttons I'm afraid this would not be possible without much additional work. > Users will have some resistant against this change, even if it is considered "better". In the end there is not much UX changes. We still have the same buttons at the bottom, but in floating buttons instead of a menu bar. The rest of the buttons are also in their original place, but better handle small screens / landscape. I agree some will be resistant to change, but there are also some who will welcome it. There will always be people who dislike changes but the app must continue to evolve one step at a time. > Move '?' into the main menu I did that at first but I was told to put it back here to match the previous UX. I was planning on creating a setting to hide it. > Move bookmarks to the right column to have all buttons in one column. We want to avoid having too much buttons near the center of the screen. Concentrating buttons in the bottom right makes it easier for users to reach (and maybe in an other PR a left handed mode will be added. It also makes it easier to adapt to small screens.
Owner

@arnaudvergnet, what do you think about merging all preliminary refactorings first and then continue discussion about new UI? If something can be merged - it should be merged to reduce the size of PR.

@[arnaudvergnet](https://github.com/arnaudvergnet), what do you think about merging all preliminary refactorings first and then continue discussion about new UI? If something can be merged - it should be merged to reduce the size of PR.
arnaudvergnet commented 2022-07-17 13:33:41 +00:00 (Migrated from github.com)

Refactoring has been made according to the new UI needs, so it will be difficult to separate without introducing new bugs. The diff might look scary with nearly 150 files changes, but most of it is old resources and icon images removed to be replaced by SVGs or Google's official components (eg: using FloatingActionButton instead of a custom button implementation).

If you want I can try to reproduce the old UI with the new architecture, and then create a new PR to discuss about the new UI but I think it will be counter productive. Modifying the UI afterwards would certainly mean new refactoring anyways.

IMO the Beta release idea is good. I can continue to rebase this PR on top of master so we can gather as much feedback as possible on the new UI for a few days/weeks.

Refactoring has been made according to the new UI needs, so it will be difficult to separate without introducing new bugs. The diff might look scary with nearly 150 files changes, but most of it is old resources and icon images removed to be replaced by SVGs or Google's official components (eg: using [FloatingActionButton](https://material.io/components/buttons-floating-action-button) instead of a custom button implementation). If you want I can try to reproduce the old UI with the new architecture, and then create a new PR to discuss about the new UI but I think it will be counter productive. Modifying the UI afterwards would certainly mean new refactoring anyways. IMO the Beta release idea is good. I can continue to rebase this PR on top of master so we can gather as much feedback as possible on the new UI for a few days/weeks.
biodranik commented 2022-07-18 21:51:27 +00:00 (Migrated from github.com)

Please don't waste time on the old code/interface. Let's polish it with beta.

Please don't waste time on the old code/interface. Let's polish it with beta.
arnaudvergnet commented 2022-07-29 08:25:51 +00:00 (Migrated from github.com)

Rebased on latest master

Rebased on latest master
arnaudvergnet commented 2022-07-29 15:49:47 +00:00 (Migrated from github.com)

Made the navigation layout change based on screen height and not portrait/landscape mode. This makes handling small screens easier. If the screen has less than 360dp height, the bookmarks buttons goes next to the search button.

Pixel 5 portrait Pixel 5 landscape Nexus One portrait Nexus One landscape
Screenshot_1659109210 Screenshot_1659109216 Screenshot_1659109151 Screenshot_1659109156
Made the navigation layout change based on screen height and not portrait/landscape mode. This makes handling small screens easier. If the screen has less than 360dp height, the bookmarks buttons goes next to the search button. | Pixel 5 portrait | Pixel 5 landscape | Nexus One portrait | Nexus One landscape | |-|-|-|-| |![Screenshot_1659109210](https://user-images.githubusercontent.com/80701113/181795858-70645156-869c-42f0-a001-a0867ec3ff03.png) | ![Screenshot_1659109216](https://user-images.githubusercontent.com/80701113/181795871-73488401-ca98-4a28-9f6d-91f35ec05d02.png) | ![Screenshot_1659109151](https://user-images.githubusercontent.com/80701113/181795880-cfc76f3a-864e-4659-9ac1-0c2f2ff53bf3.png) | ![Screenshot_1659109156](https://user-images.githubusercontent.com/80701113/181795903-c3ca006f-6420-4c4e-b3b5-2e739adf5926.png) |
vng (Migrated from github.com) approved these changes 2022-08-10 11:42:09 +00:00
vng commented 2022-08-10 11:43:28 +00:00 (Migrated from github.com)

Testing on Emulator. Am I right that we had buttons appear/disappear animations on tap before? Now I see raw show/hide visibility.

Testing on Emulator. Am I right that we had buttons appear/disappear animations on tap before? Now I see raw show/hide visibility.
arnaudvergnet commented 2022-08-10 16:13:41 +00:00 (Migrated from github.com)

I never saw any animation since I started using OM. Maybe this is a thing in the iOS version.

And as @biodranik said:

And please no animations! The interface should be blazing fast everywhere :)

I never saw any animation since I started using OM. Maybe this is a thing in the iOS version. And as @biodranik [said](https://git.omaps.dev/organicmaps/organicmaps/pulls/2905#issuecomment-1175583427): > And please no animations! The interface should be blazing fast everywhere :)
arnaudvergnet commented 2022-08-10 17:17:24 +00:00 (Migrated from github.com)

I made all map buttons layout react to screen height instead of portrait/landscape, I felt it was more robust to different screen dimensions.

I also noticed an issue related to organicmaps/organicmaps#3051. With this PR, the app not only becomes unresponsive on splitscreen change, but also crashes. Seems like the fragment looses reference to the main activity. I will try to investigate more.

I made all map buttons layout react to screen height instead of portrait/landscape, I felt it was more robust to different screen dimensions. I also noticed an issue related to https://git.omaps.dev/organicmaps/organicmaps/issues/3051. With this PR, the app not only becomes unresponsive on splitscreen change, but also crashes. Seems like the fragment looses reference to the main activity. I will try to investigate more.
vng commented 2022-08-10 17:44:40 +00:00 (Migrated from github.com)

Sad, because I strongly believe that animations make UI look and feel better ..

Sad, because I strongly believe that animations make UI look and feel better ..
arnaudvergnet commented 2022-08-10 18:16:59 +00:00 (Migrated from github.com)

I agree but making good animations that don't reduce the app's speed and usability are not easy to implement. This could be the work of another PR.

I agree but making good animations that don't reduce the app's speed and usability are not easy to implement. This could be the work of another PR.
vng commented 2022-08-10 18:19:26 +00:00 (Migrated from github.com)

No problem here. To clarify, when buttons are immediately hided, it looks like a bug, but not like a defined behaviour.

No problem here. To clarify, when buttons are immediately hided, it looks like a bug, but not like a defined behaviour.
arnaudvergnet commented 2022-08-10 18:50:04 +00:00 (Migrated from github.com)

I fixed the crash problem when changing splitscreen mode, but organicmaps/organicmaps#3051 still persists. Seems the issue comes from the activity lifecycle and is not directly related to this PR so I will not work on this here.

I fixed the crash problem when changing splitscreen mode, but https://git.omaps.dev/organicmaps/organicmaps/issues/3051 still persists. Seems the issue comes from the activity lifecycle and is not directly related to this PR so I will not work on this here.
vng commented 2022-08-10 19:25:56 +00:00 (Migrated from github.com)

@biodranik @rtsisyk Merge or test with some public beta branch?

@biodranik @rtsisyk Merge or test with some public beta branch?
vng commented 2022-08-10 19:31:09 +00:00 (Migrated from github.com)

@arnaudvergnet Could you please attach some actual screenshots to debrief in our telegram channels with the users. Not only navigation, but regular map view.

@arnaudvergnet Could you please attach some actual screenshots to debrief in our telegram channels with the users. Not only navigation, but regular map view.
arnaudvergnet commented 2022-08-10 22:08:23 +00:00 (Migrated from github.com)

Pixel 5

Portrait

Map Map with place page Planning Navigation
Screenshot_1660168947 Screenshot_1660169024 Screenshot_1660168954 Screenshot_1660168970

Landscape

Map Map with place page Planning Navigation
Screenshot_1660168991 Screenshot_1660169011 Screenshot_1660168987 Screenshot_1660168978

Nexus One

Portrait

Map Map with place page Planning Navigation
Screenshot_1660169142 Screenshot_1660169154 Screenshot_1660169163 Screenshot_1660169174

Landscape

Map Map with place page Planning Navigation
Screenshot_1660169194 Screenshot_1660169200 Screenshot_1660169185 Screenshot_1660169180
### Pixel 5 #### Portrait | Map | Map with place page | Planning | Navigation | |-|-|-|-| | ![Screenshot_1660168947](https://user-images.githubusercontent.com/80701113/184028465-a3d352b1-518c-4ca2-910d-7fbb075443bb.png) | ![Screenshot_1660169024](https://user-images.githubusercontent.com/80701113/184028494-ad5214bc-8c18-4d79-9b40-236d601a13b5.png) | ![Screenshot_1660168954](https://user-images.githubusercontent.com/80701113/184028482-483d6a3c-383a-4465-afc5-5b53ad6ba43d.png) | ![Screenshot_1660168970](https://user-images.githubusercontent.com/80701113/184028488-919a0743-648e-4bea-8c22-4a14dc5c77ed.png) | #### Landscape | Map | Map with place page | Planning | Navigation | |-|-|-|-| | ![Screenshot_1660168991](https://user-images.githubusercontent.com/80701113/184028600-af5912b7-caa4-4cdb-98a0-43e464d5aa0f.png) | ![Screenshot_1660169011](https://user-images.githubusercontent.com/80701113/184028556-22b3a584-fc50-4ebc-897f-abae1787b217.png) | ![Screenshot_1660168987](https://user-images.githubusercontent.com/80701113/184028551-6eff2899-b69a-4574-ac6b-22ed8562ffda.png) | ![Screenshot_1660168978](https://user-images.githubusercontent.com/80701113/184028543-62c68ba3-26c9-476c-a51d-f1548dd28d64.png) | ### Nexus One #### Portrait | Map | Map with place page | Planning | Navigation | |-|-|-|-| | ![Screenshot_1660169142](https://user-images.githubusercontent.com/80701113/184028828-533e3b80-a462-4202-be77-a3c750fe6dfc.png) | ![Screenshot_1660169154](https://user-images.githubusercontent.com/80701113/184028834-a4252f78-91e8-4766-9dff-cdbc6ffbd296.png) | ![Screenshot_1660169163](https://user-images.githubusercontent.com/80701113/184028840-ccb06e51-e7da-4030-82d9-80a615a2ea54.png) | ![Screenshot_1660169174](https://user-images.githubusercontent.com/80701113/184028845-e8e576d4-c28d-49d2-8728-04ae2622dd03.png) | #### Landscape | Map | Map with place page | Planning | Navigation | |-|-|-|-| | ![Screenshot_1660169194](https://user-images.githubusercontent.com/80701113/184028909-dc9e618b-9ed0-486c-a4df-dd3bdccc4074.png)| ![Screenshot_1660169200](https://user-images.githubusercontent.com/80701113/184028913-4bbe5a3b-4a9f-4092-af02-7f979e2476ce.png) | ![Screenshot_1660169185](https://user-images.githubusercontent.com/80701113/184028901-68b3f23c-07e8-4bbe-90b3-3288c1634253.png) | ![Screenshot_1660169180](https://user-images.githubusercontent.com/80701113/184028890-2ae3b21a-ff37-4d20-9908-633dd73b68e9.png) |
biodranik commented 2022-08-10 23:33:17 +00:00 (Migrated from github.com)

Let's make a beta from (a copy of) this branch. Buttons should be tuned before public beta, it would be great if @rtsisyk provides some initial feedback.

https://github.com/organicmaps/organicmaps/runs/7777793931?check_suite_focus=true

Let's make a beta from (a copy of) this branch. Buttons should be tuned before public beta, it would be great if @rtsisyk provides some initial feedback. https://github.com/organicmaps/organicmaps/runs/7777793931?check_suite_focus=true
arnaudvergnet commented 2022-08-11 04:46:49 +00:00 (Migrated from github.com)

@biodranik should I rebase this branch on latest master or on a specific tag/revision for the beta?

@biodranik should I rebase this branch on latest master or on a specific tag/revision for the beta?
vng commented 2022-08-11 07:22:38 +00:00 (Migrated from github.com)
  • Rebase on fresh master is always welcome (except cases with hard review and review fixes, to avoid multiple code reading)
  • Is it possible to rearrange commits like: refactoring/fixing bugs block first; change layout/remove layer menus then? I suppose this commit 693507077917d9fec6ed6eba460ec74272bc35ff is a logical divider for this blocks, right?

Made poll in one of our groups. Not honest to make any conclusions based on screenshots, but anyway :)

  • Doubts about transparent buttons on a bright sun/light. Probably, worth to make more contrast or opaque.
  • +/- buttons should lie under the big finger of right hand. Previous layout of this buttons (a bit higher) was better.
- Rebase on fresh master is always welcome (except cases with hard review and review fixes, to avoid multiple code reading) - Is it possible to rearrange commits like: refactoring/fixing bugs block first; change layout/remove layer menus then? I suppose this commit 693507077917d9fec6ed6eba460ec74272bc35ff is a logical divider for this blocks, right? Made poll in one of our groups. Not honest to make any conclusions based on screenshots, but anyway :) - Doubts about transparent buttons on a bright sun/light. Probably, worth to make more contrast or opaque. - +/- buttons should lie under the big finger of right hand. Previous layout of this buttons (a bit higher) was better.
arnaudvergnet commented 2022-08-11 07:32:06 +00:00 (Migrated from github.com)

Is it possible to rearrange commits like: refactoring/fixing bugs block first; change layout/remove layer menus then? I suppose this commit 6935070779 is a logical divider for this blocks, right?

If I understand correctly, you want me to create only 2 commits for this PR to be merged instead of squashing all into one commit? Just wanna make sure before I destroy the history.

> Is it possible to rearrange commits like: refactoring/fixing bugs block first; change layout/remove layer menus then? I suppose this commit https://git.omaps.dev/organicmaps/organicmaps/commit/693507077917d9fec6ed6eba460ec74272bc35ff is a logical divider for this blocks, right? If I understand correctly, you want me to create only 2 commits for this PR to be merged instead of squashing all into one commit? Just wanna make sure before I destroy the history.
arnaudvergnet commented 2022-08-11 07:37:07 +00:00 (Migrated from github.com)

Doubts about transparent buttons on a bright sun/light. Probably, worth to make more contrast or opaque

I find opaque buttons better as well. I made them slightly transparent to mimic the previous UX.

+/- buttons should lie under the big finger of right hand. Previous layout of this buttons (a bit higher) was better.

This is an issue only in regular map mode right? I tried to squash all buttons at the bottom to make the center of the screen less cluttered but I can try to make them a bit higher on larger screen sizes.

> Doubts about transparent buttons on a bright sun/light. Probably, worth to make more contrast or opaque I find opaque buttons better as well. I made them slightly transparent to mimic the previous UX. > +/- buttons should lie under the big finger of right hand. Previous layout of this buttons (a bit higher) was better. This is an issue only in regular map mode right? I tried to squash all buttons at the bottom to make the center of the screen less cluttered but I can try to make them a bit higher on larger screen sizes.
vng commented 2022-08-11 09:16:38 +00:00 (Migrated from github.com)

No, destroying history! :) Just to change order or make some minor changes if needed to have clear commits set with refactoring and commits set with removing toolbar and changing layout.

No, destroying history! :) Just to change order or make some minor changes _if needed_ to have clear commits set with refactoring and commits set with removing toolbar and changing layout.
rtsisyk approved these changes 2022-08-11 09:51:15 +00:00
Owner

Great patch, fantastic work! Thanks! I am OK.

Is it possible to rearrange commits like: refactoring/fixing bugs block first; change layout/remove layer menus then?

Plus one

Great patch, fantastic work! Thanks! I am OK. > Is it possible to rearrange commits like: refactoring/fixing bugs block first; change layout/remove layer menus then? Plus one
arnaudvergnet commented 2022-08-11 10:06:12 +00:00 (Migrated from github.com)

@vng @rtsisyk does this new commit history look good to you?

Screenshot_20220811_120429

@vng @rtsisyk does this new commit history look good to you? ![Screenshot_20220811_120429](https://user-images.githubusercontent.com/80701113/184110510-20b14903-0d9b-455e-9ef3-65c3f8eb5ee3.png)
vng commented 2022-08-11 11:53:42 +00:00 (Migrated from github.com)

Can we move "remove layers selection from main menu" to the up, just before "remove main menu bar".
In this case we can assume that commits until "FloatingActionButton" doesn't change current behaviour/layout.

Can we move "remove layers selection from main menu" to the up, just before "remove main menu bar". In this case we can assume that commits until "FloatingActionButton" doesn't change current behaviour/layout.
biodranik commented 2022-08-11 22:02:54 +00:00 (Migrated from github.com)

Let's merge the same layout and button positions as it is now first. Then we can play with buttons separately, beta test them, etc.
Otherwise, there is a huge risk of getting 1-star reviews.

Let's merge _the same layout and button positions_ as it is now first. Then we can play with buttons separately, beta test them, etc. Otherwise, there is a huge risk of getting 1-star reviews.
biodranik commented 2022-08-11 22:03:33 +00:00 (Migrated from github.com)

You can create another PR for that while keeping your proposed layout here.

You can create another PR for that while keeping your proposed layout here.
arnaudvergnet commented 2022-08-12 10:33:59 +00:00 (Migrated from github.com)

What do you want me to do then? Should I split this PR before editing the buttons/layout, or should I try to replicate the old layout with the new system?

Splitting the PR may not be that easy as I did most of the testing with the new system and the initial refactoring may introduce new bugs.

IMO the simplest way to achieve what you want would be to bring back the bottom menu bar and position the new buttons at about the same place as before. I can then create a new PR removing the menu bar and experimenting with new button placement.

What do you want me to do then? Should I split this PR before editing the buttons/layout, or should I try to replicate the old layout with the new system? Splitting the PR may not be that easy as I did most of the testing with the new system and the initial refactoring may introduce new bugs. IMO the simplest way to achieve what you want would be to bring back the bottom menu bar and position the new buttons at about the same place as before. I can then create a new PR removing the menu bar and experimenting with new button placement.
vng commented 2022-08-12 10:39:05 +00:00 (Migrated from github.com)

I vote for a small tuning before merge:

  • return scale and position buttons on their old place
  • make buttons opaque/contrast

All other changes are ok, throw toolbar away ..

I vote for a small tuning before merge: - return scale and position buttons on their old place - make buttons opaque/contrast All other changes are ok, throw toolbar away ..
vng commented 2022-08-12 10:44:32 +00:00 (Migrated from github.com)

Or the variant "IMO the simplest ...". That looks like a compromise now if it's easy to revert in this PR, keeping all other fixes.

Or the variant "IMO the simplest ...". That looks like a compromise now if it's easy to _revert_ in this PR, keeping all other fixes.
arnaudvergnet commented 2022-08-12 15:24:01 +00:00 (Migrated from github.com)

@vng applied your small tuning

Portrait Landscape
Screenshot_1660317630 Screenshot_1660318588
@vng applied your small tuning | Portrait | Landscape | |-|-| | ![Screenshot_1660317630](https://user-images.githubusercontent.com/80701113/184386933-72cd0359-05a8-4ed5-bcaa-03a5e5b684cd.png) | ![Screenshot_1660318588](https://user-images.githubusercontent.com/80701113/184389966-90c8447a-78b0-4d1a-a790-b62333e7cd0f.png) |
biodranik commented 2022-08-13 12:49:01 +00:00 (Migrated from github.com)

@arnaudvergnet @vng is it hard to add a different icon state when the current location is unknown and is not actively searched? So users can understand it and press the location button to refresh it? Maybe a crossed location arrow would be understandable.

@arnaudvergnet @vng is it hard to add a different icon state when the current location is unknown and is not actively searched? So users can understand it and press the location button to refresh it? Maybe a crossed location arrow would be understandable.
biodranik commented 2022-08-13 12:50:01 +00:00 (Migrated from github.com)

Is it also possible to make internal icons in buttons a bit larger than they are now?

Is it also possible to make internal icons in buttons a bit larger than they are now?
vng commented 2022-08-13 13:23:20 +00:00 (Migrated from github.com)

Let's make a final decision here, other experiments with icons in follow up PRs.

Let's make a final decision here, other experiments with icons in follow up PRs.
arnaudvergnet commented 2022-08-13 14:04:17 +00:00 (Migrated from github.com)

is it hard to add a different icon state when the current location is unknown and is not actively searched?

I don't known the location code well enough to answer.

Is it also possible to make internal icons in buttons a bit larger than they are now?

This can be easily tweaked.

Let's make a final decision here, other experiments with icons in follow up PRs.

Completely agree, this PR was not meant to be this big at first. If we do not decide when to stop the changeset will continue to grow. I'd say we keep it like this and simply check with the beta if no new bugs or issues with screen sizes appear. If it is good we merge and continue the work in follow up PRs. In the meantime we can collect user ideas on the best buttons placement.

Just keep in mind I won't be very active next week, so no rush in merging as I won't be able to quickly fix issues.

> is it hard to add a different icon state when the current location is unknown and is not actively searched? I don't known the location code well enough to answer. > Is it also possible to make internal icons in buttons a bit larger than they are now? This can be easily tweaked. > Let's make a final decision here, other experiments with icons in follow up PRs. Completely agree, this PR was not meant to be this big at first. If we do not decide when to stop the changeset will continue to grow. I'd say we keep it like this and simply check with the beta if no new bugs or issues with screen sizes appear. If it is good we merge and continue the work in follow up PRs. In the meantime we can collect user ideas on the best buttons placement. Just keep in mind I won't be very active next week, so no rush in merging as I won't be able to quickly fix issues.
biodranik commented 2022-08-13 19:31:59 +00:00 (Migrated from github.com)

@arnaudvergnet looks like buttons size and positions should be dynamic:

image

@arnaudvergnet looks like buttons size and positions should be dynamic: ![image](https://user-images.githubusercontent.com/170263/184508157-9fb17016-5af0-4525-be92-191be483abdf.jpeg)
arnaudvergnet commented 2022-08-13 22:02:12 +00:00 (Migrated from github.com)

Did not know this was a feature! Supporting this use case should be the subject of another PR tho because it will not be trivial to handle. Could you please create an issue for this if you think this feature is worth supporting?

Did not know this was a feature! Supporting this use case should be the subject of another PR tho because it will not be trivial to handle. Could you please create an issue for this if you think this feature is worth supporting?
biodranik commented 2022-08-13 22:05:50 +00:00 (Migrated from github.com)

Did not know this was a feature! Supporting this use case should be the subject of another PR tho because it will not be trivial to handle. Could you please create an issue for this if you think this feature is worth supporting?

It's not about the feature, it's about the size of buttons that should fit small screens. Or does it break only for that specific "feature"?

> Did not know this was a feature! Supporting this use case should be the subject of another PR tho because it will not be trivial to handle. Could you please create an issue for this if you think this feature is worth supporting? It's not about the feature, it's about the size of buttons that should fit small screens. Or does it break only for that specific "feature"?
biodranik commented 2022-08-13 22:11:10 +00:00 (Migrated from github.com)

@arnaudvergnet if you left button positions exactly as they were before your changes (but with proper fixes for different screen sizes), we could merge it and release it. My plan/idea was:

  1. Just remove the toolbar. Release. There should be not much negative reaction because the buttons are still the same, and in the same places.
  2. Play with buttons layout/background (for proper grouping) and positions (that is more for experimental betas).

We already got a lot of feedback for these changes, and from our experience users often are too conservative for many valid reasons. It would be a pity to get a lot of 1-star reviews...

@arnaudvergnet if you left button positions exactly as they were before your changes (but with proper fixes for different screen sizes), we could merge it and release it. My plan/idea was: 1. Just remove the toolbar. Release. There should be not much negative reaction because the buttons are still the same, and in the same places. 2. Play with buttons layout/background (for proper grouping) and positions (that is more for experimental betas). We already got a lot of feedback for these changes, and from our experience users often are too conservative for many valid reasons. It would be a pity to get a lot of 1-star reviews...
arnaudvergnet commented 2022-08-14 08:09:18 +00:00 (Migrated from github.com)

It's not about the feature, it's about the size of buttons that should fit small screens. Or does it break only for that specific "feature"?

This PR already handles small screens, but not that small. Reducing the buttons size may not be a good idea as they could become unusable. I see supporting such small screen size as a feature as no phone has a physical screen this small. I have never used this picture in picture feature (or whatever it is called), but I guess we would need a specific UX for it.

if you left button positions exactly as they were before your changes (but with proper fixes for different screen sizes), we could merge it and release it.

Buttons are where they were before my changes. Not exactly as the layout reacts differently to screen sizes but not far enough to create a new UX.

We already got a lot of feedback for these changes, and from our experience users often are too conservative for many valid reasons.

If it ain't broken, don't fix it as we say :). The may layout changes are needed to support small screen for which the app is hardly usable as of now, so I don't think users would complain about those changes. If there is no need to change buttons in other cases then we won't move them.

To make sure we go in the right direction, it would be nice to create an issue with all the feedback on what should change and what should not. We could then work on refining the map buttons after this initial refactoring has been merged. I feel right now we do not clearly share the same understanding of what should be worked on and details get lost in the many comments.

> It's not about the feature, it's about the size of buttons that should fit small screens. Or does it break only for that specific "feature"? This PR already handles small screens, but not that small. Reducing the buttons size may not be a good idea as they could become unusable. I see supporting such small screen size as a feature as no phone has a physical screen this small. I have never used this picture in picture feature (or whatever it is called), but I guess we would need a specific UX for it. > if you left button positions exactly as they were before your changes (but with proper fixes for different screen sizes), we could merge it and release it. Buttons are where they were before my changes. Not exactly as the layout reacts differently to screen sizes but not far enough to create a new UX. > We already got a lot of feedback for these changes, and from our experience users often are too conservative for many valid reasons. If it ain't broken, don't fix it as we say :). The may layout changes are needed to support small screen for which the app is hardly usable as of now, so I don't think users would complain about those changes. If there is no need to change buttons in other cases then we won't move them. To make sure we go in the right direction, it would be nice to create an issue with all the feedback on what should change and what should not. We could then work on refining the map buttons after this initial refactoring has been merged. I feel right now we do not clearly share the same understanding of what should be worked on and details get lost in the many comments.
biodranik commented 2022-08-14 11:07:34 +00:00 (Migrated from github.com)

Agree, it goes complicated. I tested it today and found, that:

  1. Buttons don't look good (non-transparent, look similar, small icons).
  2. Positions are not optimal (I accidentally press a lower right search when trying to press a top left layers button).

I'm going back to my proposal: to leave all button positions exactly as they were positioned before on the toolbar and in other places, leave exactly the same transparency, exactly the same symbol/icon sizes (well, maybe we may try to make toolbar's buttons square or to look a bit different than other buttons in some other way?), apply your positioning fixes for different resolutions, and merge the PR.

Then we can continue with experiments and optimizations.

Agree, it goes complicated. I tested it today and found, that: 1. Buttons don't look good (non-transparent, look similar, small icons). 2. Positions are not optimal (I accidentally press a lower right search when trying to press a top left layers button). I'm going back to my proposal: to leave all button positions exactly as they were positioned before on the toolbar and in other places, leave exactly the same transparency, exactly the same symbol/icon sizes (well, maybe we may try to make toolbar's buttons _square_ or to look a bit different than other buttons in some other way?), apply your positioning fixes for different resolutions, and merge the PR. Then we can continue with experiments and optimizations.
vng commented 2022-08-14 11:14:25 +00:00 (Migrated from github.com)

So, now it's the same as to keep toolbar as before. Round buttons like toolbar but not toolbar is the worst variant, imho.

So, now it's the same as to keep toolbar as before. Round buttons like toolbar but not toolbar is the worst variant, imho.
biodranik commented 2022-08-14 12:07:03 +00:00 (Migrated from github.com)

@vng No, it's not the same. Without the toolbar it looks way better, more map is visible.

@arnaudvergnet Also two more comments to your redesigned style that should be addressed later:
4. Compass button should look more consistent (at least its position should be aligned with other buttons).
5. The ruler should be placed not above the bottom left buttons, but in the center.

@vng No, it's not the same. Without the toolbar it looks way better, more map is visible. @arnaudvergnet Also two more comments to your redesigned style that should be addressed later: 4. Compass button should look more consistent (at least its position should be aligned with other buttons). 5. The ruler should be placed not above the bottom left buttons, but in the center.
arnaudvergnet commented 2022-08-14 12:24:14 +00:00 (Migrated from github.com)

Buttons don't look good (non-transparent, look similar, small icons).

I get conflicting information on this. Sometimes I'm told to make them opaque, sometimes transparent. They look similar yes but it was the case before. I can try to make them look as close to the old version as possible to not confuse the users for this PR. The looking good part is subjective, IMO they look way better than before but then everyone has a different opinion of design. Another reason why we need to clearly discuss what to do before doing more work after this PR.

I'm going back to my proposal: to leave all button positions exactly as they were positioned before on the toolbar and in other places, leave exactly the same transparency, exactly the same symbol/icon sizes (well, maybe we may try to make toolbar's buttons square or to look a bit different than other buttons in some other way?), apply your positioning fixes for different resolutions, and merge the PR.

I can place the old bottom buttons to their old position on the toolbar, but as I told you no button will be exactly as it was before. Same for the button and icon sizes. The new system is so different from the previous one that getting the exact same size is impossible but I can try to replicate it as much as I can.

Compass button should look more consistent (at least its position should be aligned with other buttons).

If I am not mistaken, the compass button is handled in C++. I can change its position from Java but I don't know about its size.

The ruler should be placed not above the bottom left buttons, but in the center.

If you want to place the bottom buttons in the same position as the toolbar buttons, there will be no place left in the center. And even if there was, this is not a good idea as the ruler could get covered if the screen is not wide enough (look as screenshots from the Nexus One organicmaps/organicmaps#2905 (comment)). Above seems fine to me, and compared to the previous version it handles fullscreen mode (moves the ruler at the edge of the screen).

> Buttons don't look good (non-transparent, look similar, small icons). I get conflicting information on this. Sometimes I'm told to make them opaque, sometimes transparent. They look similar yes but it was the case before. I can try to make them look as close to the old version as possible to not confuse the users for this PR. The looking good part is subjective, IMO they look way better than before but then everyone has a different opinion of design. Another reason why we need to clearly discuss what to do before doing more work after this PR. > I'm going back to my proposal: to leave all button positions exactly as they were positioned before on the toolbar and in other places, leave exactly the same transparency, exactly the same symbol/icon sizes (well, maybe we may try to make toolbar's buttons square or to look a bit different than other buttons in some other way?), apply your positioning fixes for different resolutions, and merge the PR. I can place the old bottom buttons to their old position on the toolbar, but as I told you no button will be *exactly* as it was before. Same for the button and icon sizes. The new system is so different from the previous one that getting the exact same size is impossible but I can try to replicate it as much as I can. > Compass button should look more consistent (at least its position should be aligned with other buttons). If I am not mistaken, the compass button is handled in C++. I can change its position from Java but I don't know about its size. > The ruler should be placed not above the bottom left buttons, but in the center. If you want to place the bottom buttons in the same position as the toolbar buttons, there will be no place left in the center. And even if there was, this is not a good idea as the ruler could get covered if the screen is not wide enough (look as screenshots from the Nexus One https://git.omaps.dev/organicmaps/organicmaps/pulls/2905#issuecomment-1211333754). Above seems fine to me, and compared to the previous version it handles fullscreen mode (moves the ruler at the edge of the screen).
vng commented 2022-08-14 12:55:40 +00:00 (Migrated from github.com)
  • @biodranik I doubt that somebody cares about additional small pieces of map between round buttons.
  • Opaque buttons was because of users feedback about sun/bright light
  • I think that we should keep refactoring, but revert back toolbar for this PR and finally merge it. This discussion will never end, otherwise.
  • And try a new layout in a new PR.
- @biodranik I doubt that somebody cares about additional small pieces of map between round buttons. - Opaque buttons was because of users feedback about sun/bright light - I think that we should keep refactoring, but revert back toolbar for this PR and finally merge it. This discussion will never end, otherwise. - And try a new layout in a new PR.
biodranik commented 2022-08-14 19:32:42 +00:00 (Migrated from github.com)

@vng the point of the refactoring was to remove the toolbar. Reverting it back is a lot of unnecessary work considering that we want to remove it anyway.

There is no positional and visual difference between floating buttons and the same buttons in the same positions on the toolbar. So the user's UX will be exactly the same.

@vng the point of the refactoring was _to remove_ the toolbar. Reverting it back is a lot of unnecessary work considering that we want to remove it anyway. There is no positional and visual difference between floating buttons and the same buttons in the same positions on the toolbar. So the user's UX will be exactly the same.
arnaudvergnet commented 2022-08-21 14:33:50 +00:00 (Migrated from github.com)

@biodranik applied your suggestions:

Portrait Landscape
Screenshot_20220821_163141 Screenshot_20220821_163118

If everything is good I'll clean up the git history.

@biodranik applied your suggestions: | Portrait | Landscape | |-|-| | ![Screenshot_20220821_163141](https://user-images.githubusercontent.com/80701113/185796135-b9543f87-4c19-4c68-ae67-d5b6b8160165.png) | ![Screenshot_20220821_163118](https://user-images.githubusercontent.com/80701113/185796131-9b50e482-140a-40e7-830d-e59142a9bbe2.png) | If everything is good I'll clean up the git history.
biodranik commented 2022-08-22 21:52:45 +00:00 (Migrated from github.com)

Thanks, it looks great! Sorry for the inconsistent feedback, we were actively discussing it many times ) UI is a very hot topic.

@arnaudvergnet you can cleanup commit history.

@rtsisyk it would be great to get a feedback from the real use case :)

Thanks, it looks great! Sorry for the inconsistent feedback, we were actively discussing it many times ) UI is a very hot topic. @arnaudvergnet you can cleanup commit history. @rtsisyk it would be great to get a feedback from the real use case :)
arnaudvergnet commented 2022-08-23 13:04:11 +00:00 (Migrated from github.com)

you can cleanup commit history

Done

> you can cleanup commit history Done
Owner

@arnaudvergnet , I see strange white artifacts on all buttons:

image

@arnaudvergnet , I see strange white artifacts on all buttons: ![image](https://user-images.githubusercontent.com/1799054/187351601-0a87f93c-44dd-4937-8833-1ab6de97e632.png)
arnaudvergnet commented 2022-08-30 06:15:32 +00:00 (Migrated from github.com)

That must be because the background is semi transparent and the buttons have an elevation casting a shadow. I don't think we can have both without creating this issue. Would you prefer to have opaque background or to remove the elevation?

Personally I would just make the background opaque but I understand if you want to be as close as possible from the old layout.

That must be because the background is semi transparent and the buttons have an elevation casting a shadow. I don't think we can have both without creating this issue. Would you prefer to have opaque background or to remove the elevation? Personally I would just make the background opaque but I understand if you want to be as close as possible from the old layout.
arnaudvergnet commented 2022-08-31 10:10:35 +00:00 (Migrated from github.com)

Pick your fighter:

1 - Opaque buttons 2 - Transparency using alpha 3 - Disabling buttons elevation
Pros Easier to see buttons icon Close to old layout Close to old layout
Cons Different from the old layout The icon is also transparent making it harder to see in some situations No shadow to differentiate from the map
Screenshot Screenshot_20220831_114707 Screenshot_20220831_114800 Screenshot_20220831_115243
Pick your fighter: | | 1 - Opaque buttons | 2 - Transparency using alpha | 3 - Disabling buttons elevation | |-|-|-|-| | **Pros** | Easier to see buttons icon | Close to old layout | Close to old layout | | **Cons** | Different from the old layout | The icon is also transparent making it harder to see in some situations | No shadow to differentiate from the map | | **Screenshot** | ![Screenshot_20220831_114707](https://user-images.githubusercontent.com/80701113/187651521-50a2e2ed-accd-48ba-96f8-d3ea862600c3.png) | ![Screenshot_20220831_114800](https://user-images.githubusercontent.com/80701113/187651529-4dc5df50-ae9e-404b-aaa4-03bdb8ff9774.png) | ![Screenshot_20220831_115243](https://user-images.githubusercontent.com/80701113/187651531-90aa0c8d-25be-43c5-a71a-30cd1d006b04.png) |
Misalf-git commented 2022-08-31 10:28:06 +00:00 (Migrated from github.com)

I'd go for opaque.
And just minimal shadow, if even necessary.

I'd go for opaque. And just minimal shadow, if even necessary.
biodranik commented 2022-08-31 10:59:21 +00:00 (Migrated from github.com)

I'm sure it is possible to make the shape opaque and the background semitransparent by editing the vector icon.

It's hard to choose now, it would be great to try different APKs and play with them first.

  1. No shadow, opaque
  2. Shadow, opaque
  3. No shadow, transparent
  4. Shadow, transparent
  5. (optionally, if it's easy) No shadow, opaque shape transparent background
  6. (optionally, if it's easy) Shadow, opaque shape transparent background
I'm sure it is possible to make the shape opaque and the background semitransparent by editing the vector icon. It's hard to choose now, it would be great to try different APKs and play with them first. 1. No shadow, opaque 2. Shadow, opaque 3. No shadow, transparent 4. Shadow, transparent 5. (optionally, if it's easy) No shadow, opaque shape transparent background 6. (optionally, if it's easy) Shadow, opaque shape transparent background
arnaudvergnet commented 2022-09-01 09:49:24 +00:00 (Migrated from github.com)

I'm sure it is possible to make the shape opaque and the background semitransparent by editing the vector icon.

Before, the buttons were hand made with a custom transparent background including a shadow. But it required creating resources for each button state which made the code harder to maintain and gave a less "native" look to the buttons. From what I could find, this is the only way to have proper shadows on a transparent background.

Here I only use a standard FAB with an icon and a custom background color. Several apps such as Google Maps or StreetComplete use standard FAB with an opaque background so I don't think users will miss the transparent background that much.

Here are the APKs if you want to try the different options: https://github.com/arnaudvergnet/organicmaps-apk-test. As explained above I cannot do case 6 without the artifacts. I would need to manually create the FAB background shape (which I want to avoid).

> I'm sure it is possible to make the shape opaque and the background semitransparent by editing the vector icon. Before, the buttons were hand made with a custom transparent background including a shadow. But it required creating resources for each button state which made the code harder to maintain and gave a less "native" look to the buttons. From what I could find, this is the only way to have proper shadows on a transparent background. Here I only use a standard FAB with an icon and a custom background color. Several apps such as Google Maps or StreetComplete use standard FAB with an opaque background so I don't think users will miss the transparent background that much. Here are the APKs if you want to try the different options: https://github.com/arnaudvergnet/organicmaps-apk-test. As explained above I cannot do case 6 without the artifacts. I would need to manually create the FAB background shape (which I want to avoid).
Owner

I don't like versions with shadows. 3 and 5 is my choice.

I don't like versions with shadows. 3 and 5 is my choice.
arnaudvergnet commented 2022-09-01 14:49:54 +00:00 (Migrated from github.com)

I don't like versions with shadows. 3 and 5 is my choice.

Base shadows are quite strong, but it can be tweaked by changing the elevation.

> I don't like versions with shadows. 3 and 5 is my choice. Base shadows are quite strong, but it can be tweaked by changing the elevation.
biodranik commented 2022-09-03 20:17:33 +00:00 (Migrated from github.com)

@arnaudvergnet thank you very much for your time and work! I tested all apks, here are my notes:

  1. Shadows do not look good. And they look unusual compared with the current master.
  2. Highlighting of some buttons is delayed for some reason, is there any timer/delay or is it just a slow Java code? It would be great if they react immediately on tap.
  3. Search dialog appears differently compared to ? and bookmarks. It would be great to make it appear in the same way as other dialogs.
  4. Hiding buttons is ok without animations, it looks fast, and OM should be the fastest app in the world :)
  5. It would be great to also hide the top status bar when buttons are hidden, and show it back again when buttons appear back.
  6. On iOS, in landscape mode, buttons do not take the full width, they are grouped (on the toolbar) at the lower left part of the screen. It would be great to do the same on Android because rare buttons (or toolbar) taking the full width look weird.
  7. Transparency is not the same as it is in the master (I compared zoom buttons). Was it different for the toolbar and for zoom/position/layer buttons? It would be great to have the same transparency as it is in the master now.

So far I'm ready to merge the best-looking variant: 5.no-shadow-opaque-shape-transparent-background.apk

Everything else can be done/improved/tested later.

@arnaudvergnet thank you very much for your time and work! I tested all apks, here are my notes: 1. Shadows do not look good. And they look unusual compared with the current master. 2. Highlighting of some buttons is delayed for some reason, is there any timer/delay or is it just a slow Java code? It would be great if they react immediately on tap. 3. Search dialog appears differently compared to ? and bookmarks. It would be great to make it appear in the same way as other dialogs. 4. Hiding buttons is ok without animations, it looks fast, and OM should be the fastest app in the world :) 5. It would be great to also hide the top status bar when buttons are hidden, and show it back again when buttons appear back. 6. On iOS, in landscape mode, buttons do not take the full width, they are grouped (on the toolbar) at the lower left part of the screen. It would be great to do the same on Android because rare buttons (or toolbar) taking the full width look weird. 7. Transparency is not the same as it is in the master (I compared zoom buttons). Was it different for the toolbar and for zoom/position/layer buttons? It would be great to have the same transparency as it is in the master now. So far I'm ready to merge the best-looking variant: 5.no-shadow-opaque-shape-transparent-background.apk Everything else can be done/improved/tested later.
arnaudvergnet commented 2022-09-03 20:49:31 +00:00 (Migrated from github.com)
  1. Highlighting of some buttons is delayed for some reason, is there any timer/delay or is it just a slow Java code? It would be great if they react immediately on tap.

Can't seem to reproduce this on my end. For me the ripple effect is played as expected on tap.

  1. Search dialog appears differently compared to ? and bookmarks. It would be great to make it appear in the same way as other dialogs.

I don't know why it was done this way but there is a custom fading animation for the search activity. This can be removed in an other PR.

  1. It would be great to also hide the top status bar when buttons are hidden, and show it back again when buttons appear back.

Same as 5, it can be done in another PR.

  1. On iOS, in landscape mode, buttons do not take the full width, they are grouped (on the toolbar) at the lower left part of the screen. It would be great to do the same on Android because rare buttons (or toolbar) taking the full width look weird.

I can try to experiment with this. Do you want this to be done in another PR?

  1. Transparency is not the same as it is in the master (I compared zoom buttons). Was it different for the toolbar and for zoom/position/layer buttons? It would be great to have the same transparency as it is in the master now.

I took the background color used for the old bottom menu toolbar, which is white with 80% alpha. From what I could see the map buttons where white with 60% alpha in master. Do you want to go back to 60?

> 2. Highlighting of some buttons is delayed for some reason, is there any timer/delay or is it just a slow Java code? It would be great if they react immediately on tap. Can't seem to reproduce this on my end. For me the ripple effect is played as expected on tap. > 3. Search dialog appears differently compared to ? and bookmarks. It would be great to make it appear in the same way as other dialogs. I don't know why it was done this way but there is a custom fading animation for the search activity. This can be removed in an other PR. > 5. It would be great to also hide the top status bar when buttons are hidden, and show it back again when buttons appear back. Same as 5, it can be done in another PR. > 6. On iOS, in landscape mode, buttons do not take the full width, they are grouped (on the toolbar) at the lower left part of the screen. It would be great to do the same on Android because rare buttons (or toolbar) taking the full width look weird. I can try to experiment with this. Do you want this to be done in another PR? > 7. Transparency is not the same as it is in the master (I compared zoom buttons). Was it different for the toolbar and for zoom/position/layer buttons? It would be great to have the same transparency as it is in the master now. I took the background color used for the old bottom menu toolbar, which is white with 80% alpha. From what I could see the map buttons where white with 60% alpha in master. Do you want to go back to 60?
Owner

@biodranik, let's merge 3 or 5. All other improvements can be done in separate PRs.

@biodranik, let's merge 3 or 5. All other improvements can be done in separate PRs.
Member

I noticed an issue with shadows when pressing a button (this is using APK 3, not sure if it happens with the others)

Screenshot_20220904-163650_VLC

also, is the help button really needed? it could easily be a menu option in the hamburger menu instead

I noticed an issue with shadows when pressing a button (this is using APK 3, not sure if it happens with the others) ![Screenshot_20220904-163650_VLC](https://user-images.githubusercontent.com/26939824/188323493-f8210ccb-83c6-431c-9392-1e5a3d53274d.png) also, is the help button really needed? it could easily be a menu option in the hamburger menu instead
arnaudvergnet commented 2022-09-04 20:07:25 +00:00 (Migrated from github.com)

let's merge 3 or 5. All other improvements can be done in separate PRs.

I updated the PR to match the behavior in 5

I noticed an issue with shadows when pressing a button (this is using APK 3, not sure if it happens with the others)

Nice catch, this is now fixed.

also, is the help button really needed? it could easily be a menu option in the hamburger menu instead

We debated on it earlier in this PR and it was decided to keep it here to match the current UX.

> let's merge 3 or 5. All other improvements can be done in separate PRs. I updated the PR to match the behavior in 5 > I noticed an issue with shadows when pressing a button (this is using APK 3, not sure if it happens with the others) Nice catch, this is now fixed. > also, is the help button really needed? it could easily be a menu option in the hamburger menu instead We debated on it earlier in this PR and it was decided to keep it here to match the current UX.
biodranik commented 2022-09-04 20:30:29 +00:00 (Migrated from github.com)

I took the background color used for the old bottom menu toolbar, which is white with 80% alpha. From what I could see the map buttons where white with 60% alpha in master. Do you want to go back to 60?

@arnaudvergnet Let's leave it as it was: 60% for left/right buttons and 80% for bottom (toolbar) buttons. It's the closest behavior to the master. We can tune it up later, if necessary.

> I took the background color used for the old bottom menu toolbar, which is white with 80% alpha. From what I could see the map buttons where white with 60% alpha in master. Do you want to go back to 60? @arnaudvergnet Let's leave it as it was: 60% for left/right buttons and 80% for bottom (toolbar) buttons. It's the closest behavior to the master. We can tune it up later, if necessary.
arnaudvergnet commented 2022-09-04 21:33:53 +00:00 (Migrated from github.com)

Done, this is how it looks now:

Screenshot_20220904_233307

Done, this is how it looks now: ![Screenshot_20220904_233307](https://user-images.githubusercontent.com/80701113/188334423-56d1634b-5f71-4f4f-b0ae-33a3bf10b5cc.png)
biodranik (Migrated from github.com) reviewed 2022-09-04 21:44:23 +00:00
biodranik (Migrated from github.com) left a comment

Cool!

  1. @arnaudvergnet do you want to fixup/squash some commits before the merge?
  2. @rtsisyk @vng did you review the Java code?
Cool! 1. @arnaudvergnet do you want to fixup/squash some commits before the merge? 2. @rtsisyk @vng did you review the Java code?
arnaudvergnet commented 2022-09-05 06:26:40 +00:00 (Migrated from github.com)

The PR history looks good to me

The PR history looks good to me
Owner

The code is fine. The PR history looks good. The new UI is super cool. Let's merge this PR finally and move forward. Further tuning and refactoring can be performed separately.

I was skeptical initially, but with buttons on the same positions, we don't need the old toolbar anymore. This patch is probably the most significant change in UI of the project in the last couple of years, if not more. Really great work, @arnaudvergnet.

The code is fine. The PR history looks good. The new UI is super cool. Let's merge this PR finally and move forward. Further tuning and refactoring can be performed separately. I was skeptical initially, but with buttons on the same positions, we don't need the old toolbar anymore. This patch is probably the most significant change in UI of the project in the last couple of years, if not more. Really great work, @arnaudvergnet.
vng (Migrated from github.com) approved these changes 2022-09-05 06:42:38 +00:00
@ -0,0 +200,4 @@
if (searchLayout != null)
{
final int animRes;
if (mIsExpanded)
vng (Migrated from github.com) commented 2022-09-05 06:34:34 +00:00

nit: It looks unusual for me, but I don't understand nothing in Android layouts :)

nit: It looks unusual for me, but I don't understand nothing in Android layouts :)
vng (Migrated from github.com) commented 2022-09-05 06:37:09 +00:00

nit: It looks confusing when we get and check searchLayout var, but use mSearchLayout inside.
I'd make like this:

boolean createSearchLayout()
{
  if (mSearchLayout)
    return true;
  ...
}

if (createSearchLayout())
{
// use mSearchLayout
}
nit: It looks confusing when we get and check searchLayout var, but use mSearchLayout inside. I'd make like this: ``` boolean createSearchLayout() { if (mSearchLayout) return true; ... } if (createSearchLayout()) { // use mSearchLayout } ```
arnaudvergnet (Migrated from github.com) reviewed 2022-09-05 07:15:22 +00:00
@ -0,0 +200,4 @@
if (searchLayout != null)
{
final int animRes;
if (mIsExpanded)
arnaudvergnet (Migrated from github.com) commented 2022-09-05 07:15:21 +00:00

The search wheel has 2 possible shapes: round or straight line. Before this PR, the round shape was used in portrait mode, and the straight line in landscape. But now this PR uses the available height to decide which shape to show (threshold is 400dp). So instead of checking the orientation, this function must now check the available height to understand which shape is loaded.

I agree this is not the prettiest code but I could not find a better way to handle this.

The search wheel has 2 possible shapes: round or straight line. Before this PR, the round shape was used in portrait mode, and the straight line in landscape. But now this PR uses the available height to decide which shape to show (threshold is 400dp). So instead of checking the orientation, this function must now check the available height to understand which shape is loaded. I agree this is not the prettiest code but I could not find a better way to handle this.
arnaudvergnet (Migrated from github.com) reviewed 2022-09-05 07:25:35 +00:00
arnaudvergnet (Migrated from github.com) commented 2022-09-05 07:25:34 +00:00

I agree it could be clearer, I will make a new PR for this

I agree it could be clearer, I will make a new PR for this
Member

is there a plan to update the place page UI? at the moment it still relies on the old taskbar, so the change is quite jarring:

https://user-images.githubusercontent.com/26939824/188507065-833b5cdc-8ad4-42e9-92ca-c436969df25a.mp4

something like this maybe?:

is there a plan to update the place page UI? at the moment it still relies on the old taskbar, so the change is quite jarring: https://user-images.githubusercontent.com/26939824/188507065-833b5cdc-8ad4-42e9-92ca-c436969df25a.mp4 something like this maybe?: <img width="300" src="https://user-images.githubusercontent.com/26939824/188509116-e0b97ce2-c98b-48e6-8604-e13396d62170.png">
arnaudvergnet commented 2022-09-05 21:19:24 +00:00 (Migrated from github.com)

I had planned to look at it once I'm done with map buttons. I don't have design ideas so feel free to open an issue for this!

I had planned to look at it once I'm done with map buttons. I don't have design ideas so feel free to open an issue for this!
Member
opened https://git.omaps.dev/organicmaps/organicmaps/issues/3355 👍
biodranik commented 2022-09-11 22:31:21 +00:00 (Migrated from github.com)

I took the background color used for the old bottom menu toolbar, which is white with 80% alpha. From what I could see the map buttons where white with 60% alpha in master. Do you want to go back to 60?

@arnaudvergnet is the current alpha for the toolbar 80 and 60 for zoom/my position/layers buttons? It doesn't visually match the production version in stores. At least zoom buttons. Can you increase their transparency to 80?
Also, if the toolbar's buttons transparency is less than 80, then it should be 80.
Also, zoom buttons should not be transparent inside, they should behave the same as bottom (ex)toolbar buttons. Is it hard to implement?

> I took the background color used for the old bottom menu toolbar, which is white with 80% alpha. From what I could see the map buttons where white with 60% alpha in master. Do you want to go back to 60? @arnaudvergnet is the current alpha for the toolbar 80 and 60 for zoom/my position/layers buttons? It doesn't visually match the production version in stores. At least zoom buttons. Can you increase their transparency to 80? Also, if the toolbar's buttons transparency is less than 80, then it should be 80. Also, zoom buttons should not be transparent inside, they should behave the same as bottom (ex)toolbar buttons. Is it hard to implement?
arnaudvergnet commented 2022-09-12 18:56:34 +00:00 (Migrated from github.com)

Bottom buttons have 80 alpha, position and zoom are 60 as you requested. I can make them all 80 if you find it better. The zoom buttons are exactly like the others I don't understand what you mean. Or I can make them all 90 if you find it too transparent.

Bottom buttons have 80 alpha, position and zoom are 60 as you requested. I can make them all 80 if you find it better. The zoom buttons are exactly like the others I don't understand what you mean. Or I can make them all 90 if you find it too transparent.
This repo is archived. You cannot comment on pull requests.
No labels
Accessibility
Accessibility
Address
Address
Android
Android
Android Auto
Android Auto
Android Automotive (AAOS)
Android Automotive (AAOS)
API
API
AppGallery
AppGallery
AppStore
AppStore
Battery and Performance
Battery and Performance
Blocker
Blocker
Bookmarks and Tracks
Bookmarks and Tracks
Borders
Borders
Bug
Bug
Build
Build
CarPlay
CarPlay
Classificator
Classificator
Community
Community
Core
Core
CrashReports
CrashReports
Cycling
Cycling
Desktop
Desktop
DevEx
DevEx
DevOps
DevOps
dev_sandbox
dev_sandbox
Directions
Directions
Documentation
Documentation
Downloader
Downloader
Drape
Drape
Driving
Driving
Duplicate
Duplicate
Editor
Editor
Elevation
Elevation
Enhancement
Enhancement
Epic
Epic
External Map Datasets
External Map Datasets
F-Droid
F-Droid
Fonts
Fonts
Frequently User Reported
Frequently User Reported
Fund
Fund
Generator
Generator
Good first issue
Good first issue
Google Play
Google Play
GPS
GPS
GSoC
GSoC
iCloud
iCloud
Icons
Icons
iOS
iOS
Legal
Legal
Linux Desktop
Linux Desktop
Linux packaging
Linux packaging
Linux Phone
Linux Phone
Mac OS
Mac OS
Map Data
Map Data
Metro
Metro
Navigation
Navigation
Need Feedback
Need Feedback
Night Mode
Night Mode
NLnet 2024-06-281
NLnet 2024-06-281
No Feature Parity
No Feature Parity
Opening Hours
Opening Hours
Outdoors
Outdoors
POI Info
POI Info
Privacy
Privacy
Public Transport
Public Transport
Raw Idea
Raw Idea
Refactoring
Refactoring
Regional
Regional
Regression
Regression
Releases
Releases
RoboTest
RoboTest
Route Planning
Route Planning
Routing
Routing
Ruler
Ruler
Search
Search
Security
Security
Styles
Styles
Tests
Tests
Track Recording
Track Recording
Translations
Translations
TTS
TTS
UI
UI
UX
UX
Walk Navigation
Walk Navigation
Watches
Watches
Web
Web
Wikipedia
Wikipedia
Windows
Windows
Won't fix
Won't fix
World Map
World Map
No milestone
No project
No assignees
4 participants
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: organicmaps/organicmaps-tmp#2905
No description provided.