This introduces a ScrollView that doesn't "lock" scrolling in one
direction, which makes it really difficult to view messages on a phone.
Bug: 5039459
Change-Id: I75e6824952c843140844873bec77af55b194f776
Since account deletion is async, the deleted account still shows up for
a split second. We can do something smarter about this later, but not
for ICS, and not worth it for such a rare event
Bug: 5116203
Change-Id: I82cced09b7a098e4a1a960f2d8ad75c1979b0649
This is a kludge - the real solution is to use the proper action modes
in the framework. That's too large to do this late.
Bug: 5232787
Change-Id: I76b68b250c384bdabf51e8831f833afd65c0c73b
- this syncs up the UX repo with the developer repo so that the assets
now match. We should be able to do wholesale drops/diffs from now on.
- lots of changes to widget so that it is (mostly) up to spec now, and
matches the preview
Bug: 5225385
Bug: 5205578
Bug: 4320895
Change-Id: I8ccbadcfc17cdb406599497edc91165809f55d68
* A change in history requirement is not intended to force a new
password immediately; we just tell the DPM what the new
requirement is...
* This is one cause of the below-referenced bug
Bug: 5221119
Change-Id: I890b42d4eab4fbd9d34665fbea138f179d5d3215
* We were using the getSelectedItem() from the deletion spinner to
set the account's deletion policy, even if that spinner was
invisible (which it would be for IMAP).
* The result of this is indeterminate; sigh
* The fix is to make sure the spinner is visible before using its
value
Bug: 5216422
Change-Id: I7e44b5e8127f5277693f7e962899e8642be55239
- this is leftover from a time where we re-used a single WebView for
multiple messages. The current architecture does not rely on that, so
the clearView() is actually not useful. Worse - it's causing issues
because the operation in the WebView is asynchronous, so a clearView and
a load of the content in quick succession causes a race condition,
causing items not to load
Bug: 5205296
Change-Id: I5ee6697bdf53a033ba1c7f21170820259bf830d1
* We weren't checking for it in determining whether our policies
were active; because of this, we never actually SET the policy
in the DPM
Bug: 5193399
Change-Id: I276901be21be681f66891f5374ec58cf1ea7b4be
We had two separate "height" values in XML that weren't consistent - one
was used for the coordinates and one was used for the actual item i nthe
adapter. This made things off slightly when the values didn't match
(i.e. on tablet wide mode).
Also fixed an issue with paperclip icon not aligning with date on wide
mode
Bug: 5184169
Change-Id: I1d80bb9c685fdd8216fcaef26bf6ad715eb74c4c
* The existing IMAP search code is well-known to be primitive and
largely broken. In particular, it fails with any non-ASCII
character and with a variety of symbols (e.g. quotes, slashes,
etc.) Basically, it's an accident waiting to happen, returning
empty data sets even when the query might reasonably be expected
(or known) to return valid data.
* The current CL uses the IMAP literal string format to represent
the query text; this string can be sent either in ascii or in
UTF-8, and since it is sent as an octet (byte) count followed by
8-bit data, it also solves any quoting issues that might come
up. So, we kill two birds with one stone.
* The bug in question was punted to a subsequent MR; however, I
think it would be a mistake to ship the code without this
CL, which has been tested against the three common IMAP servers
that we aim to support.
Bug: 4690713
Change-Id: Iaa542bfc56737871f3cbc9c83f0e768415a7f2b6
The MessageListFragment doesn't guarantee to return a non-null Mailbox -
it can be null for virtual mailboxes. We weren't checking this properly.
Bug: 5171577
Change-Id: I272f6a71633680d3424b049d730500fb5f04935e
Removal of the accounts header broke code that assumed the list of
accounts started at index 1. Change code so that it doesn't rely on that
assumption.
Bug: 5171557
Change-Id: Idde445cac914c4a742c54e291d808b991e612c5f
Also turned off extract mode for subject/ body as we already
did this in gmail at request of ux.
Fixes b/5161118 TO field drops all entry chips on rotation
Change-Id: Iada93bbf7ee457801340167aa1086b03b87b4268
- also removes the "Accounts" header as requested by UX
- also tightens up width on tablets a little.
Bug: 5160847
Change-Id: Ie8da1f9d2ec0e53421a435897fc9bb50991a20b6
- tweaked padding for 7" portrait tablets (required copying tablet
layout to two spots so that the 10" portrait tablets still work
normally)
- removed checkboxes on phones and toyed with fonts
Bug: 5165210
Bug: 5156282
Change-Id: Idd3a1c53dc32fefc14854b08a0a9eaebeb5d2f44
The "message saved as draft" toast is distracting when the user is going
to pick an attachment. Stop it from happening.
Bug: 5156507
Change-Id: I3c02ec9c0a17c9d5ea3d02377cfc6d6cd8870a49
- the "offline" icon isn't much use for a lot of our (non-gmail) users
anyways and it takes precious real estate in the header
Bug: 5147565
Change-Id: Iea3df0c1c3756ff749e50ce46a7437488dc169e7
- openMessageSync for EML files touches the provider since it copies
things into the Message table from temporary attachment data. Therefore,
acting on a reload of an EML message will trigger the observer, and do
the same thing.
- still unsure when or how this regressed, but I can't see the previous
behavior being correct regardless
Bug: 5150886
Change-Id: Icfcea7beb95b0fbb026184d6fdecc93c810569ef
* Caching Senders isn't a great idea; during validation, it causes
the bug referenced below. It's a small optimization anyway, so
we'll just get rid of the cache.
* Also, remove unused code
Bug: 5144603
Change-Id: I539284dfa6d457fffd5cb011b8e1db5881249636
Always populate the contentDesription rather than only
when dispatchPopulateAccessibilityEvent() is called. Makes
life easier for testing.
Bug: 5129286
Change-Id: Ide897b81ff30708b9d637cebbf8eb63f06084a74
Creates isTesting flag in MessageListItem. When set to true,
populates the contentDescription of each message on initialization
rather than on touch.
Bug: 5129286
Change-Id: Ia0df93bf7399859a750a3fa01e5429436b9daf16
This makes "Inbox" the top level with the mailbox list one level under.
All "up"/"back" navigation is now identical and will take you upwards
towards the inbox before falling off to the launcher.
This uses a kludge and the "backstack" of the activity is not actually
represented now by the mPreviousFragment variable; it just uses tricker
in the onBackPressed()/shouldPopFromBackStack() calls to do the right
thing.
Bug: 5111629
Change-Id: Ide88efc78fe4f40d89b5ab83c480318e81902554
This eliminates the excessive padding on the left and makes the hint
text behave according to the new spec (since it uses the new action view
expanded mode).
A later CL will actually change the item to use the action view
facilities of the framework (so we don't have to manage our own custom
views).
Bug: 5109953
Change-Id: Ia3e4a1e64e65b3b8bb3e708b31636f4186acfd46
Removes done button from edit quick resposnses fragment and
centers the "create new" button.
Bug: 5111173
Change-Id: Ia847725e5d3bdc67426f76dd386f2263befe4189
This is needed so Exchange can fire up Email activities.
No change other than the move.
Bug: 5122497
Change-Id: I6ee3f61654745fafd444314ecf75eb8ae6bbd01d
There are cases when subject and snippet re null. If the MessageListItem
is not being recycled (i.e. it's the first time), this can be detected
as "no change from the previous state (of being empty)", which doesn't
initialize mText.
Bug: 5129307
Change-Id: I6df910fb365b7e8c1dd298f787d21fbb438830fd
- hide sync options for mailboxes that aren't actually syncable
- hide search icon for any mailboxes that don't have any server
counterparts
Bug: 5086134
Change-Id: I60d5e5d1225a946464c5ea273c7d4b9299f433e5
- Since the Email and Exchange processes do not share UID, we need to
ensure the call to the KeyChain to request the certificate happens in
the Exchange process
- Misc UI fixes so it's not so ugly
Bug: 5117682
Change-Id: If80698850902e0178eb0998493b4cf4b89e2a15c
- this still needs an asset for the "checkmark" button when showing
"always show pictures" prompt - using a checkbox on state as a
placeholder but it's probably not the best thing for it
Bug: 5037485
Change-Id: Iaa1d0f865bf0c01fde0b0cb37ea1c395345ed582
* Heh.
* We were using the login from the HostAuth in creating the Account
Manager account, but it should be the email address from the
Account itself; in IMAP (and usually in POP3) these are the same
* But not for juno.com!
* Updated unit test coming in another CL (tests are broken in a
strange way, and the bug is FAST-blocker)
Bug: 5110013
Change-Id: Id11799e8b30a0420804f00c2d2f265e44e39c4c0
- immediate issue was the the mIsFirstLoad flag was on the Loader
instead of the list - since the Loader is retained on rotation, we
didn't the initial list setup after rotation leaving the list in an
infinite "loading" state
- second issue was that list scroll state was being handled poorly - it
was always saved and restored needlessly. However, if two subsequent
loads happened prior to a layout, saving the list state actually saved
bad values (the restored state only seems to take effect after layout)
- third issue was the footer mode was being handled poorly as well - it
was always updated, which required re-setting the adapter every time,
which reset the scroll position. This was why we were always trying to
save/restore scroll position.
Overall this should speed up the list loading and data updates in the
list by a bunch.
Bug: 5110000
Change-Id: Id2f6db928c095ae10ee55b40e7e9241d70e0bebe
- changed activated font to white
- ensure activated bg is set even for wide (as it shows for a split
second when you select a message right before the slide animation)
- attempt to make the animation not so abrupt
Bug: 5110992
Change-Id: Ie05e0a6a09afb97155b26d28672d4a2fb79cc563
- make it take up different size on phones and tablets (also landscape
phone/portrait phone)
- move unread count outside of the spinner area
Bug: 5108972
Bug: 5111250
Change-Id: I2c16bbb52ce53bbf1c8fe08fd78f1a4b4afd4ccf
- reduces number of "modes" to just two: normal and wide
- consolidate the normal/narrow modes for phone and tablet (as per spec)
with the only diff on the tablet being side paddings
- fix issue with "white arrow" visual being shown in phone when tapping
on a message
- make touch computations be resilient to padding values instead of
assuming that the check/star icons are right at the left/right
Bug: 5103823
Change-Id: I23f967454f7744d9c59256625e302e54a353994a
* Two of the upgrades (v21->v22 and v25->v26) need to be fixed so
that they don't reference columns that might not exist.
* Oops
Bug: 4439595
Change-Id: I4a8c556be22bb85fb78807416cd1d6b81c6ef118
- updated checkboxes (new ones for sw600dp and phone)
ones for phone)
- updated stars (new ones for sw600dp and phone)
- added existing cc/bcc icon to menu item
- updated reply/replyall/forward actions to dark themed items (renames
involved)
- update message list backgrounds (new ones for hdpi,xhdpi, renamed
everything so that there is no message_ or conversation_
suffixes, also added missing states for some of the selectors)
Change-Id: I1b4f49f206b846566870f5b430e3c6386e621a0c
* While investigating the referenced bug, it was discovered that
canceling the "security required" notification (with "X", rather
than the "cancel" option in the dialog) causes the notification
to be unavailable until a reboot
* This puts the account needing a security update in the position
of being unsyncable, and might explain the referenced bug (we
have no confirmation of that step; on the other hand, the tester
can't now reproduce the problem, so an unusual action like this
is to be expected)
* The fix consists of making this particular notification "ongoing",
which prevents the user from dismissing it; arguably, this should
always have been the case anyway...
* Consider this fix for backport into LTE and MR2 branches
Bug: 5072343
Change-Id: Ia7419236cf9389380d1e079b1a9a6f425015c487
- adds a loading state to search so the user isn't left with a blank
screen for several seconds
- adds a timeout so that a warning message is shown for results that
take over 10 seconds
- use default loading/no message views in ListFragment so we don't have
to manager our own stuff
Bug: 5014107
Bug: 5037618
Change-Id: I8b03fa0967055989156c7777901affc777c4fae7
This shares the e-mail address of the currently shown account
over P2P NFC links. Note that the currently set account must
be updated actively, because the callback to create the message
comes from one of the NFC threads, which don't have permissions
to retrieve the account and the correspondig e-mail address.
Change-Id: I12e48a3787d469179e7ca074429106ed24e3a212
We seemed to not properly fallback to querying the database if the cache
did not contain a mailbox of a specific type. We may want to consider
caching mailboxes related to PIM data, but for now this is a quick fix.
Also fixes unit tests.
Bug: 5019661
Change-Id: Idcac0a6f15aa7f174890ae586f478fbb8f6e05b7
This will avoid cases where the user is permanently stuck, if we fail to
error out when a failed sync occurs or for any reason.
Bug: 5032763
Change-Id: Ib82a62add767d13dc844a90e5ea4147d3ada59dd
This info used to be shown in the top right of the status bar in GB but
that is no longer there. So before this change there was no way to tell
who you were sending as.
Bug: 5069124
Change-Id: I10d687a5fd221e65ecfc71b61cccf306492e27b8
Seems like POP envelopes could get into the database and tickle the
NotificationController even before we got the full subject/sender. Just
ignore those things until the basic info is loaded.
Bug: 5061271
Change-Id: Iadfbff8a1615d2644880f5cae3727768f4f9549a
- use title as ticker text
- also properly play notification sounds on new messages. Before, if you
left a notification unread, and a new message comes in, no sound would
be played. Since fixing that, it introduces another issue where on
initial sync, tons of new messages come in (and the sync could take > 1
min). We throttle them with a 15 second interval. The notification is
always updated to reflect the most up to date information, but sounds
will never be played closer than 15 seconds together.
Bug: 5020191
Bug: 5067059
Change-Id: I5ca474fd3b210ee856035bd78bd72931da80fe40
We were hiding the cc/bcc menu option, but on tablets that is a visible
button on the UI and not in the menu. whoops.
Bug: 5067057
Change-Id: I10ecaf115b589b9200529f6ea7703428456b8f0f
This prevents accessing a potentially closed cursor when doing batch
operations that will inevitable cause the the list to be reloaded (and
cursor to be invalidated) as the first of the messages are
touched
Bug: 5051730
Change-Id: I90328ee02eafe6ad238d8c57e88a3d96259f6547
When editing quick responses, displays an appropriate
message letting users know that there are no quick responses.
Additionally, the MessageCompose activity will only show "insert quick
responses" when at least one exists.
Bug: 4948180
Change-Id: I1191bd54d6e64f990b6d6830f0837579d7a6918c
Shortcut name is now the name of folder when it's a non-inbox
folder; otherwise it's the account name. Previously was
always account name.
Bug: 4903490
Change-Id: I15b4024d28db6a48464e423db887bdca99132423
If the account is in the process of being deleted, large parts of its
data may be being removed in parallel with notification processing. We
never handled this very well.
Bug: 5058333
Change-Id: Ic588b68438a9c5829e7e3fd5c8d52e21a037b9f4
- the container is the one that should be visible/gone - individual
fields should just be visible
- also do drive by javadoc fixes
Bug: 5052310
Change-Id: I45c4b6b7f94b2b62ac94eeff0ab97bf34c9e117a
We were hiding the search icon from the actionbar but didn't take into
account the use of a hardware button.
Bug: 5051691
Change-Id: I2e0bfd1d0bb4faa3238e567c02189894db5f6c44
This fixes a crash on account deletion, leaving around bad accounts that
were in limbo
Also remove a test for an unsupported operation
Bug: 5051951
Change-Id: Ieebc7f769075614ae1a656cf123d8ce0313e611d
On second thought, it's probably best to stick with the same account if
I can't find a particular folder. This at least is less jarring if the
user has multiple accounts.
Change-Id: Ifd5d631b220e260399681008ac17203f5451c8ff
- ensure that the commitAllowingStateLoss is actually not dangerous - we
only had one case I could see where we were actually doing a transaction
from a loader callback and I fixed that just now to not do any
transactions.
Change-Id: I21e11138f70eb2ce953a5ba54119ca46555f465d
* This CL fixes the referenced bug, but it does NOT explain how
mAccount; best guess is that the process was killed and then
restarted when the result from DPM was available.
* Assuming this is the case, we remove the background task loading
mAccount, avoiding a possible race.
* Also, it's not clear why clearNotifications didn't use the
account id argument; what if there's more than one account that
uses security? Filing a bug about this.
Bug: 5048912
Change-Id: I734834337ab6e409d77624e7c7370350de76becb
* Move AccountReconciler to the Email app (from EmailCommon)
* Ensure that Controller.deleteAccountSync() performs ALL actions
needed to clean up after an account deletion (delete attachment
files, reset policies, refresh the UI, etc.)
* Add reconcileAccounts() API to AccountService
* Remove accountDeleted() and restoreAccountsIfNeede() from the
AccountService API
* Remove unused callback
Bug: 4883073
Bug: 4767084
Change-Id: I43ffaf009db1a6f306bb0f2a74fb4dd3b2c4b966
* Not sure how this could have happened, except possibly for some
race condition
* Let's make sure it's impossible
Bug: 5032454
Change-Id: Ibd4de22dc5298fbaaf224cf4286f63bdc50aa7b9
- include settings in menu in message view
- remove "show all mailboxes" from message view
- rename "Account Settings" to "Settings"
Bug: 5039294
Change-Id: Ic2dcbe8fe6e2bd10cc5d790a74c49a7159b59cab
* This prevents the possibility of RejectedExecutionException when
selecting large numbers of items
Change-Id: I8f9ba287d69021fdb99b4a8a30cc79755f669b97
- since listContext can be null, this code was not safe.
we also filter out the search mailbox too, so it's no longer needed.
- don't ask to highlight a mailbox if doing a search
- remove a call in MailboxListFragment that was unconditionally telling
callbacks that something was selected when we started loading - this was
technically lying and if the item isn't in the list that was selected,
nothing should be called (as in the case of search). This was just an
optimization anyways and that callback is invoked later when the mailbox
list load completes.
Bug: 5037629
Change-Id: Id31c6795af9e64fa8682b67de9ab90540ee660df
Note: all unicode sending unit tests are broken due to chip issues. I've
filed a separate bug on that.
Bug: 5012204
Change-Id: I17392f65e5bd8349780b79d9cbe10492d8e7a7d9
* We waited to clear the incomplete flag until security was agreed
to, but this can lead to accounts left incomplete; we now clear
the flag as soon as the AccountManager account is created (by
convention, this is when the EmailProvider account is complete)
* Also, allow onDone() to be called more than once with a saved
account, leaving cleanly, rather than throwing a runtime
exception
Bug: 5016792
Change-Id: Ib5fc44ac045a1dd9bd5d63f922c037ed637d5341
TalkBack functions properly with MessageList items, as well as
"reply," "reply-all," and "forward" buttons while viewing messages.
It is now also possible to switch accounts using only a dpad
or trackball. Finally, EditText fields in account setup also work
with TalkBack now.
Checkmarks don't work with Talkback, but this I have confirmed and
reported it as frameworks bug.
Change-Id: I7f72682a517eef4fa122241c675026fe7997ac64
- This creates a "more" icon in portrait and shows all three actions
(reply/replyall/forward) in landscape.
- also makes the star visible by default (hiding it in EML view)
Change-Id: Iefff7c0717cfda4dc91218b0d490775294c96103
While creating or editing a quick response, disables the save
button when the edit text is empty. Also, now shows the keyboard
on the phone as soon as the dialog box pops up to edit/create
a quick response.
Bug: 5011277
Change-Id: I9926d07cae0e527a7c08a4cc556a9569a91d2f33
The default recent list should be pre-populated and fall off the list as
normal. The previous implementation showed a default list if there were
no touched mailboxes, but then the default list disappeared as soon as
there was one touched.
Bug: 5020673
Change-Id: Ifad607a9d36feff837ab42d039ce9209f223f345
Adding and removing a star triggers the appropriate accessibility
In incoming/outgoing settings, added EditText contentDescriptions.
Change-Id: Ibab461f1425b3ebf3579ebc1d0b36d1a9a5efdb2
On phones, opening "incoming settings" no longer immediately displays
the warning message associated with editing the username field. It now
only displays when the username is focused by the user.
Bug: 4282856
Change-Id: Ic0a74fa91a0f9cff66565372872e182a0eaec779
Since tablet already has to/cc/bcc labels, don't show the hint
text -- only do so when labels don't exist.
Bug: 5019806
Change-Id: I039de06e2576688e654fb0504a027cd9b9b67def