)]}'
{
  "log": [
    {
      "commit": "9d05a18490dfac7ea705a6166f06af77a63c5534",
      "tree": "ac56c0843e08f690dd0a297b7ab8d420fa24ac1c",
      "parents": [
        "4a3c3b23d0aa87a68088976b4f397be116cd2338"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 04 10:08:02 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Mar 04 10:08:29 2010 -0800"
      },
      "message": "AsecTests: Add a test to validate container size\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "9b10ef5fe85e9d29721ff0cd15161f960d38a8db",
      "tree": "a6830aad34d62273b02f0e3dbaa054dd7ec7c270",
      "parents": [
        "a034cd3e15b6626be03e60f2d6a0f929dcb950d9"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 09:45:24 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 03 14:06:10 2010 -0800"
      },
      "message": "Rework the way PackageManager binds to default container service.\n\nClean up stale containers when enabling/disabling packages on sdcard.\nCheck the path of packages which are being enabled.\nMake sure gc\u0027s are done prior to destroying containers when moving applicati\nas well as enabling/disabling packages for sdcard mount status changes.\n\nSome miscellaneous issues\n   Remove hack to avoid renaming containers.\n   Fix test with forward locked apps\n   Remove adding container id to asec list when renaming\n   Some cosmetic changes to DefaultContainerService\n"
    },
    {
      "commit": "2269d1572e5fcfb725ea55f5764d8c3280d69f6d",
      "tree": "7ce0788be6d85972d42ee7135cdce82aa323fcc7",
      "parents": [
        "e46145f7c114b9ac6d19c6a7886e9239463f91e1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 24 19:54:22 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 11:39:33 2010 -0800"
      },
      "message": "Re-arrange android-common so framework no longer links with it.\n\nThis is the framework part, moving classes around so the framework\nno longer needs to link to android-common.  Makes some APIs public,\nothers that didn\u0027t need to be public are private in the framework,\nsome small things are copied.\n"
    },
    {
      "commit": "c42e29e0a58d07a95d470780216cdf1d67476bd6",
      "tree": "bb2a39fe7ddaf416a3a67a98eb12b661c7070d6d",
      "parents": [
        "406b09bbd117446814a05aabc5971fd55c6afa5d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 22 16:03:53 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 24 20:30:03 2010 -0800"
      },
      "message": "Add new handler mechanism in MountService to make unmount api asynchronous.\nMountService updates state on PackageManager and then tries to\nkill processes holding file references to media about to be unmounted by\ninvoking api on ACtivityManager. This is retried upto 4 times to make sure all\nprocesses holding file references are killed before unmounting the media\nat specified path.\n\nAlso changed PackageManger api to return boolean value to indicate if\nMountService is likely to receive broadcasts related to apps on sd.\n"
    },
    {
      "commit": "7db3e5e287087d9665ffa84ecbe87603001fc55f",
      "tree": "d382823640edd75a9e7a0b7ad76412958806db17",
      "parents": [
        "963bb682bf47792118e2d1cc27ab354c468af12c"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 10:20:37 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 12:13:54 2010 -0800"
      },
      "message": "AsecTests: Add teardown to tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "cf6eaeaae9e6745dd6e07540812c79821d7043c2",
      "tree": "fe1224c5b492a8ad09d00e167b66a45413fb3d73",
      "parents": [
        "2a399f066d4f3870385002cdcda8082a0eeeb770"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 23 19:37:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 24 11:31:36 2010 -0800"
      },
      "message": "Some framework fixes for apps on sd\nchange hard coded path in installd\nfix tests\nWork around for renaming containers.\nDo forced unmount when destroying containers.\nForce a gc in default container service to release handle to parsed package\nand thus avoid getting killed by vold\nSome cosmetic changes to PackageManager api.\nUnit tests for renaming container for MountService\nRemove internal size limit on app to be installed.\n"
    },
    {
      "commit": "85451ee15fdf6cae371dc3005441988c7d426401",
      "tree": "ddf4f750bb3b73759f6268ed975bb385edf3322c",
      "parents": [
        "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 08:54:18 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 24 08:54:18 2010 -0800"
      },
      "message": "MountService: Fix bug which would allow apps to try to rename a container whos dst is mounted\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "da2ca7a5b863d2cef9650cc9cb776a20693d9bb6",
      "tree": "ac615c2e6489d09877260c2451a6686273b4a11c",
      "parents": [
        "d970998b0d489774ad1c5b94b47d233912f00214"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 13:19:38 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 13:19:38 2010 -0800"
      },
      "message": "framework: tests: Clean up asec unit tests and add rename tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "d970998b0d489774ad1c5b94b47d233912f00214",
      "tree": "e319422620d535a0c7172fe8616e67cc27cf86b5",
      "parents": [
        "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:48:48 2010 -0800"
      },
      "message": "framework: storage: Add \u0027force\u0027 option to unmount/destroy storage apis, and update callsites.\n\nAlso adds additional storage unit tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "fea87ae1a742c94c50573dcdd50f07e6d56c8015",
      "tree": "7c56faf4dd4d35554ce341208d8a1a42b66db16c",
      "parents": [
        "e265532f30ca460dc0900c4cdfc3c7425ae7714b"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 17 09:02:17 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 17 09:05:16 2010 -0800"
      },
      "message": "framework: tests: Add some unit-tests for Asec\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "117818e4f171b1fd9daa05349c48f61388f04567",
      "tree": "2bb350a719caf06727a410ce662c46a28c45fb72",
      "parents": [
        "596ce7fbfe5a81a4270949448c08dcb3a684cc3a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 09 03:45:40 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 10 08:59:08 2010 -0800"
      },
      "message": "Add new manifest option for install location\nChange recommendAppInstallLocation api\nadd code to parse new attribute.\nDefine flags in PackageInfo\nAdd new settings attributes for enabling setting and value for install location\nSome tests\nThe policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.\nIf the user enables setting SET_INSTALL_LOCATION(which will always\nbe set to false in final release builds) and sets a prefered location, we try\nto honour it.\n"
    },
    {
      "commit": "b104340496e3a531e26c8f428c808eca0e039f50",
      "tree": "11247cb68359d43ca4871c0cb0165c9bec339a6f",
      "parents": [
        "3ee1317173260252d475772fec09d492f8fcfd33"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Feb 05 08:26:50 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:03:16 2010 -0800"
      },
      "message": "Framework: Clean up / Refactor Mount APIs\n\n - Move android.storage.* -\u003e android.os.storage.* and refactor users\n - Refactor generic shares back to explicit ums enable/disable/isEnabled\n - Remove media insert/removed event callbacks (not ready for Froyo)\n - Remove \u0027label\u0027 from volume state change callbacks\n - Add public API functions for enabling/disabling USB mass storage (permissions enforced\n   in MountSevice)\n - Remove some stray un-needed import lines\n - Move android.os.IMountService / android.os.IMountServiceListener -\u003e android.os.storage\n - Improve code comments\n\nUpdated:\n  MountService: Add dup state check and move debugging behind a conditional\n  UsbStorageActivity: Fix review comments + a TODO\n  StorageNotification: Add @Override tags\n  StorageManager: Don\u0027t use a static Listener list\n  MountService: Reduce bloat and fix \u003d\u003d where I meant .equals()\n  PackageManagerTests: Update for new API\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "b56ae20b22fd7283df32072a431ab6d4965f3c1b",
      "tree": "c26e5e7bf6433dfbe500917fc7001f77c331c4f2",
      "parents": [
        "836a1f2cb99600c26a1a928a9e3240b9dec3079b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Feb 04 22:51:07 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 14:52:25 2010 -0800"
      },
      "message": "Rename media resource broadcasts\nAdd checks for fwdlocked and updated system apps\nadd more tests\nremove duplicate adds\n"
    },
    {
      "commit": "420bc12ed03dd0514e0d0400385ceba3e91bbe2c",
      "tree": "398c783a8628c137c10c9d10bae64c6e4eb97bc1",
      "parents": [
        "8186ae5a9687f66389f2bf7927b54ba3fc836f76"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Fri Feb 05 18:27:08 2010 -0600"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Fri Feb 05 18:27:08 2010 -0600"
      },
      "message": "Remove reference to unused static library.\n\nChange-Id: I5ad76658129b003fb96fc1e960a12f6e672da108\n"
    },
    {
      "commit": "afbaaa189fbc18b3acbb06e03233cf3442f2b1c4",
      "tree": "9406185a598b72b1a0b4391b3ccc5fdbd7740423",
      "parents": [
        "3c4a1ebc19abba06af565071c243e55ba6eef585"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 03 11:24:49 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Feb 03 17:34:18 2010 -0800"
      },
      "message": "Some tests for install and replace package.\n"
    },
    {
      "commit": "1a44d5dcabc18cd5ef111f732ccff91683a1a093",
      "tree": "e370267a65ba54a43e3026ff9b282cc4e3dad869",
      "parents": [
        "35ec7863e18ce3d242010b76a50df5a8c285325b"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Jan 13 10:42:43 2010 -0800"
      },
      "committer": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Fri Jan 29 13:35:51 2010 -0800"
      },
      "message": "Phase 2 of test cleanup: moving test files from AndroidTests closer to their sources.\n\nMost of these are file moves; a couple notable exceptions are the changes due to the move, and fixing up test code:\n- database/DatabaseCursorTest.java\n- database/DatabaseStatementTest.java\n- net/UriTest.java\n"
    },
    {
      "commit": "445cc0e4bfd5b9460fb1cdccd22d8d54a49e5da1",
      "tree": "2749bea59f5f5746e54df16e82b593f6e15fea43",
      "parents": [
        "946e007283d76d6855824ed00910fb1470d369c2",
        "ad8d0d1b4d4b8cde73c30e9facad6514e492bf11"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Jan 27 12:10:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 27 12:10:56 2010 -0800"
      },
      "message": "Merge \"dont use sqlite_stmt_journals dir\""
    },
    {
      "commit": "ad8d0d1b4d4b8cde73c30e9facad6514e492bf11",
      "tree": "ffaf0ebbfa3b7bd204c1ff4ed34b166b13aff18f",
      "parents": [
        "199566045d2c22981604b1894e416373eb0e74ed"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Jan 26 22:27:56 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Jan 27 12:10:14 2010 -0800"
      },
      "message": "dont use sqlite_stmt_journals dir\n"
    },
    {
      "commit": "bce2806a37a281396b944d10a6a8161de9977225",
      "tree": "e5c62a1c9ab183c249eede20dc3a51845a5a708b",
      "parents": [
        "7d3a558b9ebf2256517ec99cd09c066cc7dbc92c",
        "4256586663f0d045c69ea818db4893b3365b9915"
      ],
      "author": {
        "name": "Eugene Koh",
        "email": "koh@google.com",
        "time": "Tue Jan 26 16:48:52 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 16:48:52 2010 -0800"
      },
      "message": "Merge \"Modify the interface of HanziToPinyin class to make it generic and add test class\""
    },
    {
      "commit": "4256586663f0d045c69ea818db4893b3365b9915",
      "tree": "e14afc7537bac6b291e025cc6c2b48755adf3a04",
      "parents": [
        "52a014492c10d825ec26b2179bd8369bf78363ef"
      ],
      "author": {
        "name": "Bai Tao",
        "email": "michaelbai@google.com",
        "time": "Thu Jan 21 08:48:30 2010 +0800"
      },
      "committer": {
        "name": "Bai Tao",
        "email": "michaelbai@google.com",
        "time": "Sat Jan 23 12:57:21 2010 +0800"
      },
      "message": "Modify the interface of HanziToPinyin class to make it generic and add test class\n"
    },
    {
      "commit": "39b17a15669a7c372a77b967cf0bd6621cd52bee",
      "tree": "4a664e891c4a395bb2810ccd2bf175b97b2ef7a1",
      "parents": [
        "7c45147f3537bc777a04545a6f0bc70550df5269"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jan 22 14:23:14 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jan 22 14:23:14 2010 -0800"
      },
      "message": "remove GoogleLoginService unit test\n\nThis now lives in the vendor/google directory alongside\nGoogleLoginService itself.\n\nChange-Id: Ic934fa563cdad965e5f95c2f6da407ea720bc0bf\n"
    },
    {
      "commit": "0a2fb2174ed8d3e34ae435410ea3998a1fb2d97f",
      "tree": "865aa74cbf0beb3453115aa5db43b93002a5591e",
      "parents": [
        "72666bac20cddba1d2269578c82671fdf5beffc2"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 21 14:36:17 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 21 14:36:17 2010 -0800"
      },
      "message": "relocate GoogleLoginService\n\nChange-Id: I79f4ff658ab136adcc54c432db76f34d2de5f6ac\n"
    },
    {
      "commit": "d60e31cbe32edd4d8fde9db5be26eb9ab709ae5e",
      "tree": "b776c6d002e5f636246b4972f502f063777f1e5c",
      "parents": [
        "fe86b045311f56e23dd57c4a070323dc9bf1bad9",
        "de8aa87016a8dc2c252002ec60f6285b7a839336"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 15 14:44:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 15 14:44:58 2010 -0800"
      },
      "message": "Merge \"Update Time.parse3339() unit tests\""
    },
    {
      "commit": "de8aa87016a8dc2c252002ec60f6285b7a839336",
      "tree": "2fdb2899cff26735ef901fe455d6961ab5e60238",
      "parents": [
        "93aea69649c2ac163db3333563644d2593f2770c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 15 14:22:10 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 15 14:23:20 2010 -0800"
      },
      "message": "Update Time.parse3339() unit tests\n\nMonth should be n-1 from input and timezone is already normalized to\nUTC.\n\nChange-Id: I030c6444f92b96f85acea81f1675edf061bb5451\n"
    },
    {
      "commit": "e495d1f74af13aec8d5d825e93e4cfe1e4fe7468",
      "tree": "598f4255c3068e244a15911423e375464f70f44d",
      "parents": [
        "f2275078bd5ba6bc0b184098573341c5958289ab"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Jan 06 16:34:19 2010 -0800"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Thu Jan 14 15:22:58 2010 -0800"
      },
      "message": "fix a bug in compiled-sql caching \u0026 hide public api setMaxSqlCacheSize\n\nthis is a clone of https://android-git.corp.google.com/g/#change,35174.\nif the cache is full to its capacity and if a new statement is to be cached,\none of the entries in the cache is thrown out to make room for the new one.\nbut the one that is thrown out doesn\u0027t get deallocated by SQLiteProgram\nbecause it doesn\u0027t know that it should.\nfixed this by having SQLiteProgram finalize its sql statement in\nreleaseReference*() methods, if the statement is not in cache.\n"
    },
    {
      "commit": "96e40b4b3769a7880eca66d1955b5e5583e979c8",
      "tree": "e1f9dfaac111a2a56ae2db30e4994bea3b41c7e8",
      "parents": [
        "8d1966eac0faf0f3976cdf7bcfbc7aea9de81540",
        "ae46195d4fcde85c0901ca476a5cffd015d573cb"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Jan 13 14:19:11 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 13 14:19:11 2010 -0800"
      },
      "message": "Merge \"Framework Tests Cleanup: Removing CTS duplicate files\""
    },
    {
      "commit": "8d1966eac0faf0f3976cdf7bcfbc7aea9de81540",
      "tree": "5ed7e9278a16e08d8b5a2c9956b72d2acd7c0b51",
      "parents": [
        "83fe5de254f3129e1c4e1cc9c317108f218677ea",
        "2574d50bd59ee9c7e5bccf26df9f2d0ab007a934"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Jan 13 14:18:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 13 14:18:48 2010 -0800"
      },
      "message": "Merge \"Framework Tests Cleanup: Removing CTS duplicate files\""
    },
    {
      "commit": "83fe5de254f3129e1c4e1cc9c317108f218677ea",
      "tree": "2ff862297a7505969ac17477b5edaee743140a01",
      "parents": [
        "ae51f0a857a35d863925964458c258e4fb248312",
        "c19be0527ca0f60ae7a2077f98cb2bd7d2d5f4a4"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Jan 13 14:18:17 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 13 14:18:17 2010 -0800"
      },
      "message": "Merge \"Framework Tests Cleanup: Removing CTS duplicate files\""
    },
    {
      "commit": "980a938c1c9a6a5791a8240e5a1e6638ab28dc77",
      "tree": "75a3a1347b5423cc98859d3976076cea3dc22564",
      "parents": [
        "0a0289420227fee51406cf4cc508f09d8ecdd2f4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jan 08 15:06:28 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jan 08 15:11:38 2010 -0800"
      },
      "message": "Deprecate fill_parent and introduce match_parent.\nBug: #2361749.\n"
    },
    {
      "commit": "edc5189c33de03f3e2f5f73edc0e007992b933c9",
      "tree": "475cb09325a6ec4e1627a4c57ad1e5a5b4cc250b",
      "parents": [
        "43866e0c48bb0effe8805afd62b253e50ca7d591"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 13:51:16 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 15:00:37 2010 -0800"
      },
      "message": "change remaining frameworks/base Gservices to Secure settings\n\nChange-Id: I61bdb05a2526523700c2833154d5a4133881ef10\n"
    },
    {
      "commit": "43866e0c48bb0effe8805afd62b253e50ca7d591",
      "tree": "c70bc473e8e7d9662916ff645d6bac8cfe85d478",
      "parents": [
        "6414970ac7dc629345942059f75362d894c2310e"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 12:09:54 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 14:20:39 2010 -0800"
      },
      "message": "move some system services from gservices to secure settings\n\nChange-Id: Ie2dfb99a2b42b2cc9310b858c044d8684e3493fa\n"
    },
    {
      "commit": "1301341f13fab2ced33a6f4dc0f0e8f609217105",
      "tree": "89c1564ed7816074f26d6d6a44ec0e2ef5de025c",
      "parents": [
        "1dabb95d280480c4c519b52ded8990d39c8b1614"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Jan 05 12:38:52 2010 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Jan 05 13:44:51 2010 +0900"
      },
      "message": "Fix test breakage in vCard exporter.\n\nDue to the change Iae8dbac1, all tests for vCard exporeter has failed.\nThis change fixes the breakage by using a kind of dirty Dependency Injection.\n\nCurrent test framework for vCard exporter strongly depends on the assumption that\nContentValues objects are able to be directly passed to objects which use\nContentResolver, while the change above disabled the feature by removing\nqueryEntities().\n\nThis change makes VCardComposer forcibly uses queryEntities() via Reflection.\nI agree that this change is not so clean, but works fine for now.\n"
    },
    {
      "commit": "ae46195d4fcde85c0901ca476a5cffd015d573cb",
      "tree": "3419dc7029220eceec7d0eaa211cf99e0f7a6e50",
      "parents": [
        "759a77e50211b9b1ba937f9ff89ae1fa35ca88e9"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Dec 23 17:26:20 2009 -0800"
      },
      "committer": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Mon Jan 04 12:23:56 2010 -0800"
      },
      "message": "Framework Tests Cleanup: Removing CTS duplicate files\n\nThis file is basically just a wrapper around AndroidTest, which is going away as part of framework test cleanup.\n\nAndroidTests.java is just a wrapper around all the actual tests, so can be removed as well.\n"
    },
    {
      "commit": "e38d58bf890c03eb034afd18c62c730c7d735f1c",
      "tree": "f8b42d11fc37826b1afd7a7242f94eee83299458",
      "parents": [
        "2c3058a88f035398fee4321a15347ca51af31cc7"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Dec 30 19:29:03 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Jan 04 10:14:21 2010 -0800"
      },
      "message": "Remove Google-specific (or only-used-by-Google-code) classes.\n\nFix a small typo in Context javadoc.\n"
    },
    {
      "commit": "2574d50bd59ee9c7e5bccf26df9f2d0ab007a934",
      "tree": "3b308548a42fb67d4b9cfc5ce68dc5b1f36078a6",
      "parents": [
        "121ec7ff33b05227cf704ff1ff6313a38897cca7"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Dec 23 18:05:01 2009 -0800"
      },
      "committer": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Dec 23 18:05:01 2009 -0800"
      },
      "message": "Framework Tests Cleanup: Removing CTS duplicate files\n\nFirst phase of cleanup: removing duplicate files that already exist in CTS.\nDatabaseTests.java and ContentTests.java are modified to remove entries\nof deleted files, the remaining files are deleted duplicates.\n"
    },
    {
      "commit": "c19be0527ca0f60ae7a2077f98cb2bd7d2d5f4a4",
      "tree": "965a935f791d4370b66d8eb63b731dd09c736348",
      "parents": [
        "2ce9a190449bf495edcf2931bf172d1e1dcb94b5"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Dec 23 16:30:36 2009 -0800"
      },
      "committer": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Dec 23 16:30:36 2009 -0800"
      },
      "message": "Framework Tests Cleanup: Removing CTS duplicate files\n\nNeighboringCellInfoTest.java is already included in CTS, so removing this one under frameworks.\n"
    },
    {
      "commit": "f0108cda21bec61418b24aa6217406072780b5d5",
      "tree": "8866dfdec50a4bff63f188784779f7e1a9aa0216",
      "parents": [
        "fddd8f96f34b622cbdd0d891f8a7f5b7e18fdbf8",
        "ad2fa35d888e0763bfef0fc060775bec5d169479"
      ],
      "author": {
        "name": "Tom Taylor",
        "email": "tomtaylor@google.com",
        "time": "Tue Dec 22 10:11:55 2009 -0800"
      },
      "committer": {
        "name": "Tom Taylor",
        "email": "tomtaylor@google.com",
        "time": "Tue Dec 22 10:11:55 2009 -0800"
      },
      "message": "resolved conflicts for merge of ad2fa35d to master\n\nChange-Id: Ia4362cd48ac0689b91003943a4cd9660da72ff90\n"
    },
    {
      "commit": "5237f019b9f3fa1f4001dc1ad27d7781d3032985",
      "tree": "bc6443db97d2c7473fc9b7dfd34537c80b8a43db",
      "parents": [
        "223bd7af9832971075ba9fd9b0e41b7d693bd791",
        "c4978805dc8837570701629a9b8098e80804ad34"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Dec 21 15:52:57 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 21 15:52:57 2009 -0800"
      },
      "message": "am c4978805: merge from open-source master\n\nMerge commit \u0027c4978805dc8837570701629a9b8098e80804ad34\u0027\n\n* commit \u0027c4978805dc8837570701629a9b8098e80804ad34\u0027:\n  ImageButton example doesn\u0027t work. Default state should be at the last.\n  Time.parse3339 range checking and proper \u0027sec-frac\u0027 skip\n"
    },
    {
      "commit": "ad2fa35d888e0763bfef0fc060775bec5d169479",
      "tree": "ac2dc1f03392f34e08c69bc8c0272f3da20e5992",
      "parents": [
        "497cf2b9bf2a67d8e5492c3139624e6363ec59c1",
        "d4a4729c0cac582a2dcec7c8cfb316b81885a0f0"
      ],
      "author": {
        "name": "Tom Taylor",
        "email": "tomtaylor@google.com",
        "time": "Mon Dec 21 15:44:34 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 21 15:44:34 2009 -0800"
      },
      "message": "am d4a4729c: Update imports to android-common\n\nMerge commit \u0027d4a4729c0cac582a2dcec7c8cfb316b81885a0f0\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027d4a4729c0cac582a2dcec7c8cfb316b81885a0f0\u0027:\n  Update imports to android-common\n"
    },
    {
      "commit": "d4a4729c0cac582a2dcec7c8cfb316b81885a0f0",
      "tree": "900252de39b7edd2409c6fff0d0609da759b2d6f",
      "parents": [
        "6a18871355f22bd0f91192e91345f48dff91f71a"
      ],
      "author": {
        "name": "Tom Taylor",
        "email": "tomtaylor@google.com",
        "time": "Mon Dec 21 13:59:18 2009 -0800"
      },
      "committer": {
        "name": "Tom Taylor",
        "email": "tomtaylor@google.com",
        "time": "Mon Dec 21 13:59:18 2009 -0800"
      },
      "message": "Update imports to android-common\n\nSeveral files were moved to android-common. Update all the references\nto import those files from the new location.\n"
    },
    {
      "commit": "b8d46988180edf780b9aa8ba853601fdce2abb95",
      "tree": "853f9b5ead9feff2b160b18f4df4b0ebc33afbb8",
      "parents": [
        "7f6f631070915500dfdbd4d2b9a2415fb23786a8"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Wed Dec 16 16:08:26 2009 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Thu Dec 17 10:47:17 2009 -0800"
      },
      "message": "Bug 2330278\n\nDeleted old copy of SimplePullParser, since it has been moved to\ngdata\n"
    },
    {
      "commit": "01dde47ea9dda6f869557931db5f64573b9ce73d",
      "tree": "c584d1a66d46957e409b5426b43ddeba08aaca6e",
      "parents": [
        "d6542507e73e1d7f3380cb4657a0745772818002"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Tue Dec 15 13:10:06 2009 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Tue Dec 15 14:26:13 2009 -0800"
      },
      "message": "Bug 2326468\n\nDeleted old copy of the GoogleHttpClient, and the unit tests.\n"
    },
    {
      "commit": "e143bc92b2dfa205ea6af80855132bf52e018688",
      "tree": "46933356cfa47695992d68e3336788d50ad8f7f5",
      "parents": [
        "1a500c46ef3be3316616f7bb3eaf8ade05262359",
        "15d3bb2ce6b3e48608148d56b2ba1555ad63dff8"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Mon Dec 14 10:56:45 2009 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Mon Dec 14 10:56:45 2009 -0800"
      },
      "message": "resolved conflicts for merge of 15d3bb2c to master\n"
    },
    {
      "commit": "15d3bb2ce6b3e48608148d56b2ba1555ad63dff8",
      "tree": "9b59c763ce07e3888794bbbc9378559326779cdd",
      "parents": [
        "80a1335049bd6653a558bd9a2c625c091900caff",
        "7762d93621f508f4410fd37b5bbdfec0071b0420"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Mon Dec 14 10:10:20 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 14 10:10:20 2009 -0800"
      },
      "message": "am 7762d936: Unbundling work\n\nMerge commit \u00277762d93621f508f4410fd37b5bbdfec0071b0420\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00277762d93621f508f4410fd37b5bbdfec0071b0420\u0027:\n  Unbundling work\n"
    },
    {
      "commit": "7762d93621f508f4410fd37b5bbdfec0071b0420",
      "tree": "1429bfabf0ebbc77c5bd2e924d46530e96db981b",
      "parents": [
        "b6ddc7ae3507f0e1ea9a76c76f829bc8b26a292c"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Dec 11 14:13:48 2009 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Mon Dec 14 09:24:09 2009 -0800"
      },
      "message": "Unbundling work\n\nMoved AndroidHttpClient, Rfc822InputFilter, Rfc822Validator\nNumberPicker, NumberPickerButton to android-common\n---\n"
    },
    {
      "commit": "d021302134460efbb596f4a4a2951e75b83d0ede",
      "tree": "0ad87a7fd4a63d68f2a72551a6a674c6f677051f",
      "parents": [
        "07c71147dda8bda9a40bea10f6029d6cfcaae00f",
        "f6bb01b0d81943a00a42e56f2e65549ca03c386d"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Dec 11 14:55:24 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Dec 11 14:55:24 2009 -0800"
      },
      "message": "resolved conflicts for merge of f6bb01b0 to master\n"
    },
    {
      "commit": "f6bb01b0d81943a00a42e56f2e65549ca03c386d",
      "tree": "1f78ad7243b02a906873cf14c14c052d291d0ac1",
      "parents": [
        "09f82ec61cca00bd8b08529a94139dd6ac5cec73",
        "b7f0367cec1c744aa66ef397b0244e25d507491c"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Dec 11 14:32:40 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 11 14:32:40 2009 -0800"
      },
      "message": "am b7f0367c: Eliminate CrashData and friends.\n\nMerge commit \u0027b7f0367cec1c744aa66ef397b0244e25d507491c\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027b7f0367cec1c744aa66ef397b0244e25d507491c\u0027:\n  Eliminate CrashData and friends.\n"
    },
    {
      "commit": "b7f0367cec1c744aa66ef397b0244e25d507491c",
      "tree": "7b70d87b9886ea1567647aac00fccb3198accc8c",
      "parents": [
        "af1255dab8fa3eab1caf9bae799f80de14a74470"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Dec 09 16:22:32 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Dec 11 13:27:04 2009 -0800"
      },
      "message": "Eliminate CrashData and friends.\n\n(CrashData was a custom-marshalled crash-info class used for a server crash\nreporting system I am deprecating).  Use ApplicationErrorReport.CrashInfo\ninstead to report crash details (mostly the stack trace) from RuntimeInfo to\nActivityManagerService, since we\u0027re likely to need the crash information in\nthat form anyway.\n\nRemove the (long-disabled) flags and support for the \"Debug\" button\nin the crash dialog.\n\nFurther gut the ICheckinService interface by removing the crash-reporting\nAPIs (and everything that calls them), plus the synchronous checkin()\nmethod (which has been stubbed out for a while now).\n\nA new dropbox-based crash reporting system is in the works, but not part\nof this change.\n"
    },
    {
      "commit": "7a4fb7376b6819f609b8f462c56329eff50fcb6d",
      "tree": "26136ab7c68f7edc24ab0ad218be05a7e7f8d023",
      "parents": [
        "49c6eacba14d495ed69eb436396dd216dba8b6c4",
        "595c40920f31ba7b6674eb341548173e2aaf6ea7"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Dec 11 01:40:43 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 11 01:40:43 2009 -0800"
      },
      "message": "am 595c4092: am 8fb0faf3: Merge change I0a56959e into eclair-mr2\n\nMerge commit \u0027595c40920f31ba7b6674eb341548173e2aaf6ea7\u0027\n\n* commit \u0027595c40920f31ba7b6674eb341548173e2aaf6ea7\u0027:\n  Implement a HierarchicalStateMachine\n"
    },
    {
      "commit": "595c40920f31ba7b6674eb341548173e2aaf6ea7",
      "tree": "04dc726109367967d33f605b89adaf8b61ade401",
      "parents": [
        "cdbf5746fcbee26bed74090e22aff761d1b4da3b",
        "8fb0faf3cc2f792db8cf38fe5ab67c5eab7baa5c"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Dec 10 21:24:59 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 21:24:59 2009 -0800"
      },
      "message": "am 8fb0faf3: Merge change I0a56959e into eclair-mr2\n\nMerge commit \u00278fb0faf3cc2f792db8cf38fe5ab67c5eab7baa5c\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00278fb0faf3cc2f792db8cf38fe5ab67c5eab7baa5c\u0027:\n  Implement a HierarchicalStateMachine\n"
    },
    {
      "commit": "8fb0faf3cc2f792db8cf38fe5ab67c5eab7baa5c",
      "tree": "3c15b502992e9c70234e52021c359de1cabc274e",
      "parents": [
        "b5ef7ee1644b099498ddd29c1d051e7ee26ccfd3",
        "fc5b4802a544b6ca304aa7e58a26018ef714d233"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 21:22:19 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 21:22:19 2009 -0800"
      },
      "message": "Merge change I0a56959e into eclair-mr2\n\n* changes:\n  Implement a HierarchicalStateMachine\n"
    },
    {
      "commit": "2ec6c5699181316e5a5c2cd293c006ac4a8bb101",
      "tree": "5dffd05ec1b6cd3630bef911631ef2150904088a",
      "parents": [
        "8415afdb706c94cc297195a0dd5b5a62726d66e4"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Dec 09 16:00:31 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 10 10:37:52 2009 -0800"
      },
      "message": "am 328c0e79: - removed the concept of Entity from the ContentProvider APIs - removed the parcelling ability from Entity and EntityIterator and made them public - added an EntityIterator abstract implementation that allow easy wrapping of a Cursor - changed the VCard c\n\nMerge commit \u0027328c0e7986aa6bb7752ec6de3da9c999920bb55f\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027328c0e7986aa6bb7752ec6de3da9c999920bb55f\u0027:\n  - removed the concept of Entity from the ContentProvider APIs\n"
    },
    {
      "commit": "3d2560ad9281b03ce737f7e85752e92c457f87c2",
      "tree": "f2e8571433be89e4c6191300f742220b59e64770",
      "parents": [
        "a14b4890b914971c01bf130697090e7e775aeab4",
        "328c0e7986aa6bb7752ec6de3da9c999920bb55f"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Dec 09 16:00:31 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 09 16:00:31 2009 -0800"
      },
      "message": "am 328c0e79: - removed the concept of Entity from the ContentProvider APIs - removed the parcelling ability from Entity and EntityIterator and made them public - added an EntityIterator abstract implementation that allow easy wrapping of a Cursor - changed the VCard c\n\nMerge commit \u0027328c0e7986aa6bb7752ec6de3da9c999920bb55f\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027328c0e7986aa6bb7752ec6de3da9c999920bb55f\u0027:\n  - removed the concept of Entity from the ContentProvider APIs\n"
    },
    {
      "commit": "328c0e7986aa6bb7752ec6de3da9c999920bb55f",
      "tree": "5b708eac07a46a6fa7a7f666b4d3266a922b58d6",
      "parents": [
        "a50d450863cb84805ac6809a4c1f7b83984da1ee"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Mon Dec 07 14:52:28 2009 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Dec 09 10:30:18 2009 -0800"
      },
      "message": "- removed the concept of Entity from the ContentProvider APIs\n- removed the parcelling ability from Entity and EntityIterator and made them public\n- added an EntityIterator abstract implementation that allow easy wrapping of a Cursor\n- changed the VCard code to use the new APIs\n"
    },
    {
      "commit": "fc5b4802a544b6ca304aa7e58a26018ef714d233",
      "tree": "62dd32cd9c27cba0931a8c8adff6f10d4ca8ea69",
      "parents": [
        "9e3e2d3a6967301730fd383e8b04d53fdfd008e5"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Dec 08 21:22:24 2009 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Dec 08 21:22:24 2009 -0800"
      },
      "message": "Implement a HierarchicalStateMachine\n\nA hierarchical state machine is a state machine which processes messages\nand can have states arranged hierarchically. Each state in the state\nmachine may have a single parent state and if a child state is unable to\nhandle a message it may have the message processed by its parent.\n\nChange-Id: I0a56959ece8f89e4f9122dc8044120b82d517bbb\n"
    },
    {
      "commit": "c5303c3a55a08336ec416a3d80550f464f817429",
      "tree": "eff4ac012769a4609140cc632906563c715e1ba1",
      "parents": [
        "cd9d0242fd5bd34b9b1813477f3b694cbc870852",
        "8d962613464b206f4c0b2323607c5e248543ad24"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Mon Dec 07 14:58:38 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 07 14:58:38 2009 -0800"
      },
      "message": "am 8d962613: am 6dba0680: Merge change I9589f9c2 into eclair-mr2\n\nMerge commit \u00278d962613464b206f4c0b2323607c5e248543ad24\u0027\n\n* commit \u00278d962613464b206f4c0b2323607c5e248543ad24\u0027:\n  Move android.server.search.SearchableInfo to android.app\n"
    },
    {
      "commit": "8d962613464b206f4c0b2323607c5e248543ad24",
      "tree": "1db2c021880930bdd756dae1c20eb83c0e76423e",
      "parents": [
        "16c82c34edfef70bc74e6d6fdf3f08506bf8f27f",
        "6dba0680cd3bc0bd987a3d01fc49421897528f20"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Sat Dec 05 10:26:04 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 05 10:26:04 2009 -0800"
      },
      "message": "am 6dba0680: Merge change I9589f9c2 into eclair-mr2\n\nMerge commit \u00276dba0680cd3bc0bd987a3d01fc49421897528f20\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00276dba0680cd3bc0bd987a3d01fc49421897528f20\u0027:\n  Move android.server.search.SearchableInfo to android.app\n"
    },
    {
      "commit": "2126aac7f992b57fc52141a8bd09fa7a45ac2509",
      "tree": "10081eff5afe11b5eb2e0abcb69b93cad2df0d66",
      "parents": [
        "03cb1f15ca73900f62c12694e05bb0b0e0b6669d"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Dec 03 15:48:19 2009 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Dec 04 12:52:51 2009 +0000"
      },
      "message": "Move android.server.search.SearchableInfo to android.app\n\nWe need to expose SearchableInfo in the SDK in order to unbundle\nQuick Search Box. Since the android.server.search package is\nhidden, I\u0027m moving SearchableInfo to android.app, where\nSearchManager lives.\n\nThis change doesn\u0027t actually expose SearchableInfo. I\u0027ll do\nthat in a separate change to keep the change that\napi-council needs to review small.\n\nThis is part of the fix for: http://b/issue?id\u003d2270838\n\nChange-Id: I9589f9c2c11d36c958beedff8245fe0c3319c6ba\n"
    },
    {
      "commit": "f3ab5c6b32e682e94e6909ef427e1ac7381f0490",
      "tree": "1d75f6ada7b879476b2b6f17a9157ea210a01186",
      "parents": [
        "d107146ca174adc51721b2e654e9d29d7478234b",
        "86ef717e2660dbc914dcf68295fbf9943c45bc44"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 25 13:11:59 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 25 13:11:59 2009 -0800"
      },
      "message": "am 86ef717e: am 99cee031: Merge change Ieb7a7d57 into eclair-mr2\n\nMerge commit \u002786ef717e2660dbc914dcf68295fbf9943c45bc44\u0027\n\n* commit \u002786ef717e2660dbc914dcf68295fbf9943c45bc44\u0027:\n  Change the DropBoxManager API slightly (this is public, but not yet released) --\n"
    },
    {
      "commit": "86ef717e2660dbc914dcf68295fbf9943c45bc44",
      "tree": "c5fa8d52f0d09920ac2e62e2a6d9bff1bb770751",
      "parents": [
        "f6a1dab030095ad1ed58d387ff21a112bca5b610",
        "99cee0318bdceb6e996bbe9a3e0f961d622e0365"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 25 13:04:19 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 25 13:04:19 2009 -0800"
      },
      "message": "am 99cee031: Merge change Ieb7a7d57 into eclair-mr2\n\nMerge commit \u002799cee0318bdceb6e996bbe9a3e0f961d622e0365\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002799cee0318bdceb6e996bbe9a3e0f961d622e0365\u0027:\n  Change the DropBoxManager API slightly (this is public, but not yet released) --\n"
    },
    {
      "commit": "eb7a7d57ca50f85b054edadab766b51ff22a2dfd",
      "tree": "556e05254f66359607699f4dcca123143052e0c4",
      "parents": [
        "a85a0ac1072c7653fdafa791416658154b76ac0d"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 25 12:38:00 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 25 12:38:00 2009 -0800"
      },
      "message": "Change the DropBoxManager API slightly (this is public, but not yet released) --\ntake a File instead of a ParcelFileDescriptor (gets opened internally) --\nthat way the caller doesn\u0027t have to worry about closing their PFD and so on.\n(Pretty much 100% of the time the caller will be uploading a file, anyway.)\n"
    },
    {
      "commit": "5bb9771ec74b6e8db7136c1b10aefececcb33719",
      "tree": "385112e9840d720e676c2e6209d91d74a1e2b2ae",
      "parents": [
        "d240b7489a39ad970a8f69e60331b82f3f53d85b",
        "b867594323f430d83e4b51279c79d1f057b70267"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 11:39:32 2009 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 11:39:32 2009 -0800"
      },
      "message": "resolved conflicts for merge of b8675943 to master\n"
    },
    {
      "commit": "b867594323f430d83e4b51279c79d1f057b70267",
      "tree": "296ceb9d71bdc2391868e6d38995a4bee9519c12",
      "parents": [
        "0d2feb0d7355e6bb6235053a162aa8d6b770deeb",
        "2464acc6da6393f0163894094468f68b8e496cea"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 11:03:05 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 24 11:03:05 2009 -0800"
      },
      "message": "am 2464acc6: moved the gdata library to vendor/google\n\nMerge commit \u00272464acc6da6393f0163894094468f68b8e496cea\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00272464acc6da6393f0163894094468f68b8e496cea\u0027:\n  moved the gdata library to vendor/google\n"
    },
    {
      "commit": "2464acc6da6393f0163894094468f68b8e496cea",
      "tree": "c20762f1c00066b974b719c8361cce85f17a81c7",
      "parents": [
        "82d4b5ccaf5518ed9286d89e60ac9a595239ac35"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 09:47:01 2009 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 10:42:00 2009 -0800"
      },
      "message": "moved the gdata library to vendor/google\n"
    },
    {
      "commit": "7fee29dafdb17199ddfa2761aa85ea639fdae2e9",
      "tree": "6149619746d20e24b22d9dab0882378315d89ab1",
      "parents": [
        "e8eb17e211da96b619b0915406d1e42c8495e4f4",
        "4ee476ef94f7834c18ee378c788abcdb0728954f"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 23:23:38 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 23:23:38 2009 -0800"
      },
      "message": "am 4ee476ef: am 5e332efd: Merge change I903ce7b1 into eclair-mr2\n\nMerge commit \u00274ee476ef94f7834c18ee378c788abcdb0728954f\u0027\n\n* commit \u00274ee476ef94f7834c18ee378c788abcdb0728954f\u0027:\n  Fix a problem in which Android custom fields are not emitted correctly in non-Ascii languages.\n"
    },
    {
      "commit": "4ee476ef94f7834c18ee378c788abcdb0728954f",
      "tree": "6db66b79dfab89607705b7a5c766a3d58b2f56b1",
      "parents": [
        "e627a75974f7d786d7f5f28909e535c09f6cc8b1",
        "5e332efd56ffc8bcc6c40b214aca66bec21648b7"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 23:19:32 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 23:19:32 2009 -0800"
      },
      "message": "am 5e332efd: Merge change I903ce7b1 into eclair-mr2\n\nMerge commit \u00275e332efd56ffc8bcc6c40b214aca66bec21648b7\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00275e332efd56ffc8bcc6c40b214aca66bec21648b7\u0027:\n  Fix a problem in which Android custom fields are not emitted correctly in non-Ascii languages.\n"
    },
    {
      "commit": "a750fdd765ec253ffa8bf3d4848d5c3a35e1979b",
      "tree": "e423b7aec597ea8117ea767f9ea1516663d89939",
      "parents": [
        "b439f561a6aa3900f1850e71a4aa60618af13f90"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Nov 20 16:09:34 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Nov 20 16:13:07 2009 +0900"
      },
      "message": "Fix a problem in which Android custom fields are not emitted correctly in non-Ascii languages.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "3b90f65c02e1e36945b7c131fdc4a1112332458e",
      "tree": "3d055e6824fc3f147587071207bb160887d34f20",
      "parents": [
        "81e3048020e48cbc0e2b89084cb0b3d67860dbb3",
        "23eb822369952931935589a8b838929b4c044fba"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 18:59:09 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 18:59:09 2009 -0800"
      },
      "message": "am 23eb8223: am 4f81eac4: Merge change I27b1bb90 into eclair-mr2\n\nMerge commit \u002723eb822369952931935589a8b838929b4c044fba\u0027\n\n* commit \u002723eb822369952931935589a8b838929b4c044fba\u0027:\n  Refactor vCard test code and modify unit tests.\n"
    },
    {
      "commit": "23eb822369952931935589a8b838929b4c044fba",
      "tree": "e2f796fb29feae4ec4ab42aeb06f8246e5403b99",
      "parents": [
        "043c72766248d0a4783c506fd4f604ed63e763d4",
        "4f81eac4ea57aaf9d2b89ab8b201c60ca5bf3c09"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 18:54:32 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 18:54:32 2009 -0800"
      },
      "message": "am 4f81eac4: Merge change I27b1bb90 into eclair-mr2\n\nMerge commit \u00274f81eac4ea57aaf9d2b89ab8b201c60ca5bf3c09\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00274f81eac4ea57aaf9d2b89ab8b201c60ca5bf3c09\u0027:\n  Refactor vCard test code and modify unit tests.\n"
    },
    {
      "commit": "673c1d1fc9f3c004e999f763a9c718e656497d32",
      "tree": "2f375194729a4029adc68df567bad3c02ac19b43",
      "parents": [
        "eb114de5037bba89333bd7d57d305ae989727096"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Nov 20 11:06:39 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Nov 20 11:18:49 2009 +0900"
      },
      "message": "Refactor vCard test code and modify unit tests.\n\nFactor out all the classes previously embedded in VCardTestsBase.java so that readers are able to\nlook over each file easily and each class explicitly mention the dependency between each other.\n\nMake all the test cases use mVerifier in VCardTestsBase so that verify() call will not be\nforgotten. Actually there were three tests found in which verify() was not called.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "35e3d527d37bcaf1aaf1620e4b3364b1b1f2d3a6",
      "tree": "42d4599429cca270d4c731910e3420408e56ad32",
      "parents": [
        "42328e3a1f692185d09c931224dc2a7ba799e27c",
        "1b3a7b433cfca22f9e69d9103cae0ace216010b5"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 17:42:27 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 17:42:27 2009 -0800"
      },
      "message": "am 1b3a7b43: am eb114de5: Merge change I639b0f03 into eclair-mr2\n\nMerge commit \u00271b3a7b433cfca22f9e69d9103cae0ace216010b5\u0027\n\n* commit \u00271b3a7b433cfca22f9e69d9103cae0ace216010b5\u0027:\n  Make vCard exporter append neighborhood to locality field instead of extended address,\n"
    },
    {
      "commit": "1b3a7b433cfca22f9e69d9103cae0ace216010b5",
      "tree": "1d793a39bd5c1e53cb7e9de38e2ede3898697375",
      "parents": [
        "3003f30ddee0cb2f73d894a19bc1449fbe7cd601",
        "eb114de5037bba89333bd7d57d305ae989727096"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 14:18:11 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 19 14:18:11 2009 -0800"
      },
      "message": "am eb114de5: Merge change I639b0f03 into eclair-mr2\n\nMerge commit \u0027eb114de5037bba89333bd7d57d305ae989727096\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027eb114de5037bba89333bd7d57d305ae989727096\u0027:\n  Make vCard exporter append neighborhood to locality field instead of extended address,\n"
    },
    {
      "commit": "639b0f032bd933286a89812544460680a6a01ae4",
      "tree": "7b67c047f3f9edf744fa39badaa2551ef5f2f249",
      "parents": [
        "57534f1b9f52cea094e8197d1ca40f0d2f68cc66"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Nov 20 07:06:40 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Fri Nov 20 07:06:40 2009 +0900"
      },
      "message": "Make vCard exporter append neighborhood to locality field instead of extended address,\nper China convention.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "b0a12a151fa8fe5eeb15bd4a1f89d42505af4ece",
      "tree": "89d9b4d42a5d1a503b582d5e25806ebbeb6432dc",
      "parents": [
        "5a1b8da7df0afa44cfa1f8bdc7585ff7ac93dfec",
        "e922751eb6d5e19a4c85dc92d57fddb7ccff7808"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 18:30:40 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 18:30:40 2009 -0800"
      },
      "message": "am e922751e: am 6a942dbe: Merge change Ifd754059 into eclair-mr2\n\nMerge commit \u0027e922751eb6d5e19a4c85dc92d57fddb7ccff7808\u0027\n\n* commit \u0027e922751eb6d5e19a4c85dc92d57fddb7ccff7808\u0027:\n  Make vCard code refrain from using NEIGHBORHOOD field when importing.\n"
    },
    {
      "commit": "e922751eb6d5e19a4c85dc92d57fddb7ccff7808",
      "tree": "c26c73382be20bbd691132029d524d7687f4b038",
      "parents": [
        "efe676074b55867817c723e8232078810479906c",
        "6a942dbe51b52ce41903e236d5db294274bb0dd2"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 18:26:24 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 18:26:24 2009 -0800"
      },
      "message": "am 6a942dbe: Merge change Ifd754059 into eclair-mr2\n\nMerge commit \u00276a942dbe51b52ce41903e236d5db294274bb0dd2\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00276a942dbe51b52ce41903e236d5db294274bb0dd2\u0027:\n  Make vCard code refrain from using NEIGHBORHOOD field when importing.\n"
    },
    {
      "commit": "a6d81e3ee4cf12ade1ef6701b5f1fcdd390fc98a",
      "tree": "a94f4b51301fca3e002b9fbab6e304bfa9db2d26",
      "parents": [
        "ddd017f872bee40450c0e73dcf6608a9fdc49a05"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 11:19:25 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 11:21:39 2009 +0900"
      },
      "message": "Make vCard code refrain from using NEIGHBORHOOD field when importing.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "f4d7ffb0b120b000e7e3489e253f1493a8ea1e18",
      "tree": "f49bd9856f0e2f3559d1d982b0b650738629e7c0",
      "parents": [
        "a40fcd1ce9d14210fc2d50592ce6a74186d69cdb",
        "5b2f5ced25aee6fec49ffd30abeca2801c98fbd8"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 17:54:44 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 17:54:44 2009 -0800"
      },
      "message": "am 5b2f5ced: am ddd017f8: Merge change I8daabf26 into eclair-mr2\n\nMerge commit \u00275b2f5ced25aee6fec49ffd30abeca2801c98fbd8\u0027\n\n* commit \u00275b2f5ced25aee6fec49ffd30abeca2801c98fbd8\u0027:\n  Modify vCard exporter code so that it does not emit non-Ascii type.\n"
    },
    {
      "commit": "5b2f5ced25aee6fec49ffd30abeca2801c98fbd8",
      "tree": "a2c561553446f84c5d5c2966e4aa3d2335525525",
      "parents": [
        "822d8f67ebcdab61fa513d6d9401476e12143386",
        "ddd017f872bee40450c0e73dcf6608a9fdc49a05"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 16:16:33 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 16:16:33 2009 -0800"
      },
      "message": "am ddd017f8: Merge change I8daabf26 into eclair-mr2\n\nMerge commit \u0027ddd017f872bee40450c0e73dcf6608a9fdc49a05\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027ddd017f872bee40450c0e73dcf6608a9fdc49a05\u0027:\n  Modify vCard exporter code so that it does not emit non-Ascii type.\n"
    },
    {
      "commit": "c4b51712d89e9fb742b598911e611c80ad51de82",
      "tree": "aef5164b352a8a1712d363f1a99d515e977e207e",
      "parents": [
        "9335d414bd2af5bb1ad74459de165a3d93a9ca7b"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 09:00:12 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Thu Nov 19 09:09:27 2009 +0900"
      },
      "message": "Modify vCard exporter code so that it does not emit non-Ascii type.\n\nAlso add unit tests.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "20fbb79825f30391c91664775cddf060ec3992f8",
      "tree": "dd59903dbde35350daaae1fe62900c41cd1e4713",
      "parents": [
        "14d9431a5ff69d0b0fad7adbe3404a052aa9251b",
        "a351b7f0c6a2f8240f6426cfdd3499ac0618bc8f"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 13:43:10 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 13:43:10 2009 -0800"
      },
      "message": "resolved conflicts for merge of a351b7f0 to master\n"
    },
    {
      "commit": "a351b7f0c6a2f8240f6426cfdd3499ac0618bc8f",
      "tree": "3f6530841325e5f24d7947ad0ba2cfc8743c60da",
      "parents": [
        "08a22a200739e0e14784e1c7139ed78e50c15dfa",
        "8c7d9eab8aa297f5ee3a171c6fa63fcf94e2b330"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 13:08:52 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 13:08:52 2009 -0800"
      },
      "message": "am 8c7d9eab: Merge change Icb1674f1 into eclair-mr2\n\nMerge commit \u00278c7d9eab8aa297f5ee3a171c6fa63fcf94e2b330\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00278c7d9eab8aa297f5ee3a171c6fa63fcf94e2b330\u0027:\n  Create android-common static library which gets included in frameworks.jar,\n"
    },
    {
      "commit": "ded0e6447ed6e0f200dbca13e43c6cf4efc16a1d",
      "tree": "a9fa405cf73e77232588e6e35b9485f6e7170d67",
      "parents": [
        "a4fa107f97933a81c42ee3cd9ca3984c08e5ab25"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 11:23:45 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 12:05:04 2009 -0800"
      },
      "message": "Create android-common static library which gets included in frameworks.jar,\nbut can also be used by unbundled apps.  Move android.text.util.Regex there as\na starting example, renamed to a more sensible (?) com.android.common.Patterns.\nSet up a corresponding test package, and move RegexTest (to PatternsTest).\nUpdate clients.\n"
    },
    {
      "commit": "0f3bd555b96b27132de6b158191dd756af35a610",
      "tree": "59e409614701909ad196129035b5a7f22c0b36ee",
      "parents": [
        "3ecd3624d542b60d5a39415774141334396c4e02",
        "355c4bc31c350030a636f7a864cdcd863e71eae9"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 11:57:29 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 11:57:29 2009 -0800"
      },
      "message": "am 355c4bc3: am a3dbee32: Merge change I919c20bb into eclair-mr2\n\nMerge commit \u0027355c4bc31c350030a636f7a864cdcd863e71eae9\u0027\n\n* commit \u0027355c4bc31c350030a636f7a864cdcd863e71eae9\u0027:\n  Code clean up.\n"
    },
    {
      "commit": "355c4bc31c350030a636f7a864cdcd863e71eae9",
      "tree": "94cc511d7da9edc7a24c1e1a54e4ef68e5c39809",
      "parents": [
        "86103cd7dbcf3b5a949711d2b0b21b01ed90cb74",
        "a3dbee32d1deab72e5bbf17ab34b961fb7ab4182"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 11:46:03 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 18 11:46:03 2009 -0800"
      },
      "message": "am a3dbee32: Merge change I919c20bb into eclair-mr2\n\nMerge commit \u0027a3dbee32d1deab72e5bbf17ab34b961fb7ab4182\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027a3dbee32d1deab72e5bbf17ab34b961fb7ab4182\u0027:\n  Code clean up.\n"
    },
    {
      "commit": "49c0decf46d4f7082a17e595fba2c501a8369452",
      "tree": "8d7dfb48ff0e875e53a0c580b3c57f5502600aae",
      "parents": [
        "9a5985a8d975f88e314a321392cc7e25bd14ad0e"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 17:11:43 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 17:18:53 2009 +0900"
      },
      "message": "Code clean up.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "18b5fc06af5b70442f1ccaa9d50a0ce7a837f1e8",
      "tree": "cdf1d402e2deff4078831ab19514647e889883d9",
      "parents": [
        "644a0e320d4bda1871f38858e63aad2c9864570f",
        "7798d36a4661ac8c88eb47cf0c66d3eeafb2f7a8"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 18:11:19 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 18:11:19 2009 -0800"
      },
      "message": "am 7798d36a: am d2f813c3: Merge change I60cfe9ce into eclair-mr2\n\nMerge commit \u00277798d36a4661ac8c88eb47cf0c66d3eeafb2f7a8\u0027\n\n* commit \u00277798d36a4661ac8c88eb47cf0c66d3eeafb2f7a8\u0027:\n  Add unit tests.\n"
    },
    {
      "commit": "7798d36a4661ac8c88eb47cf0c66d3eeafb2f7a8",
      "tree": "bca1b63563e680e85f8c164727e3942e15f59eea",
      "parents": [
        "f630904134a81e9e5edbd7b2bd77e402c180782f",
        "d2f813c3f85060d42744be2632fed20f520001ee"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 17:41:17 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 17:41:17 2009 -0800"
      },
      "message": "am d2f813c3: Merge change I60cfe9ce into eclair-mr2\n\nMerge commit \u0027d2f813c3f85060d42744be2632fed20f520001ee\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027d2f813c3f85060d42744be2632fed20f520001ee\u0027:\n  Add unit tests.\n"
    },
    {
      "commit": "839c036444c8a5335cc557e174acc7ee28baafc4",
      "tree": "024d7233da2e5d6e4b768cc2519e84a9b5f62c05",
      "parents": [
        "2c7664989f7388c0c6cf0ec7d80ffa2704c8c2be"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 10:25:09 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Wed Nov 18 10:35:39 2009 +0900"
      },
      "message": "Add unit tests.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "ead23abbd6d2bf8238368857bdc463ef2bc6bfd8",
      "tree": "4e8a5e1b0d6c7c25286cb0a8736a2e61602731b0",
      "parents": [
        "c1df1ddc3b92f8efb1f4eaa230ac5bc419c19620",
        "50963b1aa5c2828b46a4e0acf7626b8aef83ef68"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 15:08:08 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 15:08:08 2009 -0800"
      },
      "message": "am 50963b1a: am 8c808187: Modify test code a little.\n\nMerge commit \u002750963b1aa5c2828b46a4e0acf7626b8aef83ef68\u0027\n\n* commit \u002750963b1aa5c2828b46a4e0acf7626b8aef83ef68\u0027:\n  Modify test code a little.\n"
    },
    {
      "commit": "c1df1ddc3b92f8efb1f4eaa230ac5bc419c19620",
      "tree": "ccf7f904dd22f7e7a70f805a9b1d209d08031703",
      "parents": [
        "c0c999a43ce6ee8344cfe877d152e7c8b69b059d",
        "a4d3fae76a5e861df1def65363b244ac4d8889eb"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 15:07:49 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 15:07:49 2009 -0800"
      },
      "message": "am a4d3fae7: am a184d4b9: Merge change I11526e6c into eclair-mr2\n\nMerge commit \u0027a4d3fae76a5e861df1def65363b244ac4d8889eb\u0027\n\n* commit \u0027a4d3fae76a5e861df1def65363b244ac4d8889eb\u0027:\n  Clean up codes and remove/modify stale codes/comments.\n"
    },
    {
      "commit": "675cab924060818472656e9a16bb661fec976b21",
      "tree": "52a6da06ebb7874b86bef1d84303cef188d039dc",
      "parents": [
        "1ef8c8f1556f7dae007e1d2a4fcaf395892a6ed5",
        "feef7de25b3dc68f1d75c1c2171ddb5bd2169d8c"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 15:06:00 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 15:06:00 2009 -0800"
      },
      "message": "am feef7de2: am ac3e2159: Merge change Icaf78440 into eclair-mr2\n\nMerge commit \u0027feef7de25b3dc68f1d75c1c2171ddb5bd2169d8c\u0027\n\n* commit \u0027feef7de25b3dc68f1d75c1c2171ddb5bd2169d8c\u0027:\n  Split vCard composer into two parts: VCardComposer and VCardBuilder.\n"
    },
    {
      "commit": "2227ecd1bf479e2dabfb29da4c1ac3effabee108",
      "tree": "8f594874224db94d44c8c555985a5d1bd2ac85d7",
      "parents": [
        "db0be296d1e759eb063f04b82500faa2c5d74138",
        "d5f787ab28199d417f8a50ccd031e31f5c6db509"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 07:28:35 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 07:28:35 2009 -0800"
      },
      "message": "am d5f787ab: am 9e807d7c: Merge change Iecf85b40 into eclair-mr2\n\nMerge commit \u0027d5f787ab28199d417f8a50ccd031e31f5c6db509\u0027\n\n* commit \u0027d5f787ab28199d417f8a50ccd031e31f5c6db509\u0027:\n  Rename several files so that readers would not be confused.\n"
    },
    {
      "commit": "50963b1aa5c2828b46a4e0acf7626b8aef83ef68",
      "tree": "4157bb22be2b6695297bc66bfff2533f43002b73",
      "parents": [
        "a4d3fae76a5e861df1def65363b244ac4d8889eb",
        "8c808187249f473702e0f4bee2147da292490963"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 01:58:31 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 01:58:31 2009 -0800"
      },
      "message": "am 8c808187: Modify test code a little.\n\nMerge commit \u00278c808187249f473702e0f4bee2147da292490963\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00278c808187249f473702e0f4bee2147da292490963\u0027:\n  Modify test code a little.\n"
    },
    {
      "commit": "8c808187249f473702e0f4bee2147da292490963",
      "tree": "5565fb75b2540c239166c01b704e68557df93f39",
      "parents": [
        "a184d4b95d22b9124ad6f22815fd10b04995bcf5"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 18:53:19 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 18:53:19 2009 +0900"
      },
      "message": "Modify test code a little.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "a4d3fae76a5e861df1def65363b244ac4d8889eb",
      "tree": "66744356148cc71726504345f30ee3c784613f0d",
      "parents": [
        "8bf56e6a1bb842aaae2b8b7630d2bc2711f36bb6",
        "a184d4b95d22b9124ad6f22815fd10b04995bcf5"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 01:07:27 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 17 01:07:27 2009 -0800"
      },
      "message": "am a184d4b9: Merge change I11526e6c into eclair-mr2\n\nMerge commit \u0027a184d4b95d22b9124ad6f22815fd10b04995bcf5\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027a184d4b95d22b9124ad6f22815fd10b04995bcf5\u0027:\n  Clean up codes and remove/modify stale codes/comments.\n"
    },
    {
      "commit": "d2145b97fb6d5eb4ef0f746869e9390e5a6853d6",
      "tree": "2ef000539073243c482974b0fe936d7c058d126c",
      "parents": [
        "ac3e2159b41b825874cf574cf59225d4fbddfbcb"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 17:03:23 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 17:12:54 2009 +0900"
      },
      "message": "Clean up codes and remove/modify stale codes/comments.\n\nInternal issue number: 2195990\n"
    },
    {
      "commit": "feef7de25b3dc68f1d75c1c2171ddb5bd2169d8c",
      "tree": "ca63468eb53974b3182bed48fc71bb607ca041bc",
      "parents": [
        "11c89c48281dd75da20b0649e5b6e19b057901eb",
        "ac3e2159b41b825874cf574cf59225d4fbddfbcb"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Mon Nov 16 21:35:19 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 16 21:35:19 2009 -0800"
      },
      "message": "am ac3e2159: Merge change Icaf78440 into eclair-mr2\n\nMerge commit \u0027ac3e2159b41b825874cf574cf59225d4fbddfbcb\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027ac3e2159b41b825874cf574cf59225d4fbddfbcb\u0027:\n  Split vCard composer into two parts: VCardComposer and VCardBuilder.\n"
    },
    {
      "commit": "1b9e2bec6381ac7e7d0cfe0db549c5396d2ba7ce",
      "tree": "0eb49f4a4bb5e9cf8dca9d529f139a0791e6db4e",
      "parents": [
        "f016fa632b1d3c606934bc11a889af3921c6120e"
      ],
      "author": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 11:40:45 2009 +0900"
      },
      "committer": {
        "name": "Daisuke Miyakawa",
        "email": "dmiyakawa@google.com",
        "time": "Tue Nov 17 14:30:17 2009 +0900"
      },
      "message": "Split vCard composer into two parts: VCardComposer and VCardBuilder.\n\nAs for VCardBuilder, there was a class with the same name, but this implementation is fundamentally different.\nThis time, VCardBuilder is like StringBuilder. It enables developers to create their own vCard by themselves.\n\nMake Constants public and rename it to VCardConstants.\n\nInternal issue number: 2242528, 2195990\n"
    }
  ],
  "next": "d5f787ab28199d417f8a50ccd031e31f5c6db509"
}
