Commit Graph

489 Commits

Author SHA1 Message Date
Makoto Onuki
899c5b8661 Switch to tablet style notification
- Now we show separate notification for each account
- New notification has sender photo, sender name, and subject
  of the latest email
- Added the NotificationController class, which is intended to manage
  all notifications besides "new message" eventually.

The framework doesn't seem to be 100% ready, and it's not clear how to
add the 3rd line in the expanded notification at this point.  Need to
revisit it later to verify UI details.

Change-Id: I40193ee372cb6b2b7245c1588890f238b2469699
2010-09-29 18:35:17 -07:00
Eric Fischer
3886b266f2 Import revised translations. DO NOT MERGE
Change-Id: If12cbb0d1c04684bf0dcf59980a0b784fb6693f9
2010-09-29 14:34:01 -07:00
Makoto Onuki
8818a658a1 Three pane layout
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
2010-09-29 13:38:32 -07:00
Eric Fischer
5849608f5e Genericize strings that refer to the SD card.
Change-Id: Ia754540c7bfc0e9a97c1d9d386efd2b2d0642560
2010-09-29 12:09:05 -07:00
Makoto Onuki
9ffb4fa0ec Add CHAR LIMIT to new strings
Bug 2930858

Change-Id: I662e5ab16f32dc85ce4c7e5e851a017ce61674c1
2010-09-28 10:30:29 -07:00
Marc Blank
3bf514a85f Merge "Add CHAR LIMIT to added string" 2010-09-28 08:54:19 -07:00
Eric Fischer
b08f78ca1b Trim unwanted whitespace from translations. DO NOT MERGE
Change-Id: Ibf46e7f3dcbc111b28ab64e336b35fc41dbb9ace
2010-09-27 12:18:37 -07:00
Eric Fischer
f838cfcba5 Import revised translations.
Change-Id: I0cb6fbfda7fc88d671668e82d0250b625dc9311f
2010-09-24 12:26:33 -07:00
Marc Blank
a8ad80ee43 Add CHAR LIMIT to added string
Bug: 3012997
Change-Id: I3426ab2c69b480717082d71bd2abc8d8da3b482c
2010-09-24 11:01:07 -07:00
Eric Fischer
7542efcfb8 Import revised translations. DO NOT MERGE
Change-Id: Ie085ada67c5f6ba290f2b1366550fd7f9ed3462c
2010-09-24 10:24:35 -07:00
Makoto Onuki
58843f0dc3 Highlight selected message on message list
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
2010-09-22 14:44:23 -07:00
Makoto Onuki
250ca15b88 Show MessageList with MessageView, rather than MailboxList
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
2010-09-22 13:13:59 -07:00
Chet Haase
f8db52123f do not merge
new assets

Change-Id: I808af6b40e91579380474f5c680361e5d557e77c
2010-09-17 17:52:36 -07:00
Makoto Onuki
0af92c0c39 Use the default theme for selected mailbox.
The latest framework change made it very easy to do this.
We no longer need to implement Checkable by ourselves.

Change-Id: I9264b157b6600659597ca8d525a4288d7bb9c470
2010-09-17 15:05:32 -07:00
Makoto Onuki
0435a0775e Let MessageViewFragment own bottom buttons.
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
2010-09-17 14:23:56 -07:00
Andrew Stadler
5b2424bf6f Cleanup of Account setup flows
* Remove AccountSetupCheckSettings and related resources
* Remove all handling of EDIT flow in setup activities

Change-Id: I7b87d87978533b52b9c974d006920749389418d8
2010-09-13 14:39:36 -07:00
Eric Fischer
c03136f8c9 Import revised translations.
Change-Id: Ife9aec319e0c3e6c95c69b8f04884beea7c4dadd
2010-09-10 15:44:25 -07:00
Marc Blank
6d51b7eb63 Properly report EAS protocol version failures
Bug: 2528554
Change-Id: I9ac2520528ebe23dc0d465aee65ab470f8f429a7
2010-09-10 08:33:40 -07:00
Makoto Onuki
0f52e546ef Implement General Preferences
- Removed the place holder setting
- Added "auto-advance" setting, which has "newer",
  "older" (original behavior, default) and "message list"
- Strings were copied from Gmail

This CL has preference change only (i.e. the setting isn't used yet).
The actual implementation will come later.

Change-Id: I9f90a723c67e066fdc536a73490101817a127933
2010-09-09 17:02:02 -07:00
Makoto Onuki
4c5aaaecef Merge "Add quick contact badge to MessageView." 2010-09-09 16:55:08 -07:00
Andrew Stadler
c164444784 Cosmetic cleanup of exchange setup
* Remove nonfunctioning Next button
* Enable Next button on name screen

Bug: 2988925
Change-Id: I9de7d8dc5b6f48b6c11676b7eef478495afcc889
2010-09-09 15:49:21 -07:00
Makoto Onuki
b1ea9c3c12 Add quick contact badge to MessageView.
- 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
2010-09-09 13:57:31 -07:00
Andrew Stadler
8bcb572ccf Convert setup to actionbars, and holo theme
* 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
2010-09-08 23:27:05 -07:00
Marc Blank
e7b9e4ab94 Add snippets to messages
* Add 'snippet' column in Message table and handle upgrades to the
  new schema
* Generate a snippet from either HTML or plain-text message body,
  removing tags, extraneous whitespace, and other superfluous text
  along the way.  Store the snippet in the Message table
* Clean up MessagesAdapter to use the pre-existing list projection
  and constants
* Write unit tests for snippet creation
* The UI in this CL is always single-line, ellipsized

TODO: Handle two-line subject if portrait and XL

Change-Id: I84a2cbe10957975942edad6eb1255a726924a78a
2010-09-03 23:23:19 -07:00
Makoto Onuki
767f9fe2eb Implement batch move.
* UI is still temporary
* In this version, we check if the selected messages can be moved *after*
  you click "Move", rather than disabling the button beforehand.

Change-Id: Ief2864d2a513001847844963b2b0cb6b714e8667
2010-09-03 15:39:04 -07:00
Andrew Stadler
1a5e1e1593 Use real fragments for incoming/outgoing/exchange settings
* From account settings, switch to incoming/outgoing/eas fragments
* Show "Next" button in actionbar (may be dup'd in single-pane view)
* Common base class for in/out/eas fragments
* Depends on PreferenceActivity.startPreferenceFragment(), new API
* If the user clicks an account header while editing server settings,
  present a dialog before discarding the changes that haven't been
  checked yet.
* Confirm working (if a bit ungainly in appearance) on phone screen

Change-Id: I03591b9a8ffd11fe26fc6f58a5698740e61d0090
2010-09-03 14:30:21 -07:00
Andrew Stadler
bf2a53ef5e Merge "Direct access to edit specific account settings" 2010-09-01 21:20:41 -07:00
Andrew Stadler
9c65c146f3 Direct access to edit specific account settings
* Finish implementation of AccountSettingsXL.actionSettings()
* Point account manager entry point at it now
* Remove old AccountSettings activity
* Move AccountSettingsTests over to AccountSettingsXLTests and minor
  cleanups so it works in fragmentized activity.

Change-Id: I5f979a3a9a29dcbbe5a63833b184e6c0313652d5
2010-09-01 21:17:53 -07:00
Makoto Onuki
975b5c71ab Merge "Remove some debug code from MessageListXL." 2010-09-01 18:18:12 -07:00
Makoto Onuki
e8629a8744 Enable the splitMotionEvents mode
Change-Id: I3b98eae6ee0dcda2a47285b37469692e06fbd85f
2010-09-01 16:41:44 -07:00
Makoto Onuki
ed035c20a1 Remove some debug code from MessageListXL.
Change-Id: I26e373d2e570c49a812ffbee98095f9e84599335
2010-09-01 14:48:12 -07:00
Andrew Stadler
b387560384 Move Add Account button to new Footer position
Change-Id: I662f6cbfd8db80f4b383e6204afcf460764f4d4c
2010-09-01 14:24:32 -07:00
Marc Blank
62f9c4d280 Temporary UI for "move to folder"
* Many TODOs left in code.
* Only supports moving 1 message. (from message view)

Change-Id: Ibdec3163382345a7096c2cba51f448d69a9720af
2010-09-01 11:40:44 -07:00
Dmitri Plotnikov
f2ea927fe1 Merge "Minor UI tweaks" 2010-09-01 11:19:23 -07:00
Dmitri Plotnikov
42739b112d Minor UI tweaks
Change-Id: Ibd5ffc54fffce33af8e7472af8b865ccbdc590d7
2010-08-31 16:20:25 -07:00
Sang-il, Lee
641a47a283 Add mail providers in Korea
Change-Id: I29ad538edc1f696583a30005a6e81e8e49dab215
2010-08-31 16:11:11 +09:00
Eric Fischer
9901ad307c Import revised translations
Change-Id: I43c107944ef15d2ea20f439f1becf9b6d1f049e2
2010-08-30 13:39:32 -07:00
Eric Fischer
9beb1e7a4b Import revised translations. DO NOT MERGE
Change-Id: If206c1e4ac1bf333dfcd4f0b65243f80d127c0d2
2010-08-27 17:17:11 -07:00
Dmitri Plotnikov
9d74207039 Integration with Directory API for autocomplete
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
2010-08-27 14:02:06 -07:00
Makoto Onuki
bdf84d57e6 Revive checkboxes to select messages on MessageList
It's basically a partial revert of I3cb6c45c, with some clean-ups.

Also removed mHandler, which was unused.

Bug 2949762

Change-Id: Ib4e673c5829b99ba45fec449bffb62df84555a01
2010-08-27 13:39:06 -07:00
Makoto Onuki
2f4e87c223 Switch to Light Holo theme, clean up menu options.
- 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
2010-08-25 17:09:59 -07:00
Makoto Onuki
c8502dd194 Highlight selected mailbox on mailbox list
* 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
2010-08-24 16:55:44 -07:00
Andrew Stadler
a14a24a5bc Add Add & Remove Account options to AccountSettingsXL
* Add account is a large (+) in the action bar
* Remove account is a new item at the bottom of the settings fragment
Note: Add account works, remove account just toasts for now.

Change-Id: I5b3b8ab8c7d328cb78d103c47b9eca866466f9df
2010-08-19 16:28:52 -07:00
Marc Blank
09fd4d0a18 New asynchronous attachment loading code
* 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
2010-08-19 14:01:08 -07:00
Eric Fischer
2f375d0c1f Merge "Import Romansh translations." 2010-08-19 12:01:05 -07:00
Makoto Onuki
d111cc70aa Add a debug parameter to Welcome to force 1-pane/2-pane
- Now Welcome takes an EXTRA_DEBUG_PANE_MODE to force the
  one-pane/two-pane mode.

Use this to open one-pane.
adb shell am start -a android.intent.action.MAIN \
  -n com.google.android.email/com.android.email.activity.Welcome \
  -e DEBUG_PANE_MODE 1

Use this to open two-pane.
adb shell am start -a android.intent.action.MAIN \
  -n com.google.android.email/com.android.email.activity.Welcome \
  -e DEBUG_PANE_MODE 2

Change-Id: I6e96f80f53f4488152935502c19d3dd8e0788150
2010-08-18 16:57:27 -07:00
Eric Fischer
c1ac3078f9 Import Romansh translations.
Change-Id: I506f625fc7a35d7af545306201d7db90330c1e1c
2010-08-18 16:26:08 -07:00
Makoto Onuki
715a19be28 Show "Send outgoing mesasges" button in outbox.
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
2010-08-18 14:23:09 -07:00
Andrew Stadler
2ae2a12d6b Initial implementation of SettingsXL (checkpoint)
* Create AccountSettingsXL
* Build headers dynamically based on accounts
* Launch account settings per-account
* Temporary launch point from menu in AccountFolderList

TODO: Fragment flip to incoming/outgoing/checksettings not implemented yet
TODO: Use more recent updates to PreferenceActivity
TODO: Finish plumbing into account settings fragment
TODO: Something more real for app settings

Change-Id: I6f4c5bb8cf691f25517c25950ef2049084335ce3
2010-08-18 11:29:46 -07:00
Eric Fischer
9d8aec8022 Merge "Import revised translations." 2010-08-17 17:24:17 -07:00
Eric Fischer
cd68a7caeb Import revised translations.
Change-Id: Ie4f5c8c899d93260df73861494bc168f7f77ddf4
2010-08-17 16:52:30 -07:00
Makoto Onuki
2127964d0f Implement "contextual" (selection) mode.
Now MessageListFragment itself takes care of the selection mode,
without help from activities.

Change-Id: Ia1a9942d0d3ca87b4f0938a3bf8172466f53b5d6
2010-08-17 13:22:36 -07:00
Makoto Onuki
a241d61ce8 Merge "Deal with fragment API change." 2010-08-16 14:12:35 -07:00
Makoto Onuki
6956533103 Deal with fragment API change.
- 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
2010-08-16 14:10:47 -07:00
Makoto Onuki
52cd3c9a26 Revived removed string and moved up to the deleted section
Change-Id: I77d6fbcbb0d1d8fcb7fcaa94b6bf643cb00db368
2010-08-16 10:41:27 -07:00
Makoto Onuki
187d033484 Reworking MessageListFragment.
- Now MessageListFragment uses loaders to load data.

- Now that we use Loader's auto-requery with throttling,
  removed the throttling timer from MessagesAdapter.

- Simplified footer mode.  (now only "no footer" or "load more")

- Removed saving/restoring list state code.
  These method don't really look like working, or at least
  not always working.  Now that UI's lifecycle is changing,
  we'd better redo it from scratch.

- Removed MessageListUnitTests.
  It only has tests for onSaveInstanceState/restore of the fragment,
  which I virtually disabled.

And minor clean-ups
- Moved the code to save/restore selected state from the fragment
  to Adapter.

Bug 2911766
Bug 2897500

Change-Id: I16c7aefecc5409c57fc5fc8c59b5c80d9b7fc164
2010-08-12 15:06:37 -07:00
Andrew Stadler
641ae45358 Fragmentize Exchange setup
Change-Id: Ib331d9a7f7be7acbfe355d6a03d9ae07af0cc627
2010-08-11 16:07:26 -07:00
Andrew Stadler
faaa115e1a Fragmentize outgoing settings (SMTP)
Also fix a small NPE in AccountSetupIncoming

Change-Id: I5728a10889a3f0f35d31962f4a13ccae4ec0393b
2010-08-10 17:45:57 -07:00
Andrew Stadler
1b156352f3 Fragmentize Incoming settings (IMAP/POP server)
Also, extract DuplicateAccountDialogFragment for reuse.

Change-Id: I042a158e264d949024347d477d6e9ec999c244d3
2010-08-10 14:28:20 -07:00
Makoto Onuki
76681d906a Implement "account settings"/"add account"
- Implemented "account settings".
- Added "add account" menu.  It's not clear how to get to the screen at
  this point, so just added a menu item for this for testing.

Change-Id: I78cfa54f2533917cc742b6ec027c2a0624cf0c1a
2010-08-10 11:08:36 -07:00
Andrew Stadler
a75bab5504 Fragmentize AccountSetupBasics
Change-Id: I99eb4cd4f8aa80d25a01d720244ccee599cba1d8
2010-08-09 22:44:41 -07:00
Makoto Onuki
2cb5b04204 Merge "translatable="false" for untranslatable strings." 2010-08-09 11:01:32 -07:00
Makoto Onuki
a88d9dbdbc translatable="false" for untranslatable strings.
Change-Id: Ifd70344fe8eb2ee7da742a406377c0a86193993a
2010-08-09 11:00:27 -07:00
Andrew Stadler
71cc035c55 Fragmentize AccountSettings
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
2010-08-09 10:36:50 -07:00
Makoto Onuki
533e0f5beb Add "change orientation" menu command.
Unfortunately software-keyboard is disabled on master for some reason,
so we can't use the R key hack any longer...

Change-Id: Ide73e11742e5de70fec45009eee20a1a74fcbfd1
2010-08-07 18:16:14 -07:00
Makoto Onuki
b0ca30d4d1 Add action buttons to actionbar on MessageListXL
- Now able to compose a new message.

Change-Id: I53cd7cc6fe850063946824748e11ccde89d7decf
2010-08-06 10:48:14 -07:00
Eric Fischer
8ac10f28cb Merge "Import revised translations." 2010-08-05 16:51:08 -07:00
Eric Fischer
fa46f81340 Import revised translations.
Change-Id: I4a5a032aae33280650495f9231870d79908b1e21
2010-08-05 16:05:38 -07:00
Makoto Onuki
191448b430 Make Welcome launch MessageListXL
Also added the "1 pane" activity to test the phone UI.

Change-Id: I1c86d2088a2298ada5028b7a266bd090b593593c
2010-08-05 13:58:20 -07:00
Eric Fischer
f2f268a59e Import revised translations. DO NOT MERGE
Change-Id: I8d00ab574f8644ea3b2056e4d8310f453a8b8337
2010-08-04 10:42:51 -07:00
Makoto Onuki
833fe73b99 Aadd special boxes to mailbox list.
Change-Id: I36616f53555346ca7fbb6f3426a0c3196d7bacbc
2010-08-03 17:06:04 -07:00
Makoto Onuki
7ef278202e Clean up MailboxListFragment.
- 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
2010-08-02 16:33:23 -07:00
Makoto Onuki
2a9f783e34 Fix crash in one-pane message view
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
2010-08-02 11:47:10 -07:00
Makoto Onuki
206d4e842d Split up MessageViewFragment like we did to MessageView.
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
2010-07-30 15:38:53 -07:00
Makoto Onuki
e105fbe510 Break MessageView into 2 separate activities.
MessageView for regular messages and MessageFileView for EML files.

I'll break down MessageViewFragment too.

Change-Id: Iae66f33d8fb5de58084ab4aef31588e9743c5a18
2010-07-27 15:45:58 -07:00
Makoto Onuki
3918b0dbfc Merge "Renaming message_view_header.xml to message_view_fragment.xml" 2010-07-22 10:33:12 -07:00
Andrew Stadler
6d62d84aa0 Clean up string warnings.
* Provide unused placeholder for account_settings_exchange_summary
* Bulk cleanup all other placeholders (no longer required)

Change-Id: I55d502eb725d721c9a893c17cf76f227489bb89f
2010-07-21 22:42:42 -07:00
Marc Blank
e6cc662abc Use AccountManager for POP/IMAP; refactor setup classes
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
2010-07-21 19:01:41 -07:00
Makoto Onuki
411314990d Renaming message_view_header.xml to message_view_fragment.xml
Change-Id: Id0ccc13bfd8dfa63b450d46989938295ba8e78e0
2010-07-21 17:23:39 -07:00
Makoto Onuki
d6a2978857 First cut of two pane activity.
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
2010-07-21 16:30:52 -07:00
Makoto Onuki
16a60dca84 Fragmentize MessageView.
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
2010-07-19 18:34:40 -07:00
Makoto Onuki
7daacf83a4 Switch to ListFragment, and use its default layout.
Change-Id: If8dead170a3662cbde87e6ead244363b11db01f6
2010-07-09 13:22:53 -07:00
Makoto Onuki
44b5242edd Cleaning up MessageView
- Removed dead code/dead comment.
- Moved static utility methods to Utility.
- Renamed some methods.
- Changed the timing to call super methods.

Also:
- Internationalized formatSize()
- Added unit tests for createUniqueFile() and formatSize()
- createUniqueFile now uses File.createNewFile() instead of exists().

Change-Id: Ibc30e15b029ed5088954bd6fc9032e25dddf176e
2010-07-02 13:26:05 -07:00
Makoto Onuki
42e3f10a95 Use "*#*#36245#*#*" to activate the debug screen.
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
2010-07-01 16:15:07 -07:00
Andrew Stadler
d5b2da3716 Add ActionBar to MailboxList
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
2010-06-29 16:49:47 -07:00
Andrew Stadler
0d6ce631a1 ActionBar for AccountFolderList
Displays actionbar properly, and the two buttons work.

Submitting with one open issue:
1.  The indeterminate progress indicator is not directly supported in the
    ActionBar.  We're waiting for a UI call or framework support.  Until
    then there is a placeholder using an incorrect icon to show progress.

Change-Id: Iaf1546931376cc5b540820cd0fc020ebd176dabf
2010-06-28 16:00:25 -07:00
Makoto Onuki
5160a660c4 Merge "MessageList: Introducing "selection mode"." 2010-06-23 16:29:44 -07:00
Makoto Onuki
91093ee6e8 MessageList: Introducing "selection mode".
- Long-press an item to go into the selection mode.
- In the selection mode, tap items to toggle selected/non-selected.

This also means:
- No checkboxes any more.
- No context menu any more.

Color scheme hasn't been updated yet, so it looks a bit ugly for now.

Change-Id: I3cb6c45c1dc5461a234c9e9ab9e038c90a9fe8b2
2010-06-23 16:23:41 -07:00
Marc Blank
391ae25c43 Handle viewing of attachments that are, themselves, emails
* Add intent filter for application/eml and message/rfc822 mime types,
  launching MessageView with a Uri
* Modify loadMessageTask to handle the Uri by parsing the attachment's
  input stream with Pop3Message.parse(), and then creating an
  EmailProvider message in a special Mailbox created to hold
  "attachment" messages
* Delete all "attachment" messages after the parent message is closed
* Add unit tests

Change-Id: I20276ee006b9f05b889f3c808d3dc407cde26d49
2010-06-22 18:39:18 -07:00
Kenny Root
a10538ca06 am 8995e3ae: am dbe9693a: am 9eabe155: Import revised translations
Merge commit '8995e3ae6feb6f315d0839f43292c2a1a630bf77'

* commit '8995e3ae6feb6f315d0839f43292c2a1a630bf77':
  Import revised translations
2010-06-21 09:54:42 -07:00
Kenny Root
9eabe155bc Import revised translations
Change-Id: I59892a00108ebf112aab7d1775ca546904a3ca84
2010-06-20 18:53:26 -07:00
Andrew Stadler
e4ecb50091 Convert AccountFolderList to use a Fragment
* Introduce AccountFolderListFragment and its layout
* Extract all list-related UI into it
* Fix leaking cursor in AccountsAdapter and add unit test

Change-Id: Ica566847d97927b736f515d434c6691c82343290
2010-06-18 15:32:10 -07:00
Makoto Onuki
4df94867b4 Don't use internal resources.
Change-Id: I0edce125b3544724ad74e72d91b4abd40c244b09
2010-06-16 14:07:17 -07:00
Makoto Onuki
601187db42 Introducing MessageListFragment.
- Extracted MessageListFragment out of the MessageList activity.
- This is basically pure extraction, with the following conceptual change.
  - Now the MessageList activity doesn't know the mailbox id or
    the account id.  If it needs these ids, it needs to ask the fragment.
  - MessageListFragment.LoadMessagesTask tries to determine the account ID
    if it's unknown.

Most code in MessageListFragment is directly copied from MessageList
with minimal changes (e.g. pass mActivity instead of 'this' as a Context).
There's a few cleaning up oppotunities.  I'll work on them later in a separate
CL.

Change-Id: Ie004cc49b429f2cd8f9de73df5abb94f3054ea0a
2010-06-14 10:20:29 -07:00
Andrew Stadler
572c06f91b DO NOT MERGE - Revert workaround for KeyguardLock problem
This reverts commit 3ee0cad5f5.

Because commit 284b62e1b8c3419bfd02c6fea5ba0a68146c06f8 fixes the underlying
conflict between DeviceAdmin policies and apps attempting to disable the
Keyguard Lock, this patch is no longer required.

Accounts with a server policy requiring a device PIN or Password will
now work properly.

Bug: 2737842
Change-Id: I533c27a01a8a331dc11a0cb84bcc78f48edf621c
2010-06-11 11:21:41 -07:00
Kenny Root
cf988934c8 am 45f86bbb: am be21f272: am 8cfeacdc: Import revised translations 2010-06-09 22:48:30 -07:00
Kenny Root
be21f272a2 am 8cfeacdc: Import revised translations
Merge commit '8cfeacdcb371f0f7df5e3532a96fd75125f15224' into kraken

* commit '8cfeacdcb371f0f7df5e3532a96fd75125f15224':
  Import revised translations
2010-06-09 22:46:12 -07:00
Kenny Root
8cfeacdcb3 Import revised translations
Change-Id: Ic8818f3a44fe8cd06241ecdbad4082bf5afc828c
2010-06-09 22:41:54 -07:00
Andrew Stadler
80091c8ef7 Refactor MailboxList to use Fragment API
* Moves all list-related implementation to new MailboxListFragment
* One item that remains to be done is to remove the dependency on the
  activity for handling context menu (longpress) in the list.

Change-Id: I7b5769d9d81fb685cf480de3d3e18b4e1c078f2d
2010-06-07 16:02:52 -07:00
Makoto Onuki
afa85bb102 Fix typo on exchange server setting screen.
Bug 2742113

Change-Id: I43bd3d6328745169bacb1fd750cce0a08dc18742
2010-06-04 13:10:58 -07:00
Andrew Stadler
3ee0cad5f5 DO NOT MERGE Workaround for KeyguardLock problem
* The device policies that enforce the use of a device PIN or password
  can be sidestepped by apps that implement KeyguardManager.KeyguardLock
* This renders the policies unuseable
* To prevent this, the email app now scans for any packages holding the
  DISABLE_KEYGUARD permission.  The existence of any non-system app
  with this permission will put all security-enabled EAS accounts into
  a security hold, and post a dialog describing the problem.
* The user must uninstall any such app(s) in order to sync their EAS data.

Bug: 2737842
Change-Id: I4c96d76b12d9242b5c755dd60d7578a825fae597
2010-06-04 11:10:03 -07:00
Andrew Stadler
f38b927534 am ae432137: am be611500: am 27e75533: Merge "Fix format string ordering" into froyo 2010-05-28 12:14:46 -07:00
Andrew Stadler
5b90a9b604 Fix format string ordering
* Three format strings had multiple replacement tokens, but the ordering
  information was missing.
* In five languages, the translations reverse the order, and the formatter
  crashes (because of types mismatching).
* This patch adds in the ordering information where needed

Bug: 2719864
Change-Id: I084e9c9ddab54901a5142710e8ef986223902c17
2010-05-27 17:27:59 -07:00
Kenny Root
1c4abf20d3 am 79d1eb55: am f6981df3: am df9722f8: Import revised translations 2010-05-17 14:58:35 -07:00
Makoto Onuki
cfe95a8333 Added a label to Exchange device ID.
Bug 2610257

Change-Id: Ie065514e942a01dc5ae3c81bc79a2501f67390e1
2010-05-17 14:30:15 -07:00
Kenny Root
df9722f894 Import revised translations
Change-Id: Idf95a5cc69832bbb96459e341b1d700670889026
2010-05-17 11:33:01 -07:00
Makoto Onuki
a1863f263a Remove ">>" from "View in Caendar" button
bug 2579306

Change-Id: I1c086a8567d57d18e901dbe173df58c4c381e3fa
2010-05-07 12:55:55 -07:00
Makoto Onuki
5ab7ec7123 Move a bare string to a resource.
Bug 2637666

Change-Id: I59cf5d2b30846604049d3f988b1003dd7d91ad6f
2010-04-30 09:21:04 -07:00
Kenny Root
3cc3b89fc4 Import revised translations
Change-Id: I1586d45f93b08b55010c3136ceacd798aab3df6b
2010-04-29 15:40:54 -07:00
Kenny Root
178e51fcd8 Import revised translations
Change-Id: Ic6ff953da67dceea3631416546fa44e9b0949ae6
2010-04-27 13:35:56 -07:00
Kenny Root
c4d1395d83 Merge "Import revised translations" into froyo 2010-04-15 05:55:49 -07:00
Kenny Root
4aff10da4a Import revised translations
Change-Id: I648e39b3c3295325bfbb967fa193187869ee562a
2010-04-14 20:33:06 -07:00
Makoto Onuki
162b017140 Change account colors to what aren't used in Calendar.
Bug 2535090

Change-Id: I252e04afa402303d226a56f1d7852f50dc26e2ec
2010-04-14 15:18:12 -07:00
Makoto Onuki
12b4bc9e80 Show device id on the exchange setting screen.
I've attached a screenshot on the referenced bug.

Also fixed a bug in SyncManager.getDeviceId() where sDeviceId cache wasn't
working.

Bug 2591124

Change-Id: I4b58517c095a96d47fb57179d70091b2c7af5249
2010-04-13 17:10:26 -07:00
Makoto Onuki
75e31dc17b Fix layout issue introduced with I5b680418
I shouldn't have changed the layout_height.
I changed it as a trial, and the final version of the fix didn't require this.

Bug 2581421

Change-Id: Ie06f813ed6d65a128381a99b9efeaa8d9275b5bf
2010-04-08 15:00:35 -07:00
Makoto Onuki
9623a4ce6f Increase usability of invite components in MessageView
* Make yes, no, maybe, etc. larger (easier to touch)
  (bug #2561772)
* Make the accept/decline/maybe buttons focusable
  Make the "View in Calender" a button
  (bug #2561767)

Change-Id: I5b68041835e9d85e5290a30fe7910837b577c003
2010-04-07 16:45:23 -07:00
Marc Blank
78021cbbf8 Don't add "Invitation: " to meeting invitations
* Turns out that most other clients omit this.
* This has the pleasing effect of fixing the referenced bug
* Update unit tests

Bug: 2561821
Change-Id: I39f7db7e05be590373cd5f3d9b23c7ee21bde4f7
2010-04-01 14:42:10 -07:00
Kenny Root
101ff2fc2e Merge "Import revised translations" into froyo 2010-03-30 09:30:19 -07:00
Kenny Root
baa6c11661 Import revised translations
Change-Id: Ibc8a57ac6ac2269fef2d1fa1ce401147fa498423
2010-03-30 09:16:12 -07:00
Adam Powell
4e1c6d3c36 Remove overscroll
Change-Id: Ie0dc5c4d58a9e970b47aa7bcc33586d5f690adeb
2010-03-29 16:46:19 -07:00
Makoto Onuki
20c067c67c Show a calendar invitation icon on message list.
Bug 2522928

Change-Id: Ib29c7ee187cb0d864849b83693906b0a3b490734
2010-03-22 13:46:35 -07:00
Jim Shuma
f7da371234 Merge "Add "vibrate when silent" mode to notifications" 2010-03-18 16:30:33 -07:00
Jim Shuma
9e2ddca59d Add "vibrate when silent" mode to notifications
* Add "vibrate when silent" choice in UI
* Add storage for it in Email's provider.  Existing accounts default to
  their current settings (always vibrate / never vibrate).
* Respect new mode when notifications are posted
* Updated existing unit tests

Bug: 2457183
Change-Id: I5c933ac39dbef8b2028255f330e0b084a445421a
2010-03-18 13:57:25 -07:00
Kenny Root
1323a8de1f Import revised translations
Change-Id: Ifc983fd154d2cf3fb6cd86c45b5e7ff9736cd2d8
2010-03-17 22:13:52 -07:00
Andrew Stadler
7b94940c66 Use proper formatting strings for GAL lookup status
* Searching bigcompany.com...
* 12 results from bigcompany.com
* First 20 results from bigcompany.com

Bug: 2249514
Change-Id: Ib3fba9d1ba755d3550235a437f60449bf3c312c3
2010-03-16 23:07:40 -07:00
Romain Guy
7b9ad4720a Fit & finish for the Email application.
This change removes unnecessary padding, enables overscrolling only when the content
of the various scrollviews is larger than the scrollview and makes sure the content
of the scroll views is measured correctly.

This fit and finish applies to the new account setup wizard only.

Change-Id: Ia5b5e66782b842e52f7acf8e3f84ce922a594eb3
2010-03-16 14:00:28 -07:00
Andrew Stadler
fa997254d4 Merge "GAL UI cleanup work (in progress)" 2010-03-15 23:33:49 -07:00
Andrew Stadler
26b4b47fb3 GAL UI cleanup work (in progress)
Provider:
  * Move UI (e.g. separator) out of provider, create it entirely in adapter
  * Remove timestamp based disambiguation (TODO throttling some other way)
  * Add cursor "extras" to report total # of results on server
UI:
  * Rewrite background-foreground threading to be more efficient and
    signal changes back to UI by calling notifyDataSetChanged())
  * Separator strings per Rich's UI (not using real strings yet)
  * Remove link back to AutoCompleteTextView

NOTE:  There's a bug in ACTV that is causing the window size not to
change properly on notifyDataSetChanged().  Framework team to investigate.

Bug: 2249514
Change-Id: I183b200dcdaa268f0612d2de6442db28e1491d40
2010-03-15 19:17:03 -07:00
Marc Blank
587d39ea75 Revise meeting_recurring string
Change-Id: I7a909cb966bc92831fe2add358a31fdeb2556dd2
2010-03-15 18:15:45 -07:00
Marc Blank
da209a98b6 Add string to indicate a recurring event in meeting invites
Bug: 2515474
Change-Id: I67142c7bb74afa854f6435b452ca87254aa8e9bb
2010-03-15 14:32:52 -07:00
Andrew Stadler
e2c56fc88c GAL support
* Provides GAL autocomplete in email address fields in message composition.

General TODO list:
UI: Implement divider in adapter, not in GAL provider
UI: Use listview_separator for divider
UI: Clean up strings, move all to resources
UI: Only have one GAL lookup in flight at any time
UI: Unit tests

GAL: Use side channel for status, not a row
GAL: Shorten timeout for interactive GAL lookup
GAL: Make watchdogs work
GAL: Figure out why some calls never return (conn pool exhaustion?)
GAL: Unit tests

Bug: 2249514
Change-Id: I513e25628bc2f5ed0920e0ee509cd598b1817b3a
2010-03-15 11:12:34 -07:00
Marc Blank
0243c5fc2b Minor update to recent string addition
Change-Id: I071fc58adaac7b9533247b935738f616b7091374
2010-03-10 15:19:58 -08:00
Marc Blank
ec5d2ce2f9 New strings required for Exchange calendar sync
* These are the remaining strings needed for Exchange calendar sync,
  as far as I can tell.

Change-Id: I01bc69dc96dfb6e3808f9931726800b7bdef75ef
2010-03-10 09:26:57 -08:00
Makoto Onuki
41815958dc Merge "New look for account switcher." 2010-03-04 17:29:07 -08:00
Makoto Onuki
a1cd239e63 New look for account switcher.
Bug 2489859
2010-03-04 16:05:21 -08:00
Eric Fischer
39e26387e9 Import new translations 2010-03-04 14:05:03 -08:00
Mihai Preda
a7f39c9cdc MessageView: update meeting invitation UI assets. 2010-03-03 13:34:27 +01:00
Marc Blank
29c38d2c84 Send cancellation email when user-created event is deleted
Bug: 2465496
Change-Id: I49bf9951e816a4500b7622cbca84fb75edfdb76c
2010-03-01 18:58:47 -08:00
Dianne Hackborn
6d0016229a Move DeviceAdmin APIs to android.app.admin. 2010-02-26 23:31:37 -08:00
Eric Fischer
87c305d98c Import new translations. 2010-02-26 17:30:09 -08:00
Makoto Onuki
c18f8f615f Enable calendar sync for Exchange accounts when upgrading.
On the first boot after upgrade from Eclair, enable calendar sync for all the
existing Exchange accounts, if any, and show notification.

Note on this version, nothing happens when you click on the "Calendar added"
notification.  We're waiting for an API (action or something) to launch
calendar.

Bug 2428718
2010-02-26 13:28:59 -08:00
Mihai Preda
794f29176d MessageView: EAS calendar meeting invite answer buttons. 2010-02-26 21:12:24 +01:00
Eric Fischer
ab02fcb3d3 Remove xliff tags that kept the word "deleted" from being translated.
Bug 2463678
2010-02-25 14:20:31 -08:00
Marc Blank
89be77eaea Send replies to exchange meeting requests
* When the user selects accept/decline/tentative in MessageView, we now send
  an email to the organizer, with an iCalendar attachment indicating the reply
* Added a unit test for the reply case, but more tests to be added to handle
  other circumstances

Change-Id: Iff799d88a92b6546735bf4965b22febf3a82b56f
2010-02-24 15:13:57 -08:00
Marc Blank
3b97e1769a Merge "Fix #2443881 (Don't display User name field for EAS account)" 2010-02-23 11:40:15 -08:00
Mihai Preda
dc348ea94b Email: remove unused strings and resources.
Bug 2456796.
2010-02-22 21:53:50 +01:00
Marc Blank
5b46171b83 Fix #2443881 (Don't display User name field for EAS account)
* Make the field and label GONE for EAS accounts
* Enable the "Done" button at all times for EAS accounts
* Add test case for this, and clean up bad formatting in tests

Bug: 2443881
Change-Id: Ic80b001e443fa37b7cfeb810b1f31edf22b065b9
2010-02-20 15:05:39 -08:00
Makoto Onuki
f75571dd29 Merge "Remove hardcoded package name." 2010-02-17 09:33:09 -08:00
Andrew Stadler
643ca675b6 Placeholder invite-accept UI
This is a lightweight placeholder so calendar functionality can be
tested.  Simply presents a message about the invitation, and a set of
yes/maybe/no buttons to click.

The UI is shown whenever the message appears to contain an invite.

There are many elements left to be done here:
TODO: response code (EAS protocol) doesn't seem to work
TODO: use real assets & design
TODO: provide a click-link into calendar event
TODO: show calendar icon in messagelist too
TODO: (if possible) persist user's response in button state?
2010-02-16 22:02:50 -08:00
Makoto Onuki
0fef1f14b3 Remove hardcoded package name.
Removed the hardcoded package name in account_preferences.xml.  Now we launch
the PreferenceScreen with only the action.  Added an intent-filter to the
preference screen to catch it.

Bug 2447903
2010-02-16 17:05:23 -08:00