* Handle replied in new messages and updates
* Code added for upsyncing replied state, but the CL for
setting this state isn't yet submitted
Change-Id: I6f3ff56475d70f686f96ed6a84fae3468f42b1c8
The app is spending a lot of time in startup inflating XML. I suspect a
lot of it is due to the refreshActionBar() calls.
On a normal startup with NO refresh, the action bar was rebuilt 6 times.
If a refresh happens, the refresh callbacks get called in rapid
succession (20+ successive calls is not uncommon), which seemed really
wasteful.
Change-Id: I05feb56ba7fafb109d820328f591526945ca0a5f
In the common case, we don't need the "waiting for sync..." message, so
avoid inflation in those cases and just inflate on demand.
Also do a quick drive-by fix for the error message being pushed in way
too much on phones
Change-Id: Ie7a8472194659a52069d1ee21e0a0cb9b6fc91ba
Adhere to RFC2821 Sec. 4.1.3 Address Literals should be enclosed by brackets and
prefixed with 'IPv6:' if the sender is an IPv6 host
Original author: Jon Starling
Bug: 4207470
Change-Id: Id327930001188186713e38d1ce8ecc1dad8cfbc0
This is a manual cherry-pick of c379ebe372
This reverts commit 7fd14be804
The introduction of proper SD cards breaks the invariant that "external"
storage can be encrypted. Unfortunately, this means that accounts with
that policy bit set will have to be removed for now.
Accounts with the security policy set will be forced to go through
security provisioning on the next sync, using the regular mechanisms of
showing a notification with "Security update required", and then having
it fail. :(
Bug: 4466311
Change-Id: I68119b14f8d198779c2073296e228bc6772136ee
It was accidentally happening because search doesn't show the mailbox
list, but explicit > implicit.
Change-Id: Ifb8354dbb366f4c8328bef31d4e251166ae6876a
- also bail search mode if we can't find an account. it probably doesn't
matter _that_ much since the UIController will also bail, but just in
case...
Change-Id: I0b601186362e048de83b53617e529bbada1e8db5
When a message has been replied to or forwarded by the user in
Exchange or IMAP, it now displays the appropriate symbol in the
message list view. (Right now it's just a test image based on the
reply/forward/replyall images until the assets come in.)
Bug: 4313491
Change-Id: I525e55179d62b6ab08df37cb9bfe9fdd9fefb908
We should eventually replace all with EmailAsyncTask, but it's the safest thing
we can do now to avoid regression.
Change-Id: I78bfc4fb2be1dcfadeb7f90092ec7adb35c1d393
Also added test.
(For some reason the message count doesn't get set properly on tests...
I'll investigate it when I get around to it...)
Change-Id: I83f3b6f2079da06b2d4973419d2296e6492de1d3
If the initial mailbox has child mailboxes, we should show the drilled-in
view by default, EXCEPT if the initial mailbox is inbox, in which case
we want to show the root view.
(And we drill-in if the user taps Inbox.)
Bug 4901592
Change-Id: Idc1462030cf8d971dd4dcbba647ac3a64cab6819
The check settings fragment could potentially take a while to finish,
and may finish after the activity has shut down. Ensure that the
callbacks don't go through if that happens (usually means the user
backed out before it finished)
Bug: 4689161
Change-Id: Ie8e052f03a8f8f2884c0fe1e334a91c02444f96c
Pressing the email widget's logo will open up the account's inbox.
Also, composing a new email open the compose window for that
account instead of an arbitrary account as before.
Bug: 3366819
Change-Id: I03c0d6973f5428b2044e755f41fcc6f4da225afa
We suspect the underlying bug is b/4981556 but it is a framework issue
which needs time to fix. Some fragment state is not restored properly
when going through orientation change, so navigation shortly after that
will always crash.
Change-Id: Id6b8714c2aeac5f6bf09e82aea5459bb19d0054d
Even with CL the account spinner on the starred mailbox looks still a bit
weird because the spinner turns into the combined mode even if you select
the starred mailbox from a normail account's mailbox list, but at least
you'll be able to get out of the starred mailbox.
Change-Id: I26a256be39f070acece67f4a308a8525a6be1d3b
- shows the title of the message in the action bar (visuals not final -
need to extend the width and hide the account name)
- ensures that tapping up/back from a message view from a search result
list doesn't exit search
- ensures that tapping "app up" from a collapsible tablet view doesn't
exist the search unless the left pane is uncollapsed
Change-Id: I2b21a430d12148cf72237060c05312c7a23e2b3b
There are needed for the back navigation when a message
is opened from a deep link, but now that we always have a list context
they're not necessary.
Change-Id: Iba2d0b2f31f4539f6e872970b514574347e248c5
- Moved MessageOrderManager code from 2-pabe to the base class.
- Most of the code is shared between 1-pane and 2-pane.
- Also fixed the bug where we re-created MessageOrderManager every time
the user taps newer/older, which was the reson the newer/older button
temporarily got disabled when you tapped them.
Before this CL we stopped MOM in uninstallMessageViewFragment, but now that
we don't reuse fragments this means we stops MOM when we remove the current
message view, and re-created a new one when a new message view is created.
Now we stop MOM when the right pane gets hidden (2pane) or when showing
the mailbox/message list (1pane).
- Also removed a now unused callback onMessageShown() from MessageViewFragment.
We used to update MOM on this event, but now we do this in
installMessageViweFramgment().
Bug 4575586
Change-Id: Idc4aba184f318e0c086afc29dcbe42364e2b51b3
It was caused by the fact that we show the combined starred mailbox
on each account's mailbox list.
Beacuse of this, when you open the starred mailbox on non-combined view,
we pass a normal account ID + the combined starred mailbox ID to the
AccountsLoader, which then thinks that because the account ID is not
ACCOUNT_ID_COMBINED_VIEW the mailbox ID must be of a regular mailbox,
issues a query to get mailbox info, and crashes because the mailbox
is virtual.
- Also fixed the issue that we don't show message count on the account
spinner for combined mailboxes.
bug 4971181
Change-Id: Iaa13b362505b8babc7f7ea8a03ddf5494736dc2d
This way we don't have to explicitly filter it in all the different
places we do selections on mailboxes.
Note that I didn't create an upgrade path for this. The only people with
search mailboxes are probably developers right now, and worst case for
people who experimented, they will just get the search mailbox visible
Change-Id: I9a0bf6df9985418d467a7348ed99a36521641b89
- update hint based on the mailbox being searched
- ensure that we use the original searched mailbox as the mailbox to
search for subsequent search (i.e. a search while we're viewing search
results) and not the search mailbox
Change-Id: Ic8663272173ce386dcd13fdf0369e918fb895be8
* ImapFolder is currently very unsafe for use by multiple threads,
causing, among other things, the referenced bug
* Since ImapFolder is very lightweight, there's no particularly good
reason to be caching them anyway
* Rename isOpenForTest to isOpen
Bug: 4972084
Change-Id: I2bf17b9cfc8549a222e991f3e59abfd00a4d3afd
* Remove unused argument from newInstance/constructor
* Create ServiceStore class, the superclass of ExchangeStore (and,
eventually, all Stores, until they can go away completely)
Change-Id: Ic5237236c5349ecf006538c58b63c1efe8e4ea61
Renamed onPostExecute to onSuccess and made sure it won't called
if a task is cancelled in time.
Also removed isCancelled(). To implement it right we should make sure
that onPostExecute() isn't finished when setting mCancelled, but it's a bit
of a pain to implement right, and we don't really have to use it.
Change-Id: I3a0baf504506ffc4952a5553f7098a8415842fa3
- Back from the starred mailbox now works.
- Combined view now has the "show all folders" in the spinner.
- Null-out the list context when opening the mailbox list.
- Properly restore the list context when popping from the back stack.
- Disable the account spinner dropdown on the mailbox list.
- Hide the little triangle thing at the right bottom corner of the spinner
when it's not selectable.
Bug 4836064
Bug 4689313
Change-Id: I41d1b6c7024953407b260f5b4b63fbc366e538ca
This loader will abstract away the waiting for the controller to cleanup
the existing contents of the search mailbox
After some additional, to-be-done plumbing, I'd like
Controller.searchMessages to return some results info (like # of results
at the least) so that the SearchCursor returned can relay that
information to the client (which can then do a lot more interesting
things at that point).
Change-Id: Ifcba0ddf7170c56dac9f3b44128988a5aa4ca887
To fix "IllegalStateException: Can not perform this action after
onSaveInstanceState".
Bug 4522010
Change-Id: I640fab0d51b02467f2f91d0d33091e1daac356fd
- Don't use the action bar spinner.
Instead use a custom view to show the current account.
(It's not a spinner; now we show the dropdown list by ourselves,
which gives us more detailed control.)
- Also show the current mailbox name/unread count with the account name.
- Removed the mailbox info loader in ABC.
Instead, now the AccountSelectorAdapter loader loads the current
account/mailbox name, and the unread count as extras.
- Now ABC.Callback.onMailboxSelected passed an account ID as well
as a mailbox ID.
- There's new code paths that can cause the "fragment transaction in
onLoadFinished" exception. We need to fix this properly, but
for now we just use commitAllowingStateLoss().
Bug 4948352
Change-Id: I73bb8b7530f8328ca1c86382ac0a54086ad061d7
* Rename ExchangeUtils to EmailServiceUtils
* Create calls for Exchange to use (eventually remove these)
* Get rid of lots of nonsense in ExchangeStore
Change-Id: Ic538cfe1de57eca24088ee1f590264283d12f511
This is the UI part for remembering to show images based on senders.
It does not persist anything yet.
Change-Id: Iec40d9d1ace3661dabca2eed31ea6d0893be71e0
frameworks/base
Extended KeyChain.chooserPrivateKeyAlias to allow caller to supply
preferred choice to be selected in chooser. This allows Email
settings to highlight the current choice when allowing user to
change settings.
keystore/java/android/security/KeyChain.java
api/current.txt
Implemented KeyChain functionality to pass host and port
information to KeyChainActivity for display.
keystore/java/android/security/KeyChain.java
KeyChain now sends a PendingIntent as part of the Intent it sends
to the KeyChainActivity which can be used to identify the caller
in reliable way.
keystore/java/android/security/KeyChain.java
Moved .pfx/.p12/.cer/.crt constants to Credentials for reuse.
Added Credentials.install variant with no value for use from KeyChainActivity
keystore/java/android/security/Credentials.java
packages/apps/CertInstaller
Source of extension constants now in Credentials
src/com/android/certinstaller/CertFile.java
packages/apps/Browser
Have browser supply host and port information to KeyChain.choosePrivateKeyAlias
Tracking KeyChain.choosePrivateKeyAlias API change
src/com/android/browser/Tab.java
packages/apps/Email
Tracking KeyChain.choosePrivateKeyAlias API change
src/com/android/email/view/CertificateSelector.java
packages/apps/KeyChain
KeyChain now depends on bouncycastle X509Name for formatting
X500Principals, since the 4 X500Principal formatting options could
not format emailAddress attributes in a human readable way and its
the most important attribute to display for client certificates in
most cases.
Android.mk
Changing the UI to a dialog, make the activity style transparent.
AndroidManifest.xml
res/values/styles.xml
Layout for chooser dialog
res/layout/cert_chooser.xml
Layout for list items in chooser
res/layout/cert_item.xml
New resources for dialog including comments for translators.
res/values/strings.xml
New dialog based KeyChainActivity. Now also shows requesting app
and requesting server. Now can preselect a specified alias. New
link directly to CertInstaller.
src/com/android/keychain/KeyChainActivity.java
Fix KeyChainTestActivity to work with TestKeyStore changes that
were causing network activity on the UI to look up the name of
localhost. Also track KeyChain.choosePrivateKeyAlias API change.
tests/src/com/android/keychain/tests/KeyChainTestActivity.java
Change-Id: I131f7708cede39669491a23ead3860907460d31f
* Use same code for handling search mailbox for IMAP and EAS
* Allow "Load More" for EAS search mailbox
Change-Id: Id4a009c79a95302d627ff25f85e9c65bc461826f
* Add protocolSearchInfo column to Message table; this can be used
to store information related to search results. For IMAP, we
store the serverId of the mailbox that the message lives in on
the server
* Add upgrade code for this column
* Change MessagingController to use the proper serverId for remote
operations, depending on whether the Message is a search result
or not
* Fix some smaller issues with earlier code
Change-Id: I0c7f1d89a4659b95701d02646c0e8426680e2f6a