BasicAirData / GPSLogger

A GPS logger for Android mobile devices
http://www.basicairdata.eu/projects/android/android-gps-logger/
GNU General Public License v3.0
392 stars 121 forks source link

Feature Request: Add a customizable screen where you can choose what to display #175

Open GrazianoCapelli opened 2 years ago

GrazianoCapelli commented 2 years ago

Some users would like to have a single screen where they could choose which data to show. They could set it to be like some standalone not android-based portable GPS recorders, or simply customize it with the preferred data. This way a user can mix data from GPS Fix and TRACK into a single screen, avoiding to switch between them.

We should start discussing a good implementation, in order to find a good way to add the screen into the current user interface.

Time for comments, mock-ups, ideas, suggestions.

PowerUser64 commented 2 years ago

Personally, I like the separation between data that can always be computed vs data that is only computed during a track.

As for how to allow changing the order of items, I present three ideas: the edit tray, the order dialogue, and the enabler dialogue. For each idea, I'm assuming something like an "edit tiles" button in the three dot menu will be added to each tab.

Edit Tray

When edit mode is opened, a tray of "hidden" tiles would expand from the bottom of the screen. The user would then be able to drag tiles from the tray into the tab's tile grid or vice versa. Similar to how you add or remove items from Android's quick settings panel. When done, the user would simply press a "done" button, which could potentially take the place of the lock/stop/annotate/record buttons while edit mode is active.

Dialogues

Order Dialogue

A simple version of the edit tray would be a dialogue with a list of items that could be dragged up or down to change the order of elements. If an item is moved below a line, it would be hidden, like so:

Speed (km/h)
Altitude (m)
------
Current Time (h:m:s)

In this example, the Speed and Altitude tiles would be shown on the tile grid in that order, while the Current Time tile would be hidden. To hide or show an item, the user would just drag it to the other side of the line inside the edit dialogue. (Maybe the line itself could even be moved.)

Enabler Dialogue

Another variant of the edit dialogue would be not having the order of items in the list impact the order of the tiles in the tile grid. The tiles would have a predefined order, based on what is sensible, and then something even simpler than dragging tiles up and down could be implemented, possibly with checkboxes.

Weighing the options

The struggle with the dialogues is they make it harder to tell whether an item will be positioned on the left or the right of the tile grid, as well as being potentially less clear to the user what each tile shows, because of the lack of direct visual connection between the dialogue and the displayed tiles. However, a dialogue would likely be easier to implement than the edit tray. (I do not know enough about Android app programming to know how much easier.) Overall, the edit tray is my favorite option, closely followed by the enabler dialogue.

In the Tracklist tab, possibly an enabler dialogue could be used to change which statistics are shown for each track.

If we wanted to have an all-in-one tab or panel that could display items from either the Track tab or the GPS Fix tab, one of these ideas could be applied to it as well.

These ideas are, of course, open to further expansion and improvements. I hope they're useful.

Edit: I just realized you could probably combine the order dialogue and the enabler dialogue to create an ordered enabler dialogue that has checkboxes to enable or disable things, as well as handles to reorder things. This one might be my new second favorite.