After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 761051 - Overhaul flight mode - align to end user expectations
Overhaul flight mode - align to end user expectations
Status: RESOLVED OBSOLETE
Product: gnome-settings-daemon
Classification: Core
Component: rfkill
3.18.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
: 764390 787281 787800 794467 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2016-01-24 17:44 UTC by lof
Modified: 2019-03-20 11:32 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description lof 2016-01-24 17:44:57 UTC
The flight of gnome shell works totally different compared to what users are used from other (mobile) systems like android.

On android flight mode is a mode that you manually enable (or via a trigger), but it is not automatically enable if the phone is a state similar to flight mode.


DISABLING WIRELESS:
Android: When you disable all wireless functions (wifi, bluetooth) but do not enable flight mode then flight mode stays disabled.

Gnome shell: When you disable wifi and bluetooth the system enabled flight mode for you, without asking.

ENABLING FLIGHT MODE:

Android: If you wifi is on and you bluetooth is on, and you enable and then disable flight mode android will restore the wireless devices to the same state as before. So wifi is enabled, and bluetooth stays disabled (in this example).

Gnome Shell: If your wifi is on and bluetooth is off and you enable and then disable flight mode, then the system will enable both of these devices (if you only have these). The user then needs to do at least 3 steps to restore the old state. 

I like that gnome has a flight mode. But it behaves totally different than i (and some other users i asked) expected. I think it would be more intuitive if the flight mode would behave the same as on other systems.
Comment 1 Florian Müllner 2016-01-24 19:06:41 UTC
Airplane mode is actually implemented in gnome-settings-daemon, all we do in the shell is showing or hiding the icon (and ask gnome-settings-daemon to turn airplane mode off when the user selects the corresponding menu item), so reassigning.
Comment 2 Bastien Nocera 2016-04-14 14:53:49 UTC
Moving to rfkill component.
Comment 3 Benjamin Berg 2017-06-12 22:10:35 UTC
*** Bug 764390 has been marked as a duplicate of this bug. ***
Comment 4 Benjamin Berg 2017-08-22 13:24:03 UTC
I think this basically boils down to having a "virtual" Airplane mode state (which cannot be enabled by disabling all devices). If the user enabled Airplane mode we store the list of devices which were switched to the off state. Then, when disabling Airplane mode these are re-enabled.

Ideally the following holds true:
 * Enabling Airplane mode disables all active devices (and stores them)
 * Disabling Airplane mode re-enables these devices
   (this can be *no* device if all devices were off to begin with)
 * Enabling Wifi and Bluetooth while in Airplane mode is allowed
 * Enabling a modem while in Airplane mode is impossible
 * Airplane mode is never enabled implicitly
   (i.e. disabling all devices will not enable airplane mode, and you may
   have airplane mode on with an empty list of devices that should be
   re-enabled)
 * Devices that appear should get the expected state for the device type

I am not sure about:
 * Whether we have a separate modem switch or not. However, I think this does
   not fundamentally affect the general logic.
 * Whether Airplane mode should be disabled when all devices are turned on.
   I am thinking that this should be the case.
Comment 5 lof 2017-08-23 18:38:50 UTC
Apart from the modem question this is exactly what i expected from the feature in the first place. Very good description. 
Comment 6 Christian Stadelmann 2017-08-23 22:56:21 UTC
(In reply to Benjamin Berg from comment #4)
> I think …

This sounds very good to me!

>  * Airplane mode is never enabled implicitly
>    (i.e. disabling all devices will not enable airplane mode, and you may
>    have airplane mode on with an empty list of devices that should be
>    re-enabled)

I disagree: If the airplane mode switch == modem switch (see below), then disabling the last modem should automatically enter airplane mode.

> I am not sure about:
>  * Whether we have a separate modem switch or not. However, I think this does
>    not fundamentally affect the general logic.

So you mean whether "Airplane switch" == "modem switch"? That would be ok for me, because "modem" is hard to explain sometimes…

>  * Whether Airplane mode should be disabled when all devices are turned on.
>    I am thinking that this should be the case.

Maybe trying to enable modem while in airplane mode should warn and ask for confirmation.
Comment 7 Bastien Nocera 2017-08-24 11:27:36 UTC
(In reply to Benjamin Berg from comment #4)
> I think this basically boils down to having a "virtual" Airplane mode state
> (which cannot be enabled by disabling all devices). If the user enabled
> Airplane mode we store the list of devices which were switched to the off
> state. Then, when disabling Airplane mode these are re-enabled.

There's no "airplane" state in the kernel either, and it causes all sorts of trouble:
- when there's no Bluetooth adapter (we have no way to know whether there would be one or not in the machine before trying to enable it)
- when the user expects that disabling the airplane mode will restore the "pre airplane mode" state, eg. a modem or Wi-Fi card that was disabled is still disabled
Comment 8 Benjamin Berg 2017-08-24 12:45:33 UTC
(In reply to Christian Stadelmann from comment #6)
> > I am not sure about:
> >  * Whether we have a separate modem switch or not. However, I think this does
> >    not fundamentally affect the general logic.
> 
> So you mean whether "Airplane switch" == "modem switch"? That would be ok
> for me, because "modem" is hard to explain sometimes…
> [SNIP]
> Maybe trying to enable modem while in airplane mode should warn and ask for
> confirmation.

I don't think it should be possible to enable a modem while in airplane mode (I have *not* done the research but my assumption is that this is a regulatory requirement). I can see this either working by not a separate modem switch (i.e. airplane mode == modem switch) or to disallow turning the modem On without also turning airplane mode Off. Yes, a confirmation dialog is one way of solving this.


(In reply to Bastien Nocera from comment #7)
> - when there's no Bluetooth adapter (we have no way to know whether there
> would be one or not in the machine before trying to enable it)

Are there cases where we have a "bluetooth" rfkill switch but no bluetooth hardware exists? Then again, I don't think we can get better than to trust the presence of an rfkill switch to mean that bluetooth is available.

> - when the user expects that disabling the airplane mode will restore the
> "pre airplane mode" state, eg. a modem or Wi-Fi card that was disabled is
> still disabled

Yes. As I understand it, the whole point of this bug is that exactly that should happen.
Comment 9 Florian Müllner 2017-09-05 00:16:59 UTC
*** Bug 787281 has been marked as a duplicate of this bug. ***
Comment 10 Bastien Nocera 2017-09-06 09:38:08 UTC
(In reply to Benjamin Berg from comment #8)
> (In reply to Christian Stadelmann from comment #6)
> > > I am not sure about:
> > >  * Whether we have a separate modem switch or not. However, I think this does
> > >    not fundamentally affect the general logic.
> > 
> > So you mean whether "Airplane switch" == "modem switch"? That would be ok
> > for me, because "modem" is hard to explain sometimes…
> > [SNIP]
> > Maybe trying to enable modem while in airplane mode should warn and ask for
> > confirmation.
> 
> I don't think it should be possible to enable a modem while in airplane mode
> (I have *not* done the research but my assumption is that this is a
> regulatory requirement). I can see this either working by not a separate
> modem switch (i.e. airplane mode == modem switch) or to disallow turning the
> modem On without also turning airplane mode Off. Yes, a confirmation dialog
> is one way of solving this.

Phones don't have a separate toggle for their baseband radio's rfkill. The airplane mode toggle acts as "all the killswitches" when you turned it on (so everything off), and you can then enable wifi and Bluetooth individually.

I don't see a confirmation dialogue as being needed, unless you expect users to click that toggle inadvertently.

> (In reply to Bastien Nocera from comment #7)
> > - when there's no Bluetooth adapter (we have no way to know whether there
> > would be one or not in the machine before trying to enable it)
> 
> Are there cases where we have a "bluetooth" rfkill switch but no bluetooth
> hardware exists? Then again, I don't think we can get better than to trust
> the presence of an rfkill switch to mean that bluetooth is available.

Yes. I remember Sony Vaio laptops being like that. I even wrote a hack to detect the Bluetooth adapter on boot, so that the rfkill presence and state would be "correct". It wasn't accepted. Mind, I haven't seen this in a number of years, but I guess that it's still a possibility on laptops where the Wi-Fi/Bluetooth cards are removable.

> > - when the user expects that disabling the airplane mode will restore the
> > "pre airplane mode" state, eg. a modem or Wi-Fi card that was disabled is
> > still disabled
> 
> Yes. As I understand it, the whole point of this bug is that exactly that
> should happen.
Comment 11 Severo Raz 2018-03-19 21:50:43 UTC
*** Bug 794467 has been marked as a duplicate of this bug. ***
Comment 12 Benjamin Berg 2018-04-10 14:41:16 UTC
*** Bug 787800 has been marked as a duplicate of this bug. ***
Comment 13 GNOME Infrastructure Team 2019-03-20 11:32:45 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gnome-settings-daemon/issues/288.