Basic changes for the new UI. At this point we don't know what the new phone
UI will look like, so I didn't bother trying to preserve the old behavior on
the phone UI. The changes will affect both the phone UI and the tablet UI.
- Send, Save Draft, and Discard are now action bar commands.
- Add CC/BCC and Add Attachment are now regular buttons.
- Activity title changed to "Compose"
- Some string changes per new wireframe
Further changes (actual layout changes for the latest wireframe) should be made
only for the xlarge layout.
Change-Id: I68c9c37dfdca6736b1e35053e7f196800fcfce2e
* Drag & Drop "move to folder" preliminary implementation
* Use "drag handle" button to initiate drag
* Use the message list item itself as the drag thumbnail for
one item; "Move N messages" for multiple (not implemented)
* Disable MailboxList update during drag
* Use ListView itself as drag/drop target
Bug: 3138004
Change-Id: I9243e4f583cf91caa1b9dd04fd64d52e8b28fa30
* new checkbox in debug fragment
* saved value in prefs so it's sticky
* each Activity calls a helper to enable/disable per that flag
Change-Id: I1af1ae9f401bc746cc97da00dfb0e06407b79d46
* For now, clicking on the notification takes the user to the
Welcome activity, as we don't have final flows for the new
account setup UI
* Need comment on strings; the problem is that notification
text must be rather short if we're to use the standard
notification display. It looks like newer UI will allow
3 lines instead of 2, however.
* Tested w/ IMAP, POP3, EAS, and SMTP
Bug: 2322253
Change-Id: I7ed6fa5599179870cbcdb14af062e956eff37ec5
Added the "Include text" checkbox according to the latest mock.
Before:
- We removed original message when the user pressed X.
Now:
- We save the original message all the way till the draft is sent.
- The "Include text" check state is saved in the db. (to Message.mFlags)
Bug 3072414
Change-Id: Ie7bcca23bb6a02d676700027b0b6cb94b6627236
Show this when there's no messages, and no "Load more messages" footer.
i.e. Only Outbox, Drafts, and exchange mailboxes can show "No messages".
Also removed an obsolete comment.
Bug 2363624
Change-Id: If483d33cfacb186d0fe54b4f4382333a332be84c
Added "tabs" to the message view according to the latset mock.
This removes the necessity of putting a WebView inside a ScrollView,
which caused the infinitely-growing email bug (issue 6882).
Right now the tabs are actually just Buttons. Complete visual refresh
should follow it.
http://code.google.com/p/android/issues/detail?id=6882
Bug 2349275
Change-Id: I897a3a32e0dd7a90d637ac5ea1d47e5e65a1eabe
Moved the buttons to the header. All other buttons below the message view
go away, so I just hid the old buttons.
Also now we stop trying to hide these buttons when entering contextual mode,
which fixes bug 3044284: Message view buttons get disabled when closing
quick contact
Assets were temporarily copied from gmail.
Change-Id: Ib178c6221dfab02832a10d0c0441044e4969fb70
- Now we declare all fragments in the layouts.
- Added clearContent() to MessageList/MessageView to keep them calm when not
used. (e.g. MessageView.clearContent() will be called when closing message
view and going back to the mailbox list+message list screen.)
- Some of the processes have moved from onStop to onPause.
- Now that we don't use the fragment transaction, the "restored fragments"
has been removed, and the separation between selectXxx() methods and
updateXxx() methods are gone.
Bug 3045555
Bug 3041502
Change-Id: I958897a8a38bccea1dfed7cfcd900e6dd52d2eed
Implement basic behavior of the new layout. Supports collapsing/expanding
message list on portrait.
TODO Collapsing the middle pane should cancel the selection mode on
message list
TODO Implement animation
TODO On STATE_PORTRAIT_MIDDLE_EXPANDED state, right pane should be pushed out,
rather than squished.
Change-Id: I0306516845de3a1f05a102864c3dc4aba809a49a
Also make sure the highlighted mailbox is always visible on the mailbox list.
MessageListFragment now just uses the default background color, which means
it no longer changes background color for unread messages or checked messages.
This should be re-implemented if necessary with the newer wireframe.
Change-Id: I9bfbe9f0711ea4ab56be27778b00298d3033123b
In message view mode, show MessageListFragment on the left pane.
TODO: Highlight opened message on message list
TODO: If the opened message is moved/deleted/starred/etc, update
message view
TODO: Collapsible left pane on portrait
Change-Id: I9b26f7291648da0e08bc526b79305ab65ce4d926
The latest framework change made it very easy to do this.
We no longer need to implement Checkable by ourselves.
Change-Id: I9264b157b6600659597ca8d525a4288d7bb9c470
Create a custom view containing the bottons below MVF
(delete, move, reply, etc) and let MVF own this.
These buttons used to be owned by the XL activity itself, because
the UI for these commands will most likely be totally different
from the tablet UI, so the fragment having them looked wrong.
However, this made it harder to make changes suggested by the latest
mock, such as "put reply/forward in the message header".
I think the buttons are semantically part of the message view anyway,
so the fragment owning UI for these commands is probably the way to go.
(And let's worry about the phone UI later.)
Reason for the use of a custom view is that it will make it easier
to make non-trivial UI changes, e.g. "combine reply, reply-all and
forward and make it dropdown."
Also removed obsolete TODOs from MessageListXL.
Change-Id: Ibf93f4c70fe07bdbbe33d2adb6bbd2b96812830d
* Remove AccountSetupCheckSettings and related resources
* Remove all handling of EDIT flow in setup activities
Change-Id: I7b87d87978533b52b9c974d006920749389418d8
- Added "quick contact badge" to MessageView
- Removed PresenceUpdater, and added new implementation based
on Loader, which is much simpler.
- Changed some text color, so they're visible now.
Bug 2988625
Change-Id: I688a3217178ee8fd0b7245c0ab36a633687ea525
* All setup activities given UI makeover:
* Remove legacy themes from manifest - exposes default holo theme
* Remove bottom row button(s)
* Replace with action bar button(s)
* No change to workflow or activity/fragment organization
Change-Id: I07ce11a0a2b4b767b5ac111d466e68400fe0f30b
The UI changes a bit - there is no separator
between the local contacts and directories.
Will bring the separator back if asked, but
most likely simply as a thick line.
Change-Id: Idfc990deff41b30d63bd8289731694e3d9a00fb6
It's basically a partial revert of I3cb6c45c, with some clean-ups.
Also removed mHandler, which was unused.
Bug 2949762
Change-Id: Ib4e673c5829b99ba45fec449bffb62df84555a01
- Changed the default theme to Light.Holo
- MessageCompose now has ActionBar.
- Removed unnecessary MessageCompose menu items.
- Also removed "Add Account" menu from MessageListXL.
(Use the + button on account settings)
- Fixed "calender response section invisible" bug.
Bug 2926517
Change-Id: Id27632ec82dad158f43b0903dbc2cb219188400d
* Use ListView's CHOICE_MODE_SINGLE mode to select list item.
* Added a view that implements Checkable to change background
for selected item.
Change-Id: Id55999b3d024ad1852e2b8c6436cd22ef255cf95
* Create AttachmentDownloadService to manage all attachment downloads
1) User requested
2) Required for email forwarding
3) Opportunistic downloads to enhance offline use
* New attachment related UI (pending UX approval, of course)
1) MessageView (attachment actions, progress bar, etc.)
2) MessageCompose (attachments for forwarded messages)
3) Associated toasts, notifications, etc.
TODO:
* Unit tests
* Cache Management (separate CL)
Change-Id: I7864a5fb1c3f4f2be68d98341a971edc6cbacfe1
It works for regular outboxes. Unfortunately it doesn't for
Combined Outbox, due to a bug in RefreshManager, which I'll fix
in a separate CL. (The fix might be rather large.)
Change-Id: Ib904e2c672801debe3dd64e4bb0a464564d098da
- Use the class attribute instead of android:name in fragment tags.
- Use FragmentManager rather than openFragmentTransaction.
(There's a change on the PreferenceHeader tag too, but seems like we're
not using it.)
Bug 2922220
Change-Id: If604a97ac73b9ad7d84e453d36beb84bf31ff98f
This is phase 1, which simply replaces the phone UX with a fragment-based
equivalent. A subsequent CL will convert it to a large-format multi-pane
version.
Also fix a latent bug in the signatures of the Incoming & Outgoing
settings, both in the reflection code and in the proguard flags.
Change-Id: I86e857af8b9573c0d6070bb21053ce65bb7fe8a0
- Remove AsyncTasks, and use CursorLoader to load data.
- Get message counts for the drafts/trash mailboxes directly from
the db column.
- Remove obsolete code from MailboxesAdapter.
Change-Id: I93c72977c19b60581e1169ba9bd429912ba3e68f
Forgot to fix the resource file.
Two-pane is okay because we don't put the class name in layouts.
(We create fragments at runtime.)
Bug 2887134
Change-Id: I033c2283be4b104941af34a1fbb5e4663337ef68
Break MessageViewFragment up into two fragments, MessageViewFragment, which
is used to show regular messages, and MessageFileViewFragment, which shows
EML messages. (And their base class, MessageViewFragmentBase.)
MessageViewFragmentBase's javadoc has a class diagram.
MessageViewFragment is actually named MessageViewFragment2 at this point
so that GIT correctly finds out the rename from MessageViewFragment to
MessageViewFragmentBase. I'll rename it back in a following CL.
Also added very basic unit tests for MessageView and MessageFileView.
At this point, they just make sure the activities really open and show
messages without exceptions.
I feel like the current naming schema for the activities/fragments is
kinda confusing. Let me know if you come up with better names.
Change-Id: Iff948f4b68cfdb7c1e68f225927b0ce58d34766b
MessageView for regular messages and MessageFileView for EML files.
I'll break down MessageViewFragment too.
Change-Id: Iae66f33d8fb5de58084ab4aef31588e9743c5a18
There are two major, interrelated parts to this CL:
1) Clean up the activities to reduce the use of Intents to pass
information between activities; instead, we use a common
SetupData structure that automatically saved/restored as necessary
during the setup flow. A fair amount of code and inconsistent
use of Bundle extras has been eliminated in the process.
* Create SetupData structure, setters/getters, and initialization
methods to simplify the preservation of state during setup flow
* Remove all state/flow extras from Intents; Intents now only
specify the Activity to be started, which should greatly simplify
the transition to Fragments.
* Remove all state/flow fields from Activities
* Modify existing setup activity unit tests and confirm tests pass
2) Create AccountManager accounts for POP/IMAP email accounts to
provide consistency in user experience. Also, internal flows are
now identical as between account types.
* Move account reconciliation from SyncManager to MailService, so
that reconciliation is consistent between email and exchange
accounts; move unit tests as appropriate
* Add a "Sync Email" setting for POP/IMAP/EAS
* Change MailService to respect the "Sync Email" setting in
Settings -> Accounts & sync
* Create PopImapSyncAdapterService to handle manual POP/IMAP sync as
requested by SyncManager; add EmailSyncAdapterService to perform
the same function for EAS
* Use new PopImapAuthenticatorService to add AccountManager accounts
for POP/IMAP accounts; setup appropriate stanzas in AndroidManifest
and add related xml files
* Update AccountSettings to use SetupData
Miscellaneous other changes:
* Only allow valid port numbers in incoming/outgoing setup
Bug: 1712475
Change-Id: Ibdac52fb2c5578b86bf3992ddb1acd10f162391a
How to launch:
- Kick "Email 2 Pane" in the app drawer.
Major known issues:
- When you launches "Email 2 Pane", it starts directly; the logic in Welcom
won't be executed.
- There's no UI to add accounts. Use the old UI.
- There's no way to select non-default accounts.
- The on-screen buttons except for older/newer don't work.
- No contex menus work.
Change-Id: I38374acafafbae62e46f84294a7677e54686cfc2
This version is hybrid of the old design and what Andy's suggested.
- MessageViewFragment is responsible to show a single message at a time.
- Call MVF.openMessage() to tell it to open another message.
No need to re-create a new MVF to do this.
- MessageView manages the message list, and handles "move-to-newer/older"
buttons.
Reason for not re-creating a fragment when opening another message is:
- Re-using the same fragment doesn't make it as complecated/ugly as I
was initially afraid.
It's basically cancelling all running tasks, re-initializee some views,
and load a message.
- We don't have to run MVF.onCreate() over and over again when moving through
messages.
We may change the strategy later, but I think it's suffice for now.
(Changing this might affect how the back key works, so let's revisit it
when the fragment manager supports back.)
Basically this CL is all about internal changes.
No UI should have changed except for:
- Moved "Move to newer/older" buttons to the bottom.
Also fixes:
Bug: 2849129
Change-Id: I00c05069231afded9d98d3d52dd9a7925ebdee9d
Dial *#*#36245#*#* on the dialer to activate the debug screen.
"36245" = "email"
It's useful when
- There's no keyboard.
- There's no account set up yet.
(You can do it by entering the special username/password on new account
screen, but that's a bit of a pain.)
It's also easier to tell to people.
Also, removed "sensitive logging", which should never be used.
Change-Id: Id692f8b216f2d85abe1880c452d2067f170dac83
Note: This does not appear in UX wireframes, this activity is going
away eventually, but it's a good testbed for ActionBar to be tried out.
Open issues:
1. Waiting for progress indicator support, using unattractive hack
2. Subtitle doesn't seem to work so putting account name in title
(which is the wrong font size for phone portrait mode).
Change-Id: Iee3cac7d4f30ea210bd8f3838b69ed12cd498375