GNOME Bugzilla – Bug 658230
mobile wideband in the menu is confusing
Last modified: 2013-08-18 22:40:46 UTC
The network indicator menu for mobile wideband connections actually shows the ips networks with signal levels mixed with the actually setup connections. This is quite confusing since there are entries which are not selectable (while looking exactly like the ones in wifi section which are selectable) and selectable entries (the actuall connections) mixed together with just the signal level indication to differentiate them graphically. In my case I have: Mobile Broadband 3 Italia [signal level] 3 Abbonamento Confusing. I think we should do something different here. We can just hide the mobile networks adding the signal level directly at the side of the connection indicating when it will do roaming (via an icon, text, whetever) so it will behave exactly like the wifi section or visually differentiating the mobile networks, like using gray for the text (while keeping the signal level white probably) to make clear these entries are not selectable.
Created attachment 222722 [details] Screenshot of the network menu with two mobile broadband interfaces present I agree with the report - the arrangement of the mobile broadband section is confusing: * The top-level mobile broadband switch isn't necessary (it also causes issues like bug 653361) * The menu item with the signal strength indicator cannot be selected * We show a single connection under each interface, which has a radio button when connected. A radio doesn't work here - there aren't multiple connections to choose from. In general, the broadband section contains too many menu items and includes too much text. It is confusing simply due to the number of items - which one is the actual connection that someone wants to interact with? We are treating mobile broadband like wi-fi, when we should be making it appear and behave like a wired connection: there should be a single menu item for each mobile broadband interface with a switch next to it: Mobile Broadband 1 [ ON | OFF ] Mobile Broadband 2 [ ON | OFF ]
Created attachment 222805 [details] [review] NetworkMenu: make Mobile Broadband act like Ethernet Hide the connection list when there is only one connection. Don't tie the switch to NMClient:wwan-enabled, as that has different semantics from the wifi switch (it doesn't activate a connection when toggled on).
Comment on attachment 222805 [details] [review] NetworkMenu: make Mobile Broadband act like Ethernet Let's put this on hold. As discussed on IRC, the ability to fully power off a mobile broadband device is still desirable.
Created attachment 223101 [details] [review] NetworkMenu: make Mobile Broadband act like Ethernet Hide the connection list when there is only one connection. Don't tie the switch to NMClient:wwan-enabled, as that has different semantics from the wifi switch (it doesn't activate a connection when toggled on). This allows us to consolidate a lot of common code in the base NMDevice class. This is the first part of the new network menu layout for WWAN. The other is in bug 677142.
Comment on attachment 223101 [details] [review] NetworkMenu: make Mobile Broadband act like Ethernet I don't really understand this code, but it does seem to work.
I don't think that hiding the connection list when only one available is a good idea. A user may have created connection settings for one provider and after some time just buy a SIM of another provider. If you're hiding the name of the settings, which usually is the name of the provider, the user may end up using the old connection settings with the new provider; not good if specific data rate plans are needed. With this patch the general switch is tied to enabling the connection directly. So now the modem can only be expected to be in two states: disabled or connected. I think the UI should allow to have the modem also 'enabled/registered' (radio powered on but without an active connection). Without the patch the modem can currently get enabled/registered using the general switch. Benefits of having the modem registered in the network and not connected are for example that you can still send/receive SMS messages, run USSD operations (e.g. to ask your prepaid balance), get 3GPP location information... please don't remove this :-) Also, an interface like this one proposed: Mobile Broadband 1 [ ON | OFF ] Mobile Broadband 2 [ ON | OFF ] makes only sense if we can link without any doubt a given set of connection settings with a given modem/SIM, which may be easy... or not. When you have multiple modems, as in Alan's patch, the UI gets confusing as all connection settings are listed for each available modem. A good approach would be to have each connection settings linked to a specific SIM Identifier (ModemManager exposes it), so that e.g. connection settings for an Iridium satellite modem are only listed if the Iridium-specific SIM is found. The mobile broadband connection wizard could allow to link some specific settings to a given specific SIM. This, anyway, comes with additional problems, as some of the settings are specific to the SIM (e.g. PIN or APN to use) while others are specific to the device (e.g. Modes to use)... One of the problems with the current UI (not talking about the previous patch now) is that the current registration information and signal quality is mixed with the possible connection settings that you're allowed to select. I think there should be some visual improvement there. And this is actually the same issue the original reported had, btw: Mobile Broadband Italia [signal level] <---- this is the current registration and signal Abbonamento <---- this is settings to enable
Hum.. not really true what I said before, it's even more complicated. With the patch on, the modem will be initially in 'disabled' state. Then you toggle the switch and it gets connected, and if you toggle it again it gets disconnected but not disabled, so it stays in 'enabled/registered'. So: - When modem is plugged in you cannot go directly to 'enabled/registered', you are only allowed to connect. - And after the first connection, the modem cannot go directly to 'disabled' (cannot unregister and put the modem in low power mode) Users should be able to change the modem to all these 3 states really: - 'disabled' (initial state, low-power mode) - 'enabled/registered' (radio on, may or may not be registered) - 'connected' A two state (on/off) switch doesn't help here...
As Aleksander says there are really three states: low-power/airplane, disconnected, and connected. low-power/airplane is obvious. disconnected isn't so obvious, but there are two main use-cases: SMS and GPS. Both these are possible while disconnected and you don't need a data connection for either of them. You might even use SMS while connected to wifi or ethernet just to chat while at home or the office. connected is also obvious. But the issue here is that a single on/off switch doesn't work well here, because what connection does "ON" use if there are multiple connections for the 3G device? There are some use-cases for this (admittedly not common) which involve corporate networks; the user will use a "normal" APN for everyday use just like all of us do, but then when doing company stuff they use a company-specific APN, somewhat like a VPN. The single on/off switch precludes picking which connection to use at any given point. So the problem is that a 2-state switch just doesn't work here...
Created attachment 228441 [details] Screenshot of possible solution The screenshot shows a possible solution to try to minimize the confusion between the current registration info (operator name and signal quality) and the available connection profiles. The first two images show the current status. The next two images show the possible solution. Registration info is shown in an independent item when not connected, and the operator name is right-aligned next to the signal quality. Once the user selects a profile to get connected to (one only available in this case), the registration info is merged in the same menu item as the active connection profile.
My recollection from the previous discussion we had was that the ON/OFF switch would apply to connected/disconnected state only, so that the card would be in low-power mode when the switch is off. We could then think about adding the option to completely power off the card somewhere else, perhaps as a power saving option. The design aims to expose one connection configuration for each interface by default. I wouldn't necessarily be against having more than one connection connection per interface as an opt-in (the most recent network settings designs actually have a similar concept for wired connections), if there are cases that require it. However, having multiple connections per interface seems a bit different from having a card where the SIM changes. In this case, the specific configuration is linked to a hardware state and we should try and adjust automatically. For instance, we could prompt the user to update their mobile broadband configuration if the SIM changes, and we could remember the old configuration and use it if the original SIM returns.
To summarize, the current three main states are: * Disabled (a.k.a. low-power) ---> (wwan disabled in NM) * Enabled/Registered (a.k.a. disconnected) --> (wwan enabled in NM) * Connected --> (connection activated in NM) Not sure if hiding the Disabled<->Enabled transition in power saving options is the best thing to do, truth be told. What would it be? Something like "modem in low-power when disconnected"? Regarding the multiple connections for a given modem; we really would need to link a given set of connection settings with a pair of Modem+SIM, so that we don't show them if either modem or SIM is different. If we do that, then we can hide the connection item if there is only one for the given pair of Modem+SIM, and if more than one we could just show the list as we do now. In this case, if there is no connection settings for a given pair of Modem+SIM we could just trigger the connection wizard the first time the switch gets ON.
For settings tied to SIM/Modem, see bug 687918.
Been re-thinking on this a bit more... Alan's solution would work nice if all these apply: * gnome-shell makes sure the modem gets Enabled when found; either by asking NM to enable it or by directly talking to the MM interface to get it enabled. In either case, PIN unlocking needs to be done in this step and still not sure how to do this properly (see bugs 687855 and 687908). Previously, nm-applet would take care of PIN-unlocking (talking directly to MM) as soon as it detected a locked modem. If the user doesn't provide the lock code right away, we would re-request it when the user tries to activate the connection. * The modem's disabled state gets tied to the Airplane mode. So, modems which are available will always be unlocked, enabled and registered; unless Airplane mode is on, in which case we put the modems in disabled/low-power state. Whenever airplane mode gets off, modems are re-enabled. * Each SIM/modem has at least one connection profile tied to it, so that the UI knowns which is exactly the connection profile to use for each. If more than one profiles are available for a given SIM/modem, a list of profiles could be shown as fallback in the UI, as currently done. If no current profile is found, wizard is launched the first time the switch goes from OFF to ON. The downside of this is that Airplane mode is the only way to get the modem in low-power mode, and also that if you have more than one modem you cannot have one enabled/registered and another one disabled/low-power. Not very common use cases anyway I guess. Does this sound good?
*** Bug 687901 has been marked as a duplicate of this bug. ***
(In reply to comment #13) > Been re-thinking on this a bit more... > > Alan's solution would work nice if all these apply: ... > Does this sound good? It sounds good to me; you know this area better than I do though. An important question here is why someone would want to disable a modem. The main cases for this seem to be: * on a plane * wants to save power We already provide an option for the first case. We could potentially add a setting to the power settings panel for the latter (and indeed, this would fit with the way the designs are going in this area).
> > An important question here is why someone would want to disable a modem. The > main cases for this seem to be: > > * on a plane > * wants to save power > > We already provide an option for the first case. We could potentially add a > setting to the power settings panel for the latter (and indeed, this would fit > with the way the designs are going in this area). We could probably then use the 'wwan' enabled/disabled configuration in NetworkManager to control whether the modems are enabled/disabled, and tie it to both the airplane mode and the new setting in power-saving mode. I'll write patches for these things and let you know how far I go.
*** Bug 647553 has been marked as a duplicate of this bug. ***
Created attachment 236294 [details] [review] NetworkMenu: make Mobile Broadband act like Ethernet Hide the connection list when there is only one connection. Don't tie the switch to NMClient:wwan-enabled, as that has different semantics from the wifi switch (it doesn't activate a connection when toggled on). This allows us to consolidate a lot of common code in the base NMDevice class. Rebased, per Bastien's request in bug 687853, although we went back and forth with this one, and I am no longer sure it is appropriate.
Btw, one argument in favor of the patch is that we have the new power panel implemented, so modems can be disabled from there.
(In reply to comment #19) > Btw, one argument in favor of the patch is that we have the new power panel > implemented, so modems can be disabled from there. Great; still need to decide which application should be in charge of enabling the modems initially I guess.
(In reply to comment #18) > Created an attachment (id=236294) [details] [review] > NetworkMenu: make Mobile Broadband act like Ethernet > > Hide the connection list when there is only one connection. > Don't tie the switch to NMClient:wwan-enabled, as that has different > semantics from the wifi switch (it doesn't activate a connection when > toggled on). > This allows us to consolidate a lot of common code in the > base NMDevice class. > > Rebased, per Bastien's request in bug 687853, although we went > back and forth with this one, and I am no longer sure it is appropriate. I wouldn't just hide the profile when only one available unless the profile being hidden is exactly the one applicable to the modem/SIM available; which we cannot know until bug 687918 is implemented. If we do hide the profile unconditionally, changing the SIM in a modem, or just plugging in a whole new modem with another SIM will break the connection as the profile being used is not the expected one.
Comment on attachment 236294 [details] [review] NetworkMenu: make Mobile Broadband act like Ethernet >Don't tie the switch to NMClient:wwan-enabled, as that has different >semantics from the wifi switch (it doesn't activate a connection when >toggled on). You should say "the mobile broadband switch" not just "the switch". But AFAICT, it's not tied to :wwan-enabled now; the only thing that listens to the -enabled signals is NMWirelessSectionTitleMenuItem, and those are only created by NMApplet._makeToggleItem(), which is only used when creating the wifi section... so it seems to me like those parts of this patch are just removing dead code, not actually changing anything. >@@ -752,23 +738,6 @@ const NMDeviceModem = new Lang.Class({ > this.parent(client, device, connections); > }, > >- setEnabled: function(enabled) { remove the "this._enabled = true" from _init() too.
The network menu behavior changed a lot with the System Status menu feature, I'm closing this obsolete.