Commit Graph

385 Commits

Author SHA1 Message Date
Joe Steele 9dc5338501 Eliminate WebDAV STARTTLS security choice
STARTTLS doesn't really apply to WebDAV and should never have been made
available as an option.

Pre-existing settings will be re-mapped to SSL/TLS.
2014-03-03 17:29:51 -05:00
Joe Steele daea7f1ecd Eliminate the 'if available' connection security options
These options originated in the AOSP email client from which K-9 Mail was
forked.  They provide an odd combination of 2 features:

1. Don't bother to authenticate the server's certificate (applies to both
SSL/TLS and STARTTLS); i.e., blindly accept all certificates.  This is
generally a bad security policy which is susceptible to MITM attacks.

2. If STARTTLS is selected but the server doesn't claim to support
STARTTLS, then proceed without using encryption.  This, too, is a bad
security policy which is susceptible to MITM attacks.

Since the time that K-9 Mail was forked, a couple things have changed:

> K-9 Mail has implemented the ability for users to review and permanently
accept individual certificates that would otherwise fail authentication.
With this ability, there is no need for a user to subject themselves to
the ongoing risks of feature 1. above.  Hence, this commit removes feature
1.

> The AOSP email client has changed its behavior and no longer permits a
security downgrade to an unencrypted connection if the server doesn't
claim to support STARTTLS (i.e., they eliminated feature 2. above). K-9
Mail should do the same.  It's unlikely that a server is going to provide
STARTTLS on an intermittent basis, so providing a contingency for such
unusual behavior is an unnecessary risk.  Hence, this commit removes that
feature as well.

Effect on existing users:

If the old connection security setting was "SSL/TLS (if available)" (which
now gets remapped to "SSL/TLS"), and the server does not provide a
certificate that can be authenticated, then a "Certificate error for
<account name>" notification is generated telling the user to check their
server settings.  Tapping the notification takes the user to the relevant
server settings, where the user can tap "Next" to review the certificate
and choose to permanently accept it.  This process would occur during the
first syncing of folders after application upgrade or (in the case of
SMTP) during the first attempt to send a message.

If the connection security setting was "STARTTLS (if available)" (which
now gets remapped to "STARTTLS"), and the server does not provide a
certificate that can be authenticated, then the same process as above
would occur.

If the old connection security setting was "STARTTLS (if available)", and
the server doesn't claim to support STARTTLS, then the user would get a
certificate error notification which would lead them to the server's
settings.  There they would need to choose a different connection security
-- most likely "NONE".  If they didn't change anything but instead just
tapped "Next", the server settings would be checked again and a dialog
would pop up saying, "Cannot connect to server. (STARTTLS connection
security not available)". (The implementation of notifications when
STARTTLS is not available is not actually included here -- it's in the
commit that follows.)

Regarding the changes to providers.xml:  in cases where the scheme ended
with "+ssl", the schemes were simply updated by appending "+".  In cases
where the scheme ended with "+tls", a check of the server was made to
assure that STARTTLS was available before appending "+" to the scheme.
Domains paran.com and nate.com failed the check and were removed because
no current information could be found.  Domains me.com and mac.com also
failed and were updated based on http://support.apple.com/kb/ht4864.
2014-03-03 17:23:00 -05:00
Joe Steele 0f991b434e Use Locale.US where appropriate
Applicable for strings not intended for user consumption.

A %d string format code can generate eastern-arabic numerals
for users with an arabic locale.

V/k9      (20763): conn1103774136>>> 5 UID SEARCH ٦٤٦:٦٧٠ NOT DELETED
V/k9      (20763): conn1103774136<<<#5# [BAD, Invalid Search criteria]
E/k9      (20763): synchronizeMailbox
E/k9      (20763): com.fsck.k9.mail.store.ImapStore$ImapException: Command: UID SEARCH ٦٤٦:٦٧٠ NOT DELETED; response: #5# [BAD, Invalid Search criteria]
2014-03-03 10:40:23 -05:00
Dominik Schürmann 4a69ef1509 New OpenPGP Provider API 2014-03-02 16:51:47 +01:00
cketti abc765e893 Don't combine strings in code 2014-03-01 05:12:01 +01:00
Joe Steele 540de158a0 Change the PLAIN auth. option text based on encryption
If the user chooses a connection security option which assures the use of
encryption, then the PLAIN auth. option is labeled "Normal password",
otherwise it is labeled "Password, transmitted insecurely".

This is similar to Thunderbird's behavior.
2014-02-25 15:22:44 -05:00
Joe Steele 23f8d53178 Use Transport.decodeTransportUri and Transport.createTransportUri
rather than manually creating the URIs.

This mirrors behavior that occurs in AccountSetupIncoming.
2014-02-25 15:22:40 -05:00
Joe Steele c7e46faf0a Simplify code with better use of enum ConnectionSecurity 2014-02-25 15:22:38 -05:00
Joe Steele 90fedf7125 Eliminate the LOGIN authentication option from SMTP
The LOGIN option is no longer offered to users as a choice.  This does
*not* eliminate the SASL LOGIN authentication mechanism.  Any pre-existing
LOGIN setting or any imported LOGIN setting will still be recognized.  In
all cases, a user setting of either "Normal password" or "LOGIN" will
result in the SASL PLAIN mechanism being tried first if available,
otherwise SASL LOGIN will be tried if available.

This mirrors similar behavior that exists for IMAP.
2014-02-25 15:22:37 -05:00
Joe Steele dc9720ca13 Use localized strings for authentication type
AUTOMATIC = "Automatic"
PLAIN = "Normal password"
CRAM_MD5 = "Encrypted password"

SMTP also uses LOGIN.  No localized text was associated with that because
a future commit will remove that option.

(The text is similar to that of Thunderbird's)
2014-02-25 15:22:35 -05:00
András Veres-Szentkirályi ab3044c9fa use Set instead of implementation type 2014-02-15 23:59:24 +01:00
cketti 53eac39a90 Extract code to scale the slider value for the message content font setting 2014-02-13 06:04:19 +01:00
cketti 90f63ba057 Remove old setting for message content font size
- export new setting
- add upgrade code to convert old setting to new format
2014-02-13 04:22:45 +01:00
cketti cf228583bc Merge pull request #448
Change message body font size with slider
2014-02-01 00:52:32 +01:00
cketti 6e7fa0df03 Save/restore slider state 2014-02-01 00:49:39 +01:00
cketti f224483df4 Fix display error in account settings
* correctly initialize summary of 'Server search limit'.
* don't persist value in shared preferences
2014-01-31 22:10:28 +01:00
Sergii Pylypenko 67abde055a Change message body font size with slider, using new setTextZoom() WebView API, from 40% to 250% 2014-01-31 23:09:25 +02:00
Joe Steele cedcd7e47c Eliminate the need to pass a context to LocalKeyStore.getInstance
Instead, have K9.onCreate initialize the location of the key
store file (similar to what is done with
BinaryTempFileBody.setTempDirectory).

Also, LocalKeyStore.getInstance has been changed so that it
no longer needs to be synchronized.
2013-12-03 19:24:37 -05:00
cketti 765b390eb5 Remove LocalKeyStore's dependency on K9.app 2013-12-03 13:28:48 +01:00
cketti 2a9ac867b9 Remove LocalKeyStore's dependency on Account to reduce coupling 2013-12-03 12:56:31 +01:00
Joe Steele 8eef43c282 Implement pruning of old certificates from LocalKeyStore
Certificates are deleted whenever server settings are changed
or an account is deleted.
2013-12-02 14:49:47 -05:00
Joe Steele 40404c3700 Move some classes out of com.fsck.k9.mail.store
The classes are just as much related to com.fsck.k9.mail.transport
as com.fsck.k9.mail.store, so having them in
com.fsck.k9.mail.store doesn't seem appropriate.

Move LocalKeyStore to com.fsck.k9.security

Move TrustManagerFactory and TrustedSocketFactory to com.fsck.k9.net.ssl
2013-12-02 14:07:57 -05:00
Joe Steele 76605f7d86 Extract code into new LocalKeyStore class
Also, implement the ability to configure an alternate key store
file location. This permits the running of unit tests without
clobbering the live key store file.

Also, add a test to confirm that the key store file is being written
out and reread correctly.
2013-12-02 14:04:40 -05:00
cketti 48d11fd386 Properly save and restore instance state in AccountSetupBasics 2013-11-29 05:33:48 +01:00
Joe Steele a4440b4042 Fix inadequate certificate validation
Proper host name validation was not being performed for certificates
kept in the local keystore.  If an attacker could convince a user to
accept and store an attacker's certificate, then that certificate
could be used for MITM attacks, giving the attacker access to all
connections to all servers in all accounts in K-9.

This commit changes how the certificates are stored.  Previously, an
entire certificate chain was stored for a server (and any of those
certificates in the chain were available for validating signatures on
certificates received when connecting).  Now just the single
certificate for the server is stored.

This commit changes how locally stored certificates are retrieved.
They can only be retrieved using the host:port that the user
configured for the server.

This also fixes issue 1326.  Users can now use different certificates
for different servers on the same host (listening to different ports).

The above changes mean that users might have to re-accept certificates
that they had previously accepted and are still using (but only if the
certificate's Subject doesn't match the host that they are connecting
to).

This commit modifies AccountSetupBasics so that it now calls
AccountSetupCheckSettings twice -- once for checking the incoming
settings and once for the outgoing settings.  Otherwise, an exception
could occur while checking incoming settings, the user could say
continue (or the user could accept a certificate key), and the
outgoing settings would not be checked.  This also helps with
determining if a certificate exception was for the incoming or
outgoing server, which is needed if the user decides to add the
certificate to the keystore.
2013-11-23 13:26:57 -05:00
cketti fb6cff238c Merge branch 'pr/364'
Make actions shown in message view menu configurable
2013-08-29 21:14:04 +02:00
cketti ee9246b4f9 Fix code style/formatting 2013-08-29 17:34:46 +02:00
Joe Steele ac42bce799 Clean-up related to certificate chains
Per comments in pull request #365
2013-08-27 18:48:07 -04:00
Joe Steele 604aa87ccf Fix erroneous SSL certificate warnings
If you attempted to use SSL to connect to a server that speaks
STARTTLS, you should get an SSL protocol error.  Instead, you
were likely to get an "Unrecognized Certificate" error that shows
you an unrelated certificate chain and asks you to accept it or
reject it.  Neither action would work because the actual problem
had nothing to do with certificates.  The unrelated certificate
chain that popped up had been statically stored when validating
a prior connection to a different server.

With this patch, certificate chains are no longer stored statically
when validating server connections.

Issue 5886 is an example of a user experiencing this problem.
2013-08-25 15:43:36 -04:00
Leon Handreke 8464a432e2 Use named indices to get values from "visible refile actions" preference 2013-08-25 11:35:14 +01:00
Leon Handreke 22639a7361 Make actions shown in message view menu configurable
Fixes #5850.
2013-08-24 19:26:06 +01:00
Jesse Vincent 0a79df2155 Revert "Remove the message list stars preference now that stars are in the chip"
This reverts commit 48785f52bf.

Conflicts:
	src/com/fsck/k9/K9.java
	src/com/fsck/k9/activity/Accounts.java
	src/com/fsck/k9/activity/FolderList.java
	src/com/fsck/k9/activity/MessageList.java
	src/com/fsck/k9/activity/setup/Prefs.java
2013-08-22 20:56:55 -04:00
cketti 20fcd6f63d Add setting to toggle colored background of fallback contact pictures 2013-08-16 18:43:00 +02:00
Jesse Vincent bbad298bf6 Convert OpenMode from an Enum to static ints for perf improvement.
(Based on profiling of long folder list opens)

This should be backported to 4.4
2013-07-30 21:32:35 -04:00
Jesse Vincent 2e74d28da9 Merge branch 'Issue_4503_auto-fit_messages_option' of https://github.com/zjw/k-9 into zjw-Issue_4503_auto-fit_messages_option
* 'Issue_4503_auto-fit_messages_option' of https://github.com/zjw/k-9:
  Revert "Don't show a disabled preference if there is nothing a user can do to enable it."
  Fix indentation
  Correct preference version number.
  Issue 4503: Auto-fit messages option
  Don't show a disabled preference if there is nothing a user can do to enable it.
2013-05-07 21:49:12 -04:00
Joe Steele 97a2f1b261 Revert "Don't show a disabled preference if there is nothing a user can do to enable it."
This reverts commit 0ecc49815f because
an equivalent commit was subsequently made to master:
5f49195a0a
2013-04-28 13:37:29 -04:00
cketti 5f49195a0a Hide "condensed layout" setting instead of disabling it 2013-04-19 02:24:41 +02:00
Joe Steele d9979cb1a2 Issue 4503: Auto-fit messages option
Create a preference option to automatically shrink messages
to fit the screen width (default setting is "shrink").
2013-04-04 17:11:17 -04:00
Joe Steele 0ecc49815f Don't show a disabled preference if there is nothing a user can do to enable it. 2013-04-04 16:48:54 -04:00
cketti a619a9df93 Hide delete policy "Mark as read on server" for POP3 accounts 2013-03-13 06:34:14 +01:00
cketti aea95b1493 Disable server side full text search for the moment
The server search itself does work. But the results are not displayed
to the user because only the message headers of found messages are
downloaded and the subsequent search in the local database won't return
those messages.
2013-03-10 03:00:16 +01:00
cketti f990e6f032 Fix indentation and code style 2013-03-06 07:53:39 +01:00
Uni- 323159ef97 Fix error duplicating false accounts when adding an account 2013-03-06 07:52:32 +01:00
cketti 7ff0da0b52 Refactor code to start Accounts activity to import settings 2013-03-06 06:26:04 +01:00
cketti dc8cb3ba17 Fix indentation/code style 2013-03-06 06:16:07 +01:00
Uni- 4f5ab86be3 Add settings import on Welcome 2013-03-05 16:31:45 +09:00
cketti eed64a37f8 Remove unused batch button settings 2013-02-22 23:40:42 +01:00
cketti d6d9effbec Remove unused stuff 2013-02-21 02:00:12 +01:00
Danny Baumann 0fac8e999d Clean up date handling.
Remove home-grown date formatting, and replace it by usage of the
DateUtils class which is present since API level 3.
2013-02-11 15:19:15 +01:00
m0viefreak 865151fef8 merge date and time font size preference into one
The header changes merged those, so remove the now unneeded preferece, too.
2013-02-11 13:05:52 +01:00
cketti c27a5a8104 Add setting to toggle contact pictures 2013-02-08 15:37:28 +01:00
Danny Baumann 8f3e61feab Convert theme setting value to an enum. 2013-02-08 15:24:03 +01:00
Danny Baumann bd154c4c0f Allow changing the message composer theme (background and text color). 2013-02-08 15:24:02 +01:00
Danny Baumann 2ea0961006 Move message view theme setting from message view menu to global prefs
by default.

The message view theme isn't something the user is likely to change on a
regular basis, so we don't need to clutter the message view menu with
this setting. The menu item can still be enabled for those who want it.
2013-02-08 15:24:01 +01:00
Danny Baumann 275700e482 Fix a number of build warnings.
This gets rid of about 50 warnings. Deprecation warnings still remain,
though.
2013-02-04 11:18:49 +01:00
Danny Baumann 5d1e42c453 Improve certificate failure notifications.
The commit that introduced those notifications also introduced a rather
... interesting design pattern: The CertificateValidationException
notified the user of its pure existance - it's no longer a 'message'
only, but defines policy. As this is more than unusual, replace this
pattern by the MessagingController treating
CertificateValidationException specially when accessing remote folders.

Also make clear which account failed when constructing the notification.
2013-02-02 13:04:41 +01:00
cketti c5b1e1d0e5 Add setting to configure the splitview mode 2013-01-24 20:30:07 +01:00
Jesse Vincent f8414ffe99 Merge remote-tracking branch 'zjw/folder_search'
* zjw/folder_search:
  Provide message search capability from the folder list.
  Eliminate unused code.
  Switch to using the action bar for folder searches.
  Use a more appropriate title when diplaying folder search results.
  Switch to using the action bar for folder searches.
  Provide new action bar "find folder" icons
  Create action buttons to search for folders.
  Readjust settings version number based on current master
  Control wrapping of folder names programmatically only
  Permit the folder list item to expand vertically.
  Create new preference option for wrapping folder names in folder list view.
  Issue 1911:  Permit folder names to wrap on multiple lines in folder list view so users can see the entire name.
2013-01-15 15:19:12 -05:00
Joe Steele 29f15d715d Fix Issue 2389: Self signed certificate expiry causes silent send/receive failure.
With this fix, a CertPathValidatorException or CertificateException will
create a "Certificate error:  Check your server settings" notification
in the status bar.  When the user clicks on the notification, they are
taken to the appropriate server settings screen where they can review their
settings and can accept a different server certificate.
2013-01-10 16:49:55 -05:00
Joe Steele 26fe9b7757 Create new preference option for wrapping folder names in folder list view.
Revert to using an ellipsized folder name as the default.
2013-01-10 16:42:23 -05:00
Danny Baumann 0bf3dddafc Add delete action to notification. 2013-01-04 10:40:48 +01:00
Andrew Chen 3462532f7c Don't try to save crypto settings if they weren't enabled. 2012-12-18 16:26:53 -08:00
Andrew Chen bcc29632e9 Disable Cryptography setup menu if APG isn't installed. 2012-12-18 16:18:00 -08:00
cketti caa26311f1 Use HTML to format welcome message / make URL clickable 2012-12-17 12:41:12 +01:00
cketti 75329c45b3 Add Javadoc 2012-12-17 12:37:27 +01:00
cketti 5f638a02e2 Add missing @Override annotation and whitespace fixes 2012-12-17 12:36:42 +01:00
cketti 99ae73ebb9 Remove the setting to hide the refile buttons
With the introduction of the action bar there is no longer a separate
button bar for refile actions. So it's no longer necessary to hide the
buttons to save screen space.
2012-12-08 11:51:10 +01:00
cketti 189452618a Reset the message view theme when the app theme changes 2012-11-21 02:18:52 +01:00
cketti 9cbbd06352 Restore settings to configure remote search 2012-11-14 02:08:08 +01:00
cketti d209c0cce3 Merge branch 'master' into content_provider
Conflicts:
	src/com/fsck/k9/activity/MessageList.java
	src/com/fsck/k9/fragment/MessageListFragment.java
2012-11-05 04:52:45 +01:00
cketti 0baffd05c8 Hide remote search UI elements
Remote search is currently not working
2012-10-30 16:54:21 +01:00
cketti 5778d135fb Add global setting to enable/disable threaded view 2012-10-28 20:10:52 +01:00
cketti 6af48bd262 Restore TCP port value in incoming/outgoing server settings screens
Special thanks to zjw for the detailed analysis of this bug:
https://github.com/k9mail/k-9/pull/193
2012-10-21 20:04:53 +02:00
Jesse Vincent 4e6453e7bb remove vestiges of a deleted setting 2012-10-09 21:31:19 -04:00
Jesse Vincent e9ae328164 Bring back the checkboxes option for messagelist 2012-10-09 18:22:00 -04:00
cketti 952c40710e Added setting to disable using the background as (un)read indicator 2012-10-02 22:56:06 +02:00
Andrew Chen 39e2a973a1 Merge branch 'imapsearch'
* imapsearch:
  Change settings version to 18 to match what's currrently on master.
  Handle aborted imap searches by nuking in-progress connections.
  Move IMAP search into the Folder level.
  Remove duplicate notification on remote search start.
  Rename variables
  changed PREFERENCE_CLOUD_SEARCH_ENABLED from "cloud_search_enabled" to "remote_search_enabled" in activity/setup/AccountSettings.java to resolve FC.
  Add cloud search icon to local search result screen. Implement pull-to-remote-search.
  Log remote search exceptions in addition to toasting them.
  Add settings export for remote search settings.
  Whitespace; no functional changes.
  Handle implicit vs. explicit searches in ActionBar home button behavior.
  Whitespace fix; no functional changes.
  Add remote search actionbar icons.
  IMAP Search: log exceptions on remote search, properly dispatch MessageList changes.
  modified loadMessageForView() to dowload message if neither X_DOWNLOADED_FULL nor X_DOWNLOADED_PARTIAL.
  Add remote IMAP search support.

Conflicts:
	res/menu/message_list_option.xml
	res/values/attrs.xml
	res/values/themes.xml
	src/com/fsck/k9/activity/MessageList.java
	src/com/fsck/k9/preferences/Settings.java
2012-09-25 16:01:52 -07:00
Jesse Vincent 2c486e31b6 option to put the sender of a message above the subject 2012-09-24 19:11:21 -04:00
Jesse Vincent 83c5783442 Remove the "make this the default account" checkbox from the account setup flow.
If you're adding a new account, it's less likely to be your default than your first was.
No reason for this in initial flow
2012-09-24 12:34:55 -04:00
ashley willis 6ee0548b71 changed PREFERENCE_CLOUD_SEARCH_ENABLED from "cloud_search_enabled" to "remote_search_enabled" in
activity/setup/AccountSettings.java to resolve FC.
2012-09-22 14:23:06 -05:00
Andrew Chen 360b3f1be8 Add cloud search icon to local search result screen. Implement pull-to-remote-search. 2012-09-22 09:40:46 -07:00
Jesse Vincent 48785f52bf Remove the message list stars preference now that stars are in the chip 2012-09-21 17:27:58 -04:00
Jesse Vincent 158c98b5af replace checkboxes with a variant of the chip. 2012-09-21 17:27:58 -04:00
cketti 0334ba88c5 Removed 'compact layout' for now
See issue 4556
2012-09-18 03:43:54 +02:00
Rob Bayer fdb1267cb1 Add remote IMAP search support.
* rbayer/IMAPsearch: (21 commits)
  More cleanup
  Code Cleanup getRemoteSearchFullText -> isRemoteSearchFullText line wraps for preference items
  Refactor to allow fetching of extra search results beyond original request.  Most code moved out of ImapStore and ImapFolder and into MessagingController.searchRemoteMessagesSynchronous.  Should make it easier to add remoteSearch for other server types.
  Prevent delete of search results while search results open
  remove duplicated code block
  Don't hide Crypto when IMAPsearch disabled
  Code Style Cleanup: Tabs -> 4 spaces Remove trailing whitespace from blank lines
  tabs -> spaces (my bad...)
  Fix opening of folders to be Read-Write when necessary, even if they were previously opened Read-Only.
  add missing file
  Working IMAP search, with passable UI.
  UI improvements
  Simple help info when enabling Remote Search
  Dependency for preferences
  Basic IMAP search working
2012-09-13 09:10:37 -07:00
Jesse Vincent 5d4a2132d8 Remove "mark all as read" from the UI. (leaving the backend support for now)
User-facing "select all, mark as read" is slightly different but less confusing and cluttered than the duplicated option
2012-09-12 23:30:27 -07:00
Jesse Vincent d5f739030a Always save all headers. Not doing so is kind of a crazy space microoptimization and can get a little messy 2012-09-10 12:07:35 -04:00
cketti 20a608e1a0 Removed "Manage back button" setting 2012-09-10 17:54:27 +02:00
Jesse Vincent 8d928d20fa get rid of the non-touchable version of the message list items. (The real difference was the capability to show previews) 2012-09-10 11:52:00 -04:00
cketti d8e9c48177 Changed the way we use the activity stack
- removed launchMode attributes for all activities
- only use one activity task
- got rid of "managed back button" behavior
2012-09-10 17:24:34 +02:00
Andrew Chen 9fbb2b4836 Show the subject line in the MessageHeader if the ActionBar title was truncated. 2012-09-09 13:45:33 -07:00
Andrew Chen 4a416f7acd Hide subject line in MessageView since it's now displayed in the actionbar.
Now that the subject line is gone, the right side of the header is now the tallest part of the header.
Put date and time on the same line to keep the header compact.
2012-09-09 13:41:49 -07:00
cketti cec2f4cdee Use "display name" of folder in action bar 2012-09-09 13:21:15 -07:00
Sander Bogaert 29b6d046d3 Separate the welcome message in it's own activity. Cleaner solution and it prevents it from having the same actionbar as the Accounts activity. 2012-09-09 13:13:42 -07:00
cketti 2e454f0af7 Removed "System zoom controls" setting
We always allow zooming but hide (provided the Android version supports
it) the on-screen zoom controls if the device supports multi-touch,
hence pinch-to-zoom.
2012-08-15 00:21:22 +02:00
cketti d9f1690741 Added option to always show the CC/BCC text input fields 2012-08-10 03:38:10 +02:00
cketti 3e6d161c18 Show current value for the 'notification_hide_subject' ListPreference 2012-08-02 02:43:10 +02:00
cketti 8c11ec18a9 Code style/documentation cleanup (no functional changes) 2012-08-02 02:31:54 +02:00
Bernhard Redl 4028505d69 Extended setting to hide subject in notification area (never, when locked, always)
Fixed issue 2595
2012-08-02 01:47:20 +02:00
cketti 853b4681b2 Hide 'Background data' option on ICS+ devices 2012-07-19 05:25:23 +02:00