Mobile/Archive/PlatformIntegration

From MozillaWiki
Jump to: navigation, search

Summary

A lot of different things:

  • All platforms
    • mechanism for using platform vs. web helper apps (prob. just mail and rss: bug 477714)
  • Android
    • integration with status/system bar (notifications for downloads, icons for updates, etc.) (bug 569402).
    • uses for hardware/system buttons bug 559915, bug 559453.
    • android-specific themeing bug 575403
    • hardware back button behavior (moving out of the browser vs. back up a page)
    • use appropriate variants of the onscreen keyboard -- e.g., one with the .com button for url entry (bug 581596)
    • use menu key as shortcut accelerator (bug 582640).
    • use an Android-style menu (bug 606565).
    • Install "web apps" to the home screen (bug 590225).
    • Audible selection sounds (bug 612693).
  • Maemo
    • blur background when we have a dialog over top
    • use native dialogs
    • add close app button on more screens / possible use of Maemo icons in more places
    • revised maemo/meego theme
    • text selection (in fields, perhaps in arbitrary text)

Current Status

Next Steps

Related Bugs

Team

  • Project Lead:

Designs

Maemo

Android

App Menu

The "App Menu" is a menu that appears at the bottom of the screen when the hardware "Menu" key on Android is pressed. For testing, it can also be displayed on other platform by pressing Control-Shift-M.

The app menu is designed to look and behave like the menu in native Android apps. However, it is not a native widget (it is an imitation built with XUL), so there are some differences:

  • Colors and gradients are generally the same, but might not match precisely.
  • Fennec's App Menu does not (yet) have animated transitions when it appears and disappears.

The availability and contents of the app menu depend on what section of the Fennec UI is active. The contents of the menu will change over time and can be modified by add-ons. Here are the contents for the initial release:

  • Main browser UI:
    • Site Options - opens the identity panel / site menu.
    • Preferences - opens the preference panel
    • Add-ons - opens the add-on manager
    • Downloads - opens the download manager
  • Awesomescreen
    • No menu for this release. (Nothing happens when "Menu" key is pressed.)
  • Tool panels (prefs, add-ons, downloads, console, etc.)
    • No menu for this release. (Nothing happens when "Menu" key is pressed.)

Showing/hiding:

  • Pressing the menu button makes the app menu and locks the titlebar to the top of the screen.
  • Pressing the menu button again hides the app menu and unlocks the titlebar.
  • Pressing the system "Back" key hides the app menu and unlocks the titlebar.
  • Touching outside the app menu hides the app menu and unlocks the titlebar.
  • Opening any panel or popup (e.g., opening the awesomescreen by pressing the system "Search" key) hides the app menu and unlocks the titlebar.
  • Tapping on a menu button makes the menu disappear, unlocks the titlebar, and executes the button action.
  • If you touch a menu button and then move your finger off the button before releasing it, the tap is canceled and nothing happens (just like any other button in Fennec).

The layout of the buttons should match the layout of the menus in native Android apps:

  • The menu is at the bottom of the screen, floats above all other content and chrome, and takes up whe whole width of the screen.
  • Buttons are about 100 pixels high (on HDPI displays like the Nexus One).
  • In landscape mode, all are in a single row.
  • In portrait mode:
    • 1 to 3 buttons: one row
    • 4 buttons: 2 on top, 2 on bottom
    • 5 buttons: 2 on top, 3 on bottom
    • 6 buttons: 3 on top, 3 on bottom
    • >6 buttons: 3 on top, 2 on bottom plus a "More" button that displays the remaining items in a popup dialog. (NOT YET IMPLEMENTED - bug 610784)
  • If the device changes orientation while the menu is visible, the menu will still be visible and it will have the correct layout for the new orientation.

Goals/Use Cases

Non Goals