Commit Graph

167 Commits

Author SHA1 Message Date
Todd Kennedy 5e4f1c3872 Allow globals in the providers.xml
There are two ways globals can be specified. There can be only one global
character ['*'] and/or multiple wildcard characters ['?']. The global
will match zero or more characters. The wildcard will match any character.

bug 4090086

Change-Id: I07e3edebd1fe989094c68cf047ce5bc9fb91aba0
2011-03-31 14:28:43 -07:00
Todd Kennedy 08534762bd Allow globals in the providers.xml
We now allow a single global character ['*'] to be specified somewhere in
the domain attribute. Additionally, we will replace the string "$domain"
with the matched domain in all attributes -- user name, password and URIs.

bug 4090086

Change-Id: I46a637ed364c1a079e1230fa22393a1bac059b1f
2011-03-29 11:12:13 -07:00
Andy Stadler 36e6f4931e Add 55 roadrunner email setups
Bug: 4086524
Change-Id: I8d7758d3720e45515abae1d071a8b149ac63a4ce
2011-03-15 13:51:57 -07:00
Adam Cohen 6055face4c Adding AppWidget xml flag to make widget resizable
Change-Id: I954fca3a109d8765e848eb135d21cec7e7ec2b96
2011-02-28 13:32:37 -08:00
Andy Stadler e47af7698f Add summaries to incoming/outgoing preference items
Bug: 3380377
Change-Id: I81993adfea93f00c81655cda13e2ff46ec8ac20d
2011-02-16 14:19:34 -08:00
Justin Ho b5b8e568e2 New Email launcher icon, deprecating old asset
Bug: 3362749

Change-Id: Idb876f38588a9c5d2b4b3c04dbf4dbca082c1618
2011-01-29 14:20:01 -08:00
Andy Stadler 4fd1ebdcc3 Fix multiline mode in signature
* Add multiline flag to preference xml
* Also, remove display of actual signature in summary, as it
  does not properly handle long or multiline signatures.

Bug: 3379235
Change-Id: I84894dbdccee2cd8a8ece05d0b8f7fdcf7b92406
2011-01-24 12:01:43 -08:00
Andy Stadler 373ccb1037 Cleanup account name, user name, and summary
* In AccountSetupNames:
  * Add "Field required" error tag to Names display
* In AccountSettings:
  * Improve IME behavior in text fields - auto-capitalization
  * Prevent empty username
  * Reset empty nickname back to default (email address)
  * Fix broken hint for signature
* Proper trimming in all fields

Bug: 3338435
Change-Id: I2720c4524303ada6dd228866756fc9c3aac173f3
2011-01-20 11:37:39 -08:00
Andy Stadler 946239e8a0 Add per-account preference for bkgnd attachments
* Add flag to Account record
* Add checkbox to Account Settings (IMAP & EAS)
* Add checkbox to Account Setup (IMAP & EAS)
* Add flag to backup/restore logic
* Update Account & AccountSetupOptions unit tests

Bug: 3360873
Change-Id: I0c407776ede4110f33716644f6f027938f21130a
2011-01-18 10:53:37 -08:00
Andy Stadler 469f2987dc Add encryption to SecurityPolicy
* Add encrypted-storage to uses-policies
* Add new field to PolicySet
* Add "false" to all constructor callers
* Add unit tests (including fixing some existing unit tests)
* Add new logic to AccountSecurity activity t0 dispatch both password
  and encryption requests.

Bug: 3346641
Change-Id: I54f39bc9b6fbe21c033a05b36b83081e5c78a296
2011-01-13 13:12:55 -08:00
Marc Blank fb4bc09428 Remove STOPSHIP from providers.xml
Bug: 3335087
Change-Id: Id7172370ecdaf61e6ff08ca50e618bab3d2597de
2011-01-09 18:28:35 -08:00
Marc Blank 0fd8ae8808 Pixel perfect Email widget
* Functionally correct and pixel perfect
* All current assets in place

Bug: 3292507
Bug: 3284201
Bug: 3135118
Bug: 3255036
Bug: 3252913

Change-Id: I8fa6752748c74b3a9789a3675da12f6c0c11975f
2010-12-20 11:55:01 -08:00
Andy Stadler d2fcefc567 Add widget preview
* Also bumped email version number to 3.0 because the version# may need
  to increment to force refresh of the preview tile.

Bug: 3277453
Change-Id: Ic556e49a4b531fcfdbf3c8f6a2537a34ee0f3c63
2010-12-15 17:49:07 -08:00
Andy Stadler f983c75b44 Add preference for background downloading
* Defaults to false
* Placeholder text

Change-Id: I7c729eddb7b4d368a0ac47552c911d2ef11b3ee1
2010-12-08 12:28:02 -08:00
Marc Blank 1b9337ea4f Wireframe email widget
* Formatting and assets are preliminary
* Functionality correct
* Needs cleanup, etc.

Change-Id: I75051df93d233ef529a616c7a9efae403d320bd2
2010-12-01 13:37:57 -08:00
Andy Stadler 1ca111c19c Add password expiration plumbing
* Set aggregated expiration values with DPM
* Fix min/max logic when aggregating, and fix unit test
* Add expiration tests when checking if policies are active
* Add expire-password to uses-policies set
* Handle password refresh (clear notifications and sec. holds)
* Handle password expiration (warning and/or wipe synced data)
* Unit tests for provider-level methods
* Refactor common security notification logic
* Placeholder notification strings (need final)

Bug: 3197935
Change-Id: Idf1975edd81dd7f55729156dc6b1002b7d09841f
2010-12-01 12:58:36 -08:00
Andy Stadler 5c4c0ab456 Move application icon to mipmap-* directories
Change-Id: Idc5df7046d0fa64ffbfce2869dffb4fe0fd144a0
2010-11-23 12:06:44 -08:00
Andy Stadler 49fac404e4 resolved conflicts for merge of 7af8cc5e to master
Change-Id: Ie7364895effcf63b0716682fe6ac24926d1e1da1
2010-11-19 18:46:39 -08:00
Kristopher Giesing 25d4fa0269 Added/updated provider settings for Yahoo-related mail domains.
Specifically, added configuration settings for international Yahoo
domains (e.g. yahoo.ca, yahoo.de, yahoo.fr, etc), including partially
or wholly owned Yahoo subsidiaries; as well as partner domains from AT&T,
British Telecom, and Rogers whose email services are managed by Yahoo.

For domains supporting IMAP, changed to IMAP+SSL for mail handling to
support a better user experience on mobile devices.

Change-Id: If5bdc70f70820f3f8aada6d2ee9b0cdb115432b5
2010-11-19 13:37:54 -08:00
Andrew Stadler 111d67acc5 Merge "Add YMail and RocketMail, tighten security, cleanup" 2010-11-04 21:46:32 -07:00
Andy Stadler 9ce244b2e3 Hide vibrate notification option on no-vibrate devices
* Check for existence of vibrator, hide option if appropriate
* Notifications with vibration are still OK, they are just ignored
* Minor cleanups & renaming

Bug: 2988758
Change-Id: Ia1fd259f57d33a75a54cf1016f66a1c072aba579
2010-11-04 21:13:45 -07:00
Andrew Stadler 34d0de940b Add YMail and RocketMail, tighten security, cleanup
* Add Ymail and RocketMail as generic yahoo-based email providers
* Add SSL to AOL & AIM
* Remove trustallcertificates from mac.com / me.com
* Minor reorganization to group shared providers together

Bug: 2508590
Change-Id: I7e80aaa587609f95c09e4395055bf515ec43e35e
2010-11-04 16:21:37 -07:00
Andrew Stadler ba0b1bbc8d Implement text zoom for Message View
* Add preference for default text size
* Move saveSettings logic into onPreferenceChange handler
* Per user tests, default setting is large (not "normal") for XL devices.
* Use setting in MessageView's WebView

TODO: Investigate zooming header (to/from/subject/etc) as well.

Bug: 2282390
Change-Id: If32ed3626244b046941a461f974b3dbdb535f592
2010-11-02 14:58:24 -07:00
Marc Blank 4afdd19e20 Support EAS in providers.xml files
Bug: 2962123

Change-Id: I661c52afcf36e337e29bb10fd878196a3b0147ae
2010-10-29 19:03:44 -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
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
Sang-il, Lee 641a47a283 Add mail providers in Korea
Change-Id: I29ad538edc1f696583a30005a6e81e8e49dab215
2010-08-31 16:11:11 +09: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
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
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
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
Dianne Hackborn 6d0016229a Move DeviceAdmin APIs to android.app.admin. 2010-02-26 23:31:37 -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
Andrew Stadler 105c1786f7 Replace limit-unlock with force-lock.
Followup to 9fc7996adbb5d1d933fecde3cb9393877bc1915d
2010-02-16 13:40:20 -08:00
Marc Blank a1c997a2b6 Add calendar sync checkbox to account settings screen
Bug: 2414157
Change-Id: I60ead139552f3e7c86b113f8b8b10ef3cf57abbf
2010-02-04 10:28:37 -08:00
satok d9080ed32e Add UI for Signature in Email Application
Bug: 1323618

- changed summary of signature to show hint if signature is not set
2010-02-04 10:28:55 +09:00
Makoto Onuki b854d05a89 Change EAS authenticator's label according to the vendor policy.
Our original plan was to disable both authenticators by default, and enable
one of then on boot.  However, it turned out existing exchange accounts will
be removed if there's no enabled authenticators for the account type.
So, instead, in this patch we initially enable only the default one, and switch
to the other one on boot if the vendor policy indicates so.

(If a device has a vendor policy apk, it should also have the email app
preloaded, so changing the label at boot time isn't too late.)

Bug: 2382710
2010-02-02 16:25:29 -08:00
Andrew Stadler d62860821c Additional SecurityPolicy functionality
* Begin wiring into system DevicePolicyManager requirements
* Semi-real implementations of isSupported() & isActive()
* Added new API (placeholder) updatePolicies()
* Updated existing unit tests as needed

Bug: 2387961
2010-02-01 16:48:16 -08:00
Marc Blank f3fcb8929e Implement Exchange calendar sync support
What should be working:
* Events sync down from server and appear in calendar
* Recurrences and exceptions appear in calendar
* Changed events on server should be reflected in calendar
* Deletions on server should be reflected in calendar
* Push of new/changed/deleted events should work
* Changes on device are NOT synced back to server
* New, single events on device are synced back to server
  (no time zone, attendee, or recurrence support)
* Checkbox for syncing calendar added to setup flow
* System sync glue in manifest, etc.
* Bugs are to be expected
* A few unit tests; needs more

Change-Id: I7ca262eaba562ccb9d1af5b0cd948c6bac30e5dd
2010-01-28 09:18:48 -08:00
Andrew Stadler e4a7cc440f Re-enable modernized version of "optional" SSL/TLS
* Add "Accept all certificates" modes to incoming/outgoing secure choices
* Change URI scheme slightly to make "trust" a flag, not part of the
    protocol.
* Change Stores to know about new URI scheme
* Slightly rework Transport API to make "trust" an independent flag
* Adapt HostAuth to handle new Uri scheme
* Remove the old ambiguous "optional" code, which was allowing
    some unsigned certificates, but was *also* allowing TLS to
    optionally start (though not SSL, despite the UI strings.)
* Add a few unit tests to EmailContent
* Add logging and a bunch of comments to TrustManagerFactory, and a bit
    of simple cleanup to make it more readable.
* Add missing conversion of SSLException->CertificateValidationException
    in TLS so we get the correct certificate errors from TLS too.
* Re-enable TLS for mac.com accounts (which had a certificate problem)

Fixes bug http://b/2119755, http://b/1374780, and probably a raft of
earlier and/or external bugs about certificate problems.

Change-Id: Iaf99a8da3eaadaa4cdeec224737838b5d6813e55
2009-09-29 15:28:43 -07:00
Jim Miller dfe66e5eda Fix bug #2004167: update assets for Email authenticator and add small icon. Re-upload after path conflict. 2009-09-18 18:14:16 -07:00
Marc Blank eadb55b04e Implement hooks from Settings->Accounts to Exchange account setu
* Fixes #2106718
* Fixes #2106733
* Remove "Add another account" from the preference screen

Change-Id: I8db1400d2bdb6ed7d3aeb2049cc1a399c47c38c5
2009-09-18 09:19:41 -07:00
Andrew Stadler 8b91975fa5 Clean up transport encryption & port options
* Remove SSL-Optional and TLS-Optional choices from UI
* Remove SSL-Optional and TLS-Optional choices from providers.xml
* Switch over most SMTP connections from 25 to 587
* Clean up the providers list which has a lot of "optional" cases
    that were probably falling back to unencrypted.

Fixes bugs:
2110243	Settings UI shouldn't offer SSL/TLS (if available) options
2089070 Update list of providers

Change-Id: I57be57b349eed33a5284121d904528279a36a91c
2009-09-17 23:47:00 -07:00
Marc Blank e428f94161 Add "Sync Contacts" to Account preferences screen (part of #2106733)
* Also added some checks for null Accounts and HostAuth

Change-Id: Ia4ae68d0e8a62abdaf002519766b6685b6947e9e
2009-09-16 16:07:27 -07:00
Andrew Stadler 91a5cd517f Clean up handling of Exchange setup option
* Use concrete declarations, not the old sample code
* Remove unused "sample" code
* Create ExchangeSender.java
* Strip out the unused (old sample code) parts of ExchangeStore.java
* Unit test to make sure EAS is being offered
* Fix "account leak" in AccountSettingsTests

This was triggered by donut bug # 2092944 but the solution is
different because we support EAS here.
2009-09-02 09:45:28 -07:00
Jim Miller cfa8731e51 Update icon assets for Email 2009-08-14 15:58:53 -07:00
Android (Google) Code Review 5b571cf6ba Merge change 9294
* changes:
  Massive reworking of EAS serialization; much smaller and faster now
2009-08-01 18:03:58 -07:00
Marc Blank f00dccd321 Massive reworking of EAS serialization; much smaller and faster now
* Remove all use of Strings in favor of the parser's static final int's
* Strings remain in Tags for debugging output only
* Renamed lots of classes to be more consistent
* Centralized logging behavior in Eas class
* Found and fixed some bugs in the process:
  - Account deletion wasn't removing HostAuth's correctly in the trigger
  - Adding a second EAS account was trashing the first one
  - Fixed looping sync behavior caused by Exchange 2003 bug
2009-08-01 17:55:15 -07:00
Andrew Stadler 9aced6c76b Add cox.net email addresses to automatic setup list.
http://b/issue?id=1942352
2009-07-31 16:28:03 -07:00
Marc Blank 948c36f47a Reimplement EAS contacts sync to work w/ new system facilities
* Modify to work with ContactsProvider2
* Modify to work with system AccountManager
* Modify to work with system SyncManager (for triggering user-change syncs)
* Sync server->client for adds/deletes implemented (CP2 doesn't handle delete yet)
* Sync server->client changes handled efficiently (only write changes)
* Some fields still not handled
* Rewrote most of the CPO code to handle server->client changes
* Sync client->server works for supported fields
2009-07-30 09:22:40 -07:00
Andrew Stadler 17250429db Various EAS related changes related to accounts and services.
* Renamed ISyncManager/ISyncManagerCallback to IEmailService/IEmailServiceCallback
* Restored ExchangeTransportExample to its original state; created ExchangeStore to
  handle validation functionality instead; updated stores.xml to reflect these changes.
* Add support for AccountManager in EAS code (this is necessary for the contacts and
  calendar providers to work with syncable data); created EasAuthenticatorService to
  as our authenticator, which required adding authenticator.xml and modifying the
  manifest to register our service with AccountManager metadata
* Created EmailServiceProxy as a convenience for the UI in calling into the EAS
  service; created EmailServiceStatus class for status codes in callbacks.
2009-07-13 19:10:08 -07:00
Mihai Preda 543b50d717 Revert "Add Cox email server information."
This reverts commit f6ab8aaec8.

Revert because TMO IPs are rejecteb by Cox SMPT server for
spam reasons (spamhouse filtering).

Revert while waiting for a solution to be found by TMO/Cox.
2009-06-30 11:26:49 -07:00
Mihai Preda f6ab8aaec8 Add Cox email server information.
Bug 1942352.
2009-06-29 15:40:11 -07:00
Andy Stadler 1e2ca965e7 AI 148255: Don't show "Outgoing Settings" preference when sender does not
provide a class for launching the settings editor.
  BUG=1812798

Automated import of CL 148255
2009-05-04 10:17:27 -07:00
Andy Stadler 9197f42894 AI 148216: Provide UI for fixed sync window sizes, as required by EAS.
When in fixed sync window size mode, change "load more
  messages" to "refresh".
  BUG=1789913

Automated import of CL 148216
2009-05-01 15:30:33 -07:00
Andy Stadler c05afb24bb AI 148019: Add "accountInstanceLimit" to stores.xml so a given type of connection
(e.g. EAS) can limit itself to n (usually 1) accounts per device.
  The UI for this is really simple - don't show the EAS button when the
  limit is reached.  More work would be required in
  AccountSetupAccountType.java in order to do a more sophisticated UI
  (e.g. show the button but pop a toast if the limit is reached.)
  BUG=1740626

Automated import of CL 148019
2009-04-29 17:10:25 -07:00
Andy Stadler 4836f3c289 AI 146331: Make the download window sizing adjustable on a per-store basis.
The default values are 25 (default) and 25 (increment).  This is fine
  for Stores that control downloads by # of messages, but won't work for
  stores that use other measurements - e.g. EAS windows the download in #
  of days.  So for this change:
  1.  Allow the StoreInfo to provide non-default values
  2.  Remove the hardcoded references to the default values
  3.  Use StoreInfo values everywhere
  4.  Set the values to 1,1 in EAS store info
  BUG=1789913

Automated import of CL 146331
2009-04-15 10:58:59 -07:00
Andy Stadler ea6fea9bb2 AI 144953: Provide UI for push mode accounts.
1.  Generalize the code for the various spinners that control
  account check frequency.
  2.  Provide an API for looking up store attributes (and refactor
  existing instatiateStore logic to use it).
  3.  Cleanup the old code that was used to setup frequency spinners.
  4.  Hardwire Exchange accounts to default into push mode.
  Notes to tester:
  1.  For each account type (POP, IMAP, EAS) we need to check that
  auto & manual creation "do the right thing" for frequencies.
  POP & IMAP should offer "none" or time intervals, while EAS
  should offer "push", "none", or time intervals.
  2.  EAS accounts should default to "push", all others to "15 min"
  3.  Make sure that you can edit existing account settings and see
  the right choices (only EAS should be offered push).
  4.  I couldn't write an automated test for the mail checker service,
  please confirm that POP & IMAP accounts are checked at the right
  intervals (or never, if set for "none".)
  BUG=1776149

Automated import of CL 144953
2009-04-07 17:35:13 -07:00
Andy Stadler 87c43cada6 AI 144525: Add structural support for Exchange transport. The idea is that
the shipping client will include the necessary generic pieces for
  configuring an Exchange client (e.g. account setup) but will not
  include actual Exchange client code (e.g. transport / protocol).
  Also added a "sample code" implementation of Exchange for use
  as a starting point for implementors.  (Note, this will not ship
  in Donut, it's a placeholder for working on the "framework"
  aspects.)
  BUG=1740621,1740626

Automated import of CL 144525
2009-04-03 16:02:55 -07:00
Andy Stadler ae8ca3fbd1 Automated import from //branches/donutburger/...@143018,143018 2009-03-26 17:05:25 -07:00
The Android Open Source Project 96c5af40d6 auto import from //depot/cupcake/@135843 2009-03-03 19:32:22 -08:00
The Android Open Source Project 8c2158a5eb auto import from //depot/cupcake/@135843 2009-03-03 18:28:50 -08:00
The Android Open Source Project f7ae27b973 auto import from //branches/cupcake/...@130745 2009-02-10 15:44:04 -08:00
The Android Open Source Project be72b1d08a auto import from //branches/cupcake/...@127436 2009-01-22 00:13:44 -08:00
The Android Open Source Project 687f9962d7 Code drop from //branches/cupcake/...@124589 2008-12-17 18:05:56 -08:00
The Android Open Source Project 8978aac197 Initial Contribution 2008-10-21 07:00:00 -07:00