Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

(Discussion) UI shell for overlaying elements #26

Open
6 tasks
swisszeni opened this issue Aug 27, 2016 · 11 comments
Open
6 tasks

(Discussion) UI shell for overlaying elements #26

swisszeni opened this issue Aug 27, 2016 · 11 comments
Assignees
Milestone

Comments

@swisszeni
Copy link

swisszeni commented Aug 27, 2016

So the official Apps have multiple UI elements as overlays that persist across page navigation and independent of page state.

These are:

  • Top error bar, displaying connection and GPS issues.
  • Centered error message popup, displaying when you try to transfer a favorited Pokémon or trying to use PokeStop too far away.
  • Received item popups, for each item. When receiving at a PokeStop.
  • Transfer Pokémon success message.

My approach to this would be introducing a Shell that manages displaying of these overlaying elements (eg. pass items received, shell shows/hides etc.) and wraps all other Pages of the App.

Did I miss any elements and/or does someone prefer a different approach on handling this?

Functionlist:

  • Error bar (GPS, Connection)
  • Error message (center of screen)
  • Egg Hatch
  • Gained Item
  • Transfer success
  • running request indicator
@ST-Apps
Copy link
Contributor

ST-Apps commented Aug 28, 2016

@PoGo-Devs/ui-team

I think that this can be done, Template10, which we're using now, uses this same approach for the Hamburger Menu template (a Shell which contains the pages and keeps the same Hamburger menu over them).

If you want to start playing with it, download Template 10 VS extension, create the Hamburger app and change Shell's style, so that you won't need to deal with navigation logic.

@swisszeni
Copy link
Author

Yes I already know and used Template10 in some other projects. And even MS uses the Shell approach in some of their own Windows-universal-samples. Just wanted to know if some people would prefer a different approach I didn't think of. But doesn't seem like.

Will implement next week when I find time.

@ST-Apps BTW do we have any kind of backlog? Or dev comm channel? Discord seems pretty empty to me

@ST-Apps
Copy link
Contributor

ST-Apps commented Aug 28, 2016

Invited to Slack (and removed your address from here).

@jakubsuchybio
Copy link
Contributor

My ideas from Slack on this topic:
We should have something similar like PoGoMessageDialog without user interaction, just to show things for 1-3secs and dissapear automatically. I would call it PoGoMessageBox. It would have 3 types:

  1. would be event/information type for showing (transfer candy, evolve candy, powerup infos, hatched candy+stardust, etc)
  2. would be warning type (speed is bigger than 60km/h, gps accuracy low, etc)
  3. would be error type (network connection lost, gps lost, battery low)

Also those MessageBoxes would be in queue so they won't overlap and will always wait for the previous to finish.

@ArthurSDev
Copy link

would be warning type (speed is bigger than 60km/h..., that warning is boring some times.

@swisszeni
Copy link
Author

I don't think we should implement the annoying speed warning... unless there is some server component requiring it. Similar to the annoying popup to "watch your environment" at the start of the game. And if we do, I would implement it with a MessageDialog like in the Niantic Apps.

@jakubsuchybio
Copy link
Contributor

jakubsuchybio commented Sep 3, 2016

Also we should have

  • rotation pokeball for every server request.

Every awaited server request would get triggered. And at the end for a split second (200ms?) it could turn green/red if request had succeded/failed

@jakubsuchybio
Copy link
Contributor

If it is not mentioned here yet. We could use this overlay shell for connection status of requests. Instead of Busy.

@swisszeni
Copy link
Author

swisszeni commented Sep 16, 2016

yeah, well this would be the feature you listed just one post above ;)

We shouldn't add screen overlaying busy indicator (like it is now) anyway.

  1. It interupts user experience
  2. Isn't like this in the official app

Better disable buttons durng a running request to prevent unwanted user interaction (or animations).

@jakubsuchybio
Copy link
Contributor

Yes, but that will be a lot of work to get right. :) Just sayin..

@swisszeni
Copy link
Author

not that much if you hook it up centrally. Set a flag for a running request in the ViewModel, check the flag in CanExecute in each DelegateCommand and RaiseCanExecuteChanged on the beginning and end of every request. around 10-20LOC for every VM.

@swisszeni swisszeni added this to the PoGo 2.0 milestone Sep 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants