← Back to team overview

ubuntu-phone team mailing list archive

Re: Find out if running on a phone

 

On 12.01.2016 14:59, nick luigi eusebio wrote:
> I'd say we need an API that will give the apps the information in which
> mode the UI is.
> Currently, the modes I have in mind are the following:
>  - phone/tablet
>  - desktop
> - TV
> - watch

I agree. I didn't jump in this thread before because I wanted to read
more about people's opinions, and I see that every side has very good
points.

Reacting to features' availability is the right thing to do, but if we
leave all decisions to app developers it's going to be a mess: imagine
if every installed application is switching its behaviour on different
conditions.
At the very least, we should hand out guidelines on what we consider to
be the features and conditions that should trigger a switch in layout or
general behaviour.

But at best, we should implement something as Nick proposes, that is the
possibility for applications to read out what is the current form factor
that the device thinks it's running in. Detecting if you are a desktop
or a TV is not trivial at all, also whether you are a convertible laptop
used in laptop mode or in tablet mode is not trivial.
And if the hardware adaptation is buggy and the keyboard is not
disconnected, or the tablet switch reading is not operational you
probably want to offer the user to override the form factor mode from
the UI, and it would be best if this is done in some centralized place
(some shell indicator) rather than have every app implement this option.

Like, many laptops have both touchscreens and touchpads (or a connected
mouse); depending on which input device is the preferred one, the UI
should switch to a "desktop" mode (small UI elements) to a "tablet" mode
(more comfortable for touch operations): how do we detect the preferred
input mode? There is no magic feature detection here (both input devices
are connected and operational), we probably need a user preference
setting here. And I don't think it should be implemented in every
individual app, it should be centralized.

Ciao,
  Alberto



References