b/13085182
You can't look up emailServiceInfo for smtp, we don't store that
in services.xml. The thing is, if we're using outgoing settings,
we're always using smtp, which allows oauth.
Change-Id: I5c6032e8d5020ba83fa1c803666b83f134f87f75
Unfortunately, there are problems with making a single
view handle all kinds of authentication and certificate
selection. The layouts for the account settings screen
on phones versus tablets are just too different. So
now the certificate selection code has moved back to the
fragments themselves, and the authenticationView only
handles passwords and oauth.
Change-Id: I1ef0c69687a00029717b836458c85c1b0667ff95
Now the password entry is removed from AccountSettingsBasics,
and the user is taken to either SignInActivity or AccountSetupType
after hitting the next button. This is a lot closer to the
desired setup flow as it allows for oauth signin.
Ideally this is not what we will ship for Algol, but it put us
in a state where we could ship if we had to.
Change-Id: I5b28bccd27c515572e4947ca877bd1772732507d
I left an abstract function unimplemented, but didn't realize
because the function was added to the interface in a very recent cl.
Change-Id: I2b091ed284c256e1624633be6a598ff2798075c0
Putting authentication in a fragment was a problem, it
means that we need fragments as children of other fragments.
While this works in theory, it adds a lot of complexity.
Now, authentication is done with AuthenticationView,
which is just an extension of LinearLayout.
Currently, this does not yet handle adding certificates
for exchange accounts, but I'll fix that ASAP. As it is,
this is better than the current state, which crashes on
account setup 100% of the time.
Change-Id: I4274e7250f97012c3dc476003fd36fb960f2b728
This is one fragment that holds all types of
authentication information, e.g. password,
OAuth info, and client certificates. What gets
displayed depends upon the type of account it is
dealing with.
So far this is only used in AccountSetupIncoming,
but later it can be added to other settings fragments.
There are still some issues with this, but I'd like
to check it in sooner than later to unblock other
work.
Change-Id: Iea675ad5c1727f32ca0baa270dfa793ab7109993
Now you can authenticate your account using oauth
for google hosted accounts (e.g. google.com, gmail.com)
The setup ui is still not up to spec.
Change-Id: Ib2826653550a823b4d1b8739c1e483746cccbc22
This will keep it from being recreated quite as much while off-thread tasks are possibly mutating it.
Change-Id: Ic9873489906339c33a76b8a600c0fc28016debc4
This just adds an oauth button to the accountSetupBasics
screen, which will launch a webview and go to the google
authentication page.
Change-Id: I09d5182fa6081fb94b40e7910b71afbbee70387e
There is now an xml file that holds parameters for oauth
providers, and entries in providers.xml can specify that
they can use oauth.
Change-Id: Ibce5b207f83ce9c773f8f713be9e73bb068070ed
Also add a loader to AccountSecurity, and ignore when a policy contains unsupported requirements.
b/11790165
Change-Id: Idd651153848eea3216656047c5aba3bbd750ca0a
b/11158759
Make the default sync setting for drafts folders 0
(never automatically sync), and disable the settings
control so that it cannot be changed.
Also add a db upgrade step to set any existing drafts
folders to not sync, and clean up any Exchange synced
draft messages.
Change-Id: I256bde231d722089ef2a623482f570a20eccf1de
Some changes that allow a notification to open Account Settings for a specific
account
Bug: 10930585
Change-Id: Ib329e339b405ccbc0631d5ce6a23bf8fa6d62b83
b/10602459
It was possible to turn off syncing for an account in global
settings, but we'd continue displaying some sync frequency
in the in-app settings.
Now, we only display the sync frequency if sync is actually
enabled. If it's disabled we always display "never". Also,
when the user changes a sync setting, if it's set to "never",
we leave the frequency in the database as it is, but disable
sync for that account. If it's set to anything else, we store
that in the database and ensure that sync for the account is
enabled. This means we should not have any apparent disagreement
between in-app settings and global settings as to whether or
not syncing will happen.
Change-Id: I1cc54e76aafd25dc4db0f1b713e7d7cbc30bf77f
It wasn't working right anyway.
Also, fix a problem where account settings were
not being fully initialized.
Bug: 8384097
Change-Id: Ia60ace2ce618b64fe4ad5ef8d8ac547a086a26d5
- Account & general fragments need to clear to remove
"Add account" for phone & 7".
- 10" needs to therefore specify their menus in order to
have "Add account".
Bug: 10097087
Change-Id: I133db9b9f7f6610ae30b46927ffcb8a9e4df4c0a
The old callback mechanism is deprecated, in favor of making
calls on the ContentProvider.
Bug: 9842867
Change-Id: I65f559e593cda24456c4ffb96f785e054626dd0b
This will allow us to add query parameters such that Uris will still
appear to be equal, regardless of differences in the parameters.
Bug: 9780067
Change-Id: I483d009fe3681ec3d4323b3ca95dff8ca9f4ffde
We have a way to handle lack of outbound host auth, and it's
a legitimate state for Exchange accounts (since it's unused
anyway).
Bug: 8631134
Change-Id: I99863f627c4f364e61f7a4b99dea3e2606a55275
The user no longer has control over this. Now, the "default" account
(which is only used for prepopulating the name of new accounts is
either the last used account (to be defined), or the first account in
the database.
This removes a setting, and simplifies a lot of code.
We may also want to auto-select the default account when entering the
compose screen from the combined view, but we do not currently have
an easy way to do that.
Bug: 7442992
Change-Id: Iff5bb36d8cbd327334211b670fa4851cbda6b9a0
There is now only one LogTag class. The static initializer of
GmailApplication (existing) and EmailApplication (new) will now set
the log tag to "Gmail" and "Email", respectively. Up until that code
is run, it will be "UnifiedEmail".
"setprop log.tag.Gmail VERBOSE" (or .Email) will trigger all logs to
be printed as long as they go through LogUtils, regardless of what tag
is used by that individual log. This lets us still turn on logging
everywhere in one command, but also lets us use more descriptive tags
(like the class name).
And since we no longer have three com.android.mail.utils.LogTag
classes, builds will be much easier.
Also, we now use LogUtils everywhere.
Change-Id: I55f1c7a66ce50ead54877a13e40256422a56dc39
Exchange goes through multiple steps to set up accounts.
Each step requires a sync request to occur, so this change
requests syncs as necessary.
Bug: 9074056
Change-Id: I0f35a06409c6a77c82d004958ecc323cf8030ab4
Exchange used to just re-check version on first sync.
Version is known during validation so might as well use it.
Change-Id: I004fe671a1ad30a7cfe0a0659b74b20ee2136771
Replace the current "Hide checkbox" setting with a tri-state setting with
choice of:
- Show checkboxes
- Show sender image
- Show neither
Bug: 8512959
Change-Id: Ifa233b6d65f8c37388edeed71dbfbfdf1295d6fc
Since some people prefer delete over archive, we will use their
conversation list swipe preference to determine whether to show
a "Delete" action or an "Archive"/"Remove label" action. "Delete"
will be shown if they have selected "Always delete"
UR9 version of I4eb0d408474a9f613cc4267c3851cc7277a22ebd
Change-Id: Ia2f1382b88c1ee6f64e864cb8b780d02821b673d
This involves redoing the persistence model, to split general,
account, and folder settings into separate SharedPreference stores.
It also requires some preferences to be moved into UnifiedEmail.
Depends on Ibe2e3f93ec164370535ffc5f5b2409544cc8d36d (UnifiedEmail)
Change-Id: Ie6ec389b5b5d2e7ab1b299d0877811ae716526e2
Migrate the old value as necessary.
Update the unit tests.
Cherry-picked from I1c276ffde3496cbc66846ed4a007088d39f20382 with
minor changes.
Bug: 7624838
Change-Id: I1b3fa331b62f556701bacba5ce9cd64305d9b52a
* Restore Imap1 code
* Legacy users will use Imap1
* Existing Imap2 users will continue to use Imap2
* New accounts will be created in Imap1
* More to follow
Bug: 7203993
Change-Id: I8b86fcada59a854fd464d5269c94d00ebae85459
Since tablets have the space to fit both the reply and reply all buttons
there is no need to show this setting on these devices
Bug: 7190341
Change-Id: I8a911ee964be6af31b63286db53b335a9e4a8396
If the Email process is killed during setup, the Account information
wouldn't be set. Specify this information in the intent as the intent will be delivered
again when the activity is restored
This is a short term fix. Ideally we would switch all of the intents for the setup
activities to use these extras to pass this information, or we would save the state of
SetupData in onSaveInstanceState
Bug: 7163201
Change-Id: Ic1758eb031cd113089073d03f3c2571e37a98b23
* Spinner onItemSelected is called prior to user input; this
reverts the port to the security-based default
Change-Id: I1cb67e519e9305ef2384b5f5f305bff1e950e7c4
* Much, much faster
* Remove message length pass and lots of other useless code
* Create pseudo-attachment for long messages (click to download) that
includes size (so user can determine whether it's worth it)
* Handle download of message via pseudo-attachment; real attachments
are then created as necessary.
TODO: Add real UI with UX input (or modify existing to clean up the
loose ends)
TODO: Optimizations for loading the whole message
TODO: Get server delete working (isn't working currently anyway)
Change-Id: I31f3809fc5a2f9fd490d33cfed70d2930654e71d
* And warn user (allowing her to switch to legacy adapter)
* This is temporary, for use in testing and marked STOPSHIP
Change-Id: I2510b0855a67c09add116d827185ff14596f44dd
* Allow AccountService loginFailed API to take a reason string
* Present the reason string in the dialog shown from the login
failure notification
* Handle ALERTs in IMAP login responses (for example, some servers
will occasionally require web login and we need to inform them,
rather than simply saying the password is wrong)
* This fixes a longstanding bug in our Imap1 implementation
Change-Id: I8b270cd5d4746559b6c8a78bce02f0e7c525bdea
This CL includes the following:
* New Imap2.apk generation (not included in builds)
* "Push IMAP" option for accounts when Imap2.apk present
* Account creation/setup
* 2-way sync of messages, deletions, flag updates
* Push (messages, flags)
* Folder list hierarchy handling
* Message text (one plain or html part)
* Picker UI for trash folder (placeholder)
* Capabilities handling/UI command
Major Imap2 new features:
* Push
* Multiple folder sync
* Sync window (like EAS)
TODO:
* Picker UI for sent folder
* Upload of sent messages to server
* Search
* Multiple viewable parts
* Probably lots more, incl. unit tests
Change-Id: Ia5d74073d9c307e0bdae72a7f76b27140dde7d14
Specifically, several internal classes.
This makes a little more sense since they are accessed outside of the
class that they are defined in.
In addition, this fixes errors created by proguard when building with
OpenJDK.
Change-Id: If2e2f90558e04e777a0c4dbc2ccd1f6c46dd8228
This CL to replace Iafd5d1dc.
* use common styles for spinner anchor and dropdown text
(introduced in I3063cfea)
* allow dropdown item height to scale beyond fixed height to fit
huge text
Other fixes:
* use Gmail's color for dropdown and folder list header text
* remove spurious divider in dropdown items that precede a
header
Bug: 5687252
Change-Id: I3e46cff736a045c4a59a0ff8810977e39f903a14
* use common styles for spinner anchor and dropdown text
(introduced in I3063cfea)
* allow dropdown item height to scale beyond fixed height to fit
huge text
Other fixes:
* use Gmail's color for dropdown and folder list header text
* remove spurious divider in dropdown items that precede a
header
Bug: 5687252
Change-Id: Iafd5d1dc7c3809393c3892138b42b7274fb03a27