)]}'
{
  "log": [
    {
      "commit": "c8620b60d67390d2bd0fa0ce53cc63fc18c50244",
      "tree": "b289d7614f9950bdf8de025be2daa984a1f9ceb6",
      "parents": [
        "016093a2c19b23985366b1ac2eb7cba730b62d46"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 25 14:34:49 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 25 14:34:49 2010 -0700"
      },
      "message": "fix [2545826] calling into gralloc with external lock held\n\nChange-Id: I2d0e017382404c684c768a0dd0423d574213f10a\n"
    },
    {
      "commit": "26d244281a62c909acfd7527da256a9413241122",
      "tree": "604db48636694e35f1f60ce41fd3e07542e12cc2",
      "parents": [
        "2cfdc6bed2ae9c1267570537a6a9521d69c2cb05"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:14:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:16:43 2010 -0700"
      },
      "message": "libutils Condition are now PRIVATE by default\n\nCondition must be initialized with SHARED for the old behavior, where\nthey can be used accross processes.\n\nUpdated the two places android that require SHARED conditions.\n\nPRIVATE conditions (and mutexes) use more efficient syscalls.\n\nChange-Id: I9a281a4b88206e92ac559c66554e886b9c62db3a\n"
    },
    {
      "commit": "ae4d8ac982c9af4167981c4e1b00d66357e8b7e2",
      "tree": "1fe23673ec3aaeac5f6d5542f4297b488eca7400",
      "parents": [
        "606f17200622c06f84d0413412913b7e190de08a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:07:45 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:52:41 2010 -0700"
      },
      "message": "Update TTS plugin interface to receive engine configuration data\ncoming from the plugin helper code (handling config and preferences).\n\nChange-Id: Ibc1d229463f11f8977552d74d1fd2aa6a6cab88e\n"
    },
    {
      "commit": "55fa25161a7626ae6a15bc2cc46e22771455ed80",
      "tree": "415784ce2ab3126dd1d8a081c70bd811aca1add4",
      "parents": [
        "e156e6478f8393dc519a903d48ef09b3eabf32ad"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:06:54 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:06:54 2010 -0800"
      },
      "message": "implement connect/disconnect in our native_window_t implementations\n\nthe framebuffer implementation doesn\u0027t do anything special with this\nbut the surfaceflinger implementation makes sure the surface is not used\nby two APIs simultaneously.\n\nChange-Id: Id4ca8ef7093d68846abc2ac814327cc40a64b66b\n"
    },
    {
      "commit": "e156e6478f8393dc519a903d48ef09b3eabf32ad",
      "tree": "a8864bc0a8985836aab7df8c8a3d5ef5f84eb9e4",
      "parents": [
        "49b2fdce2f7e9745e1ae5279f28fe64ece34c496"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:05:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:05:52 2010 -0800"
      },
      "message": "Add a new connect/disconnect API to android_native_window_t\n\nit\u0027s used to keep track of which API owns the surface.\n\nChange-Id: I1021c5905c020efc3c428e561b38189377168b22\n"
    },
    {
      "commit": "82fecb01df67f5e3321618df29079b9ce56a30e4",
      "tree": "28fb3a80711a00d385d75d5e9b78b9a5edd0b096",
      "parents": [
        "080b8a84d98b94984bd3762cb9318f49793476b6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 15:00:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 17:18:05 2010 -0800"
      },
      "message": "Add ability for some manifest attributes to reference resources.\n\nThis loosens our restriction on many manifest attributes requiring\nliteral string values, to allow various ones to use values from\nresources.  This is only allowed if the resource value does not change\nfrom configuration changes, and the restriction is still in place\nfor attributes that are core to security (requesting permissions) or\nmarket operation (used libraries and features etc).\n\nChange-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8\n"
    },
    {
      "commit": "2856c5b19a9e62a32a835c84a87a24b324c799fe",
      "tree": "158cbec3bca0103f5c7257d3692eba99f00c039b",
      "parents": [
        "51edc0fb698513719fac2da33f95f521493ca103"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "8eca036d24f2e7865ab5ccb057b043e2c32b75bf",
      "tree": "c95da74a8ebd8ccb839d9657532a41df906a1eda",
      "parents": [
        "7a0f7e233ac9507d71e4b9c5abf8b8923817aa23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "285dbde2e0cd0057be070ded3be8f5f453147edc",
      "tree": "b9b6c52aae0b3dffef51d7113713ffad60a6a365",
      "parents": [
        "46a26c63ed0a4322551ae0d8bac3c558d45d20dc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 16:09:43 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 18:34:50 2010 -0800"
      },
      "message": "Added a name to Surface created by SurfaceFlinger\n\nUpdated the window manager to use this new facility.\nSurfaces name are now printed by \"dumpsys\".\n"
    },
    {
      "commit": "9e333ab42c5ca09632f56cd5d8e5349e06a632b7",
      "tree": "3f9e1b8b26a302f72ebe08468f2fec8ad3a5029a",
      "parents": [
        "fc10cf951a0f12315b96e35a7e8d360748eea302"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 22 22:36:26 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 23 10:02:20 2010 -0800"
      },
      "message": "Use UTF-8 strings to avoid duplicate caching, part 1\n\nStringBlock instances containing UTF-8 strings use a cache to convert\ninto UTF-16, but using that cache and then using a JNI call to NewString\ncauses the UTF-8 string as well as two copies of the UTF-16 string to\nbe held in memory. Getting the UTF-8 string directly from the StringPool\neliminates one copy of the UTF-16 string being held in memory.\n\nThis is part 1. Part 2 will include ResXMLParser optimizations.\n\nChange-Id: Ibd4509a485db746d59cd4b9501f544877139276c\n"
    },
    {
      "commit": "98e71ddaede9a0bfb681fd237bec1f66c6c53193",
      "tree": "b99491347832c92e1e5af62d11d3a9baf946dd18",
      "parents": [
        "e4f5055ad281096e5b89c4240be29d2c95a43b65"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 17:30:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 21 23:27:25 2010 -0800"
      },
      "message": "remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).\n\nAdd a Flattenable interface to libutils which can be used to flatten\nan object into bytestream + filedescriptor stream.\nParcel is modified to handle Flattenable. And GraphicBuffer implements\nFlattenable.\n\nExcept for the overlay classes libui is now independent of libbinder.\n"
    },
    {
      "commit": "b6121422ef641dc7317d1c3bf1d38b7d73922250",
      "tree": "80dfecc782b2a9b5e3dfdec96703ffc8a1b6b9bd",
      "parents": [
        "3c8f46c8d82d158aef9d4e757d744fa11fb95ece"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 20:22:26 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 20:26:47 2010 -0800"
      },
      "message": "Remove a dependency of Region (libui) on Parcel (libbinder).\n"
    },
    {
      "commit": "3db21640519541141137166ce55627cf76e1974b",
      "tree": "48af75f7a13cedb2967007296c510ee312be5134",
      "parents": [
        "40cece49ddf328ceadd8c3cc2503ac500fba7552"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 20:43:39 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 20:43:39 2010 -0800"
      },
      "message": "fix a bug I introduced recently where YUV formats would crash the system\n"
    },
    {
      "commit": "54ed4f6282bdea251455f39b978626026affdbef",
      "tree": "157d34806bbfab22e433c1eafe0e2bf72f832af2",
      "parents": [
        "39696474d715de575949a9cdf12e7ff339896f8d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 17:33:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 17:33:37 2010 -0800"
      },
      "message": "get rid off the YUV formats at the libui layer\n"
    },
    {
      "commit": "0d88e7a8d7c436e8375a749aac77d34eb95356c8",
      "tree": "d3fb3f0d27908fd3185032499f11b109e76743e7",
      "parents": [
        "053c9e928bc8aa569572aea97430a63cb8fdc109"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 14:09:24 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 14:37:42 2010 -0800"
      },
      "message": "Totally remove Unicode.cpp and rely on ICU\n\nUnicode.cpp used a packed data table for character data that essentially\nduplicated ICU\u0027s functionality.\n\nChange-Id: Ia68fe4ac94e89dc68d9a3f45f33f6e648a5500b7\n"
    },
    {
      "commit": "196e3207345baa4ba5af93646f2ca1b67a438aeb",
      "tree": "2738aede10416d2418222aa6d611d27fe1e74838",
      "parents": [
        "fe7a18c4e17a179a0f26e139d3eae20393c1a8ae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:01:16 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:01:16 2010 -0800"
      },
      "message": "Excise code from Unicode.cpp that was dead\n\nRemove some utility functions for discovering character data\nthat ICU probably took over a while ago.\n\nChange-Id: I97abe4de2f51eb2bf48679941258bc501184c3dc\n"
    },
    {
      "commit": "9cce325fae8adcf7560a28eef394489f09bad74d",
      "tree": "3497604564acd2575016d3a331d661f22a8e6db3",
      "parents": [
        "4fae0fd0c9425318094d4c0059331c2c7a996c66"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "70fa84f6ab15936b265986c507cf00fd2cbf9db1",
      "tree": "a70782e021c85bdd8eccc83b222eff40ae4b2fbc",
      "parents": [
        "6ecdf9757703173153bb993de5dad30e5bd5afff"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "a05c8227046081b2648b8150c1a716040eb08121",
      "tree": "ee1db3cf05075689d3878a7bc3d2e1cdfb449d47",
      "parents": [
        "9b692da2e32a78fad524b24b52c4616944294fa5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Feb 09 13:38:19 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Feb 09 18:28:50 2010 +0800"
      },
      "message": "Add exposure compensation parameter.\n\nbug:2375993\n"
    },
    {
      "commit": "04a3f57d19b471c21f3c83c50793a94908cafdc7",
      "tree": "7892b5f3d47c12a42e854a525d2a2ec8b412cb75",
      "parents": [
        "bf0a46d0d5c2f315c2950111c3b9e69da877ef4f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 02 18:48:15 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 03 12:13:15 2010 -0800"
      },
      "message": "fix [2133133] Software OpenGL ES Lighting is buggy (GL Gears washed out bug)\n\nA typo caused GL_AMBIENT_AND_DIFFUSE to only set the the ambient color.\n\nFix another typo which caused the viewer position to be wrong for\nspecular highlights.\n\nSwitch back to eye-space lighting, since there are still some issues\nwith some demos (San Angeles in particular).\n"
    },
    {
      "commit": "18b915a1026dfe9d273ee3fd2139b7feed22008c",
      "tree": "456f1eb01eafbfe98c6f071b35c2442dac57c2cc",
      "parents": [
        "b787383ba5208f1d86f90a8cdb762502c1f8829f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 01 18:24:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 02 20:19:54 2010 -0800"
      },
      "message": "implement [2396050] Add ETC1 texture support to AGL\n"
    },
    {
      "commit": "391f3f8b5e8f97e002cbbc6a7535cfd73a8d16b3",
      "tree": "b346a01beb8e74fe47758ba79bd7d26c98b010f6",
      "parents": [
        "077c40fee35f483df961c6a0746ee78b9d1c5a8f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Jan 31 14:19:38 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Jan 31 17:03:10 2010 +0800"
      },
      "message": "Add float support for set and get in CameraParameters.\n\nbug:2375989\nbug:2375987\n"
    },
    {
      "commit": "077c40fee35f483df961c6a0746ee78b9d1c5a8f",
      "tree": "e191acfba8c0c74b6b06e1c07855fcc0f13880c1",
      "parents": [
        "b0b1eff2bc61008194627190da2b7535677e533a"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jan 27 22:55:14 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Jan 30 20:36:04 2010 +0800"
      },
      "message": "Add focal length and view angle API.\n\nbug:2375989,2375987\n"
    },
    {
      "commit": "0dd0d2944a0a7b985db162dec8b49b77d689d171",
      "tree": "dde15fc2105fbf0aa8af4df71f5d73a16688a3f2",
      "parents": [
        "10e6d20fb3083693fc3e0378b982d08cfd9ce034"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 25 19:00:00 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 29 14:51:06 2010 -0800"
      },
      "message": "Simplify the MemoryDealer implementation\n\nAt some point the implementation became complicated because of\nSurfaceFlinger\u0027s special needs, since we are now relying on gralloc\nwe can go back to much simpler MemoryDealer.\n\nRemoved HeapInterface and AllocatorInterface, since those don\u0027t need\nto be paramterized anymore. Merged SimpleMemory and Allocation.\nMade SimplisticAllocator non virtual.\n\nRemoved MemoryDealer flags (READ_ONLY, PAGE_ALIGNED)\n\nRemoved a lot of unneeded code.\n"
    },
    {
      "commit": "f091e833d339d344fbc4815bcc87ce97d8535cd8",
      "tree": "abf06e2d345aa1d73348c8380194633973dff6b6",
      "parents": [
        "fafd2adbaac51b801af6503a7fc80d1cc2dc3794"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 17:49:48 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Jan 26 11:07:07 2010 -0800"
      },
      "message": "Add support for setting camera display orientation.\n"
    },
    {
      "commit": "88eeff5270991df178ee09ffda7ce5076c9a1e59",
      "tree": "00b0f5754d265cd28d73a02e0da7eec83aebfd1b",
      "parents": [
        "703111327eac2f3228de1f165d23fa3bf86120ba"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jan 25 15:18:18 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jan 25 15:20:23 2010 +0800"
      },
      "message": "Change key to KEY_SUPPORTED_JPEG_THUMBNAIL_SIZES for consistency.\n\nbug:2375986\n"
    },
    {
      "commit": "5994a330ac949e7706540f22cd73d76d9f2a96cb",
      "tree": "46250601cda14ac8a44572be4566a8ac0869701d",
      "parents": [
        "32f6863e218e19f8a3daab7e345bb4ae6587865a"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 16:30:39 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 16:30:39 2010 -0800"
      },
      "message": "Add support for 180/270 degrees rotation.\n"
    },
    {
      "commit": "52e7200b6e020bba978c36e3a928493a3f2c8a92",
      "tree": "9c752d7d277ba2dfb9789763369a7373888557a2",
      "parents": [
        "d28d5be75b41fe48f486f9b83ae8685496983f5a"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jan 21 17:31:06 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jan 21 20:20:08 2010 -0800"
      },
      "message": "Add an orientation parameter for overlay, so we can do camera preview in portrait mode.\n"
    },
    {
      "commit": "ccb5b89029ca3f653fbfa32a7b6ed82bf227541c",
      "tree": "e9309127a1fd7077222e8068817bf94829dd2736",
      "parents": [
        "07b4185c7494744d0886115c7d8a6a389210bea3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 14:20:15 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 14:22:08 2009 -0800"
      },
      "message": "Add string resource type inspection\n\nAllows \"aapt dump --values resource\" to print out whether a string in a\nResStringPool is in UTF-8 or UTF-16 encoding.\n\nChange-Id: I6478884a70a3b46fee862dece6cb33454fc34843\n"
    },
    {
      "commit": "eb318fd88d16053010da554ba565eaaf3355a58e",
      "tree": "d7c8601e2d6b708be77335c0a1b151893008b2c0",
      "parents": [
        "ea3ec40a5da415c07569f4c35c516da5e1e8d23e",
        "92f5984d2c2cd73b6b9f68c02c147877d1e2fc46"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 13:41:38 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 13:41:38 2009 -0800"
      },
      "message": "Merge change I129483f8 into eclair-mr2\n\n* changes:\n  Optional use of UTF-8 strings in resource bundles\n"
    },
    {
      "commit": "8c6cedc9bc9a4b69616a79a95449f6f6b08c7bf1",
      "tree": "b1bbc3748af558bc7a56d7ac4fb96ca059cc845b",
      "parents": [
        "d56352bddd717d2e45f1f3ee7fb52ef7f593f950"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 17:59:37 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 19:11:14 2009 -0800"
      },
      "message": "Propagate background scheduling class across processes.\n\nThis is a very simply implementation: upon receiving an IPC, if the handling\nthread is at a background priority (the driver will have taken care of\npropagating this from the calling thread), then stick it in to the background\nscheduling group.  Plus an API to turn this off for the process, which is\nused by the system process.\n\nThis also pulls some of the code for managing scheduling classes out of\nthe Process JNI wrappers and in to some convenience methods in thread.h.\n"
    },
    {
      "commit": "92f5984d2c2cd73b6b9f68c02c147877d1e2fc46",
      "tree": "fa3930192e29c22b91af41ba4b20adf4286b2217",
      "parents": [
        "bd3b0114893ed5fc24fd92955f59354b838041e1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 04 09:38:48 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Dec 07 15:14:15 2009 -0800"
      },
      "message": "Optional use of UTF-8 strings in resource bundles\n\nAllows the use of UTF-8 for packing resources instead of the\ndefault of UTF-16 for Java. When strings are extracted from the\nResStringPool, they are converted to UTF-16 and the result is\ncached for subsequent calls.\n\nWhen using aapt to package, add in the \"-8\" switch to pack the\nresources using UTF-8. This will result in the value, key, and\ntype strings as well as the compiled XML string values taking\nsignificantly less space in the final application package in\nmost scenarios.\n\nChange-Id: I129483f8b3d3b1c5869dced05cb525e494a6c83a\n"
    },
    {
      "commit": "963abad79ae64dae9bf4c32bfb110d9e6314c857",
      "tree": "f017c89f91c07d4bc06c8c74efbc03aa73463572",
      "parents": [
        "8b1b9f4e9ca3816777d7228bec2182e16f38a093"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 15:26:29 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 15:26:29 2009 -0800"
      },
      "message": "fix some aspects of [2258746] native crash in launcher2\n\nSurface::validate() could sometimes dereference a null pointer before checking it wasn\u0027t null.\nThis will prevent the application to crash when given bad parameters or used incorrectly.\nHowever, the bug above probably has another cause.\n"
    },
    {
      "commit": "368ad53c549cd105e725d0290da68be2e7717b4c",
      "tree": "e7808080b7393dff50b8a54a968f0a312ee13c67",
      "parents": [
        "5a23afee77981fb2812d69e5eedfcbb442e691c0",
        "6fee064809068fe1a7da63d55678d9a222b0be15"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 21:26:54 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 21:26:54 2009 -0500"
      },
      "message": "Merge change I36d0184e into eclair\n\n* changes:\n  fix[2228133] pixelflinger ignores the \"vertical stride\" leading to artifacts when playing back video\n"
    },
    {
      "commit": "6fee064809068fe1a7da63d55678d9a222b0be15",
      "tree": "119f2ce4dc9362a7e389eac87abe1a7d7c691c5c",
      "parents": [
        "aa628c911a6ec727f4cff0d664a9af5d91770828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 17:48:33 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 17:48:33 2009 -0800"
      },
      "message": "fix[2228133] pixelflinger ignores the \"vertical stride\" leading to artifacts when playing back video\n\nwe lost the concept of vertical stride when moving video playback to EGLImage.\nHere we bring it back in a somewhat hacky-way that will work only for the\nsoftgl/mdp backend.\n"
    },
    {
      "commit": "1bd16a1511d43fc5b109f500d67b916776e8cce3",
      "tree": "1226b851c99fd9e2ba193ae29992f403c92d6403",
      "parents": [
        "a9888b50aa9fc7056c9d69273cd900919b70f7bc",
        "0db1a8931bb24b4f240c19210e70844af8c1e9ff"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 17:55:43 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 17:55:43 2009 -0500"
      },
      "message": "Merge change Ibaef6141 into eclair\n\n* changes:\n  libbinder: add a NO_CACHING flag to MemoryHeapBase\n"
    },
    {
      "commit": "c2a04c3f2df99527e4ad4ca19b2e559df90b4b4d",
      "tree": "2bc191b67fa37b46d7b1a3c540064c91c2ba6a31",
      "parents": [
        "a248b0f5b8b6153b9cf9e09b39f72bc20a5c6908"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Nov 01 21:16:59 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Nov 01 21:16:59 2009 -0800"
      },
      "message": "Fix issue #2226370: Resource versions match with equality\n\nAlso fixed turned-around increment of version number for resources. :(\n\nChange-Id: I604137272da984bcd69cee4f174e6b7f2c786e46\n"
    },
    {
      "commit": "0db1a8931bb24b4f240c19210e70844af8c1e9ff",
      "tree": "b45e2140c8dd6ebde5b6173f4f71b2da1e2daea1",
      "parents": [
        "db95a9e824f51c39a40833ee3c80daf6b6af3247"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Oct 29 22:55:00 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 30 18:35:47 2009 -0700"
      },
      "message": "libbinder: add a NO_CACHING flag to MemoryHeapBase\n\nThe NO_CACHING flag translates to opening a memory region with O_SYNC.\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "986e0dcf7ad2bbf0ec717430cd4e84ee82a3c6ea",
      "tree": "6e5cc79434d23a456184af9067260bc15df05c37",
      "parents": [
        "d6223663f76f435e94eff7fe98505054ff06a47f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Oct 23 17:39:46 2009 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 29 13:20:26 2009 +0800"
      },
      "message": "Use image rect information to display zoomed picture.\n"
    },
    {
      "commit": "54ba51dff21de666c5ae3bf3abd4f0634ebb0676",
      "tree": "58a69dccdbfd227b9de3c58a416de45d2a8d3513",
      "parents": [
        "36bc94173c957f33f70bcd16c369951f5b2dc3f6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 26 20:12:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 27 13:13:29 2009 -0700"
      },
      "message": "    fix [2143798] Need to figure out how to do video\n\n    Use EGLImageKHR instead of copybit directly.\n    We now have the basis to use streaming YUV textures (well, in fact\n    we already are). When/if we use the GPU instead of the MDP we\u0027ll\n    need to make sure it supports the appropriate YUV format.\n\n    Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported\n"
    },
    {
      "commit": "38a7fa2ae37236952e5fb0186fddb4f6da5990d8",
      "tree": "75fba8e01e6dfc6ac4afab2992de185b91edbf1c",
      "parents": [
        "f7f46955f70db4fa032d6ee0bf6bef1d10a7a181"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 15 18:08:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 15 18:08:15 2009 -0700"
      },
      "message": "fix [2182249] [MR1] valgrind error in surface flinger\n"
    },
    {
      "commit": "e700501d0e888ead9ac6456c0a6fd74d634aa5fb",
      "tree": "25bb0963dd0b96b7c17285f6ddddd536f6465f30",
      "parents": [
        "8e53c5595dd6846ddbfd39549849ea7a289d9897"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 07 16:44:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 07 16:44:10 2009 -0700"
      },
      "message": "fix [2170319] gmail bulk operation checkbox latency on passion\n\nThis also fixes [2152536] ANR in browser\n\nWhen SF is enqueuing buffers faster than SF dequeues them.\nThe update flag in SF is not counted and under some situations SF will only\ndequeue the first buffer. The state at this point is not technically\ncorrupted, it\u0027s valid, but just delayed by one buffer.\n\nIn the case of the Browser ANR, because the last enqueued buffer was delayed\nthe resizing of the current buffer couldn\u0027t happen.\n\nThe system would always fall back onto its feet if anything -else- in\ntried to draw, because the \"late\" buffer would be picked up then.\n"
    },
    {
      "commit": "9ec430adaea1cb88eaa1e78c7f759cd42ab6cf7a",
      "tree": "1174b71aeaf88287d38538f8b7baa74532f6f638",
      "parents": [
        "ef8646344a7168643b50a51ebffa2e41e9717608"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 19:00:57 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 19:00:57 2009 -0700"
      },
      "message": "fix [2152536] ANR in browser\n\nA window is created and the browser is about to render into it the\nvery first time, at that point it does an IPC to SF to request a new\nbuffer. Meanwhile, the window manager removes that window from the\nlist and the shared memory block it uses is marked as invalid.\nHowever, at that point, another window is created and is given the\nsame index (that just go freed), but a different identity and resets\nthe \"invalid\" bit in the shared block. When we go back to the buffer\nallocation code, we\u0027re stuck because the surface we\u0027re allocating for\nis gone and we don\u0027t detect it\u0027s invalid because the invalid bit has\nbeen reset.\n\nIt is not sufficient to check for the invalid bit, I should\nalso check that identities match.\n"
    },
    {
      "commit": "b26af23744fa73e8bc142b1eb98772fde5970c10",
      "tree": "51dd9ca00309a247d0f25b4338539d334be16b2f",
      "parents": [
        "3330b203039dea366d4981db1408a460134b2d2c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 05 18:19:57 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 17:00:25 2009 -0700"
      },
      "message": "fix [2168531] have software-only gralloc buffer side-step the HAL\n"
    },
    {
      "commit": "3330b203039dea366d4981db1408a460134b2d2c",
      "tree": "f165f7801f2ee8034ad1edfd34e2b554fdaf662f",
      "parents": [
        "0ad3f9f4009c76b56f41da5d26eb7712dee938f1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 05 17:07:12 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 17:00:25 2009 -0700"
      },
      "message": "fix [2167050] glTexImage2D code path buggy in SurfaceFlinger\n\nWhen EGLImage extension is not available, SurfaceFlinger will fallback to using\nglTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an\nextra copy. However this code path has never been exercised and had some bugs\nwhich this patch fix.\n\nMainly the scale factor wasn\u0027t computed right when falling back on glDrawElements.\nWe also fallback to this mode of operation if a buffer doesn\u0027t have the adequate\nusage bits for EGLImage usage.\n\nThis changes only code that is currently not executed. Some refactoring was needed to\nkeep the change clean. This doesn\u0027t change anything functionaly.\n"
    },
    {
      "commit": "e6a550d02ff02f465d7dbb6e862671462866f024",
      "tree": "005e2a57c55f5c24400f604150727b9b91b61fe9",
      "parents": [
        "7854a353261dd276a7726d48677c18ef827b26eb"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 28 16:14:58 2009 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Oct 06 13:25:10 2009 -0700"
      },
      "message": "Add zoom functions and sendCommand.\n\nb2060030\n"
    },
    {
      "commit": "0b3ad46a26dc3717260fa9347c77f673f3198606",
      "tree": "e101cea80b6258fa478b702cfef622747f3f9e39",
      "parents": [
        "c91af0c12e24d56262a2c100d9e46de26b33fb91"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 02 18:12:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 02 18:12:30 2009 -0700"
      },
      "message": "Attempt to fix [2152536] ANR in browser\n\nThe ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable.\nWhen it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return\nimmediately in the above case. For some reason, the surface here wasn\u0027t marked as NO_INIT.\n\nThis change makes the code more robust by always (irregadless or errors) setting the NO_INIT status\nin all code paths where a surface is removed from the list.\n\nAdditionaly added more information in the logs, should this happen again.\n"
    },
    {
      "commit": "eb16a09f59022f9fd3f1d633204049bc4e96b0f9",
      "tree": "e81eb6ee9161d1c81a862e5bf1cc893d1a3887ae",
      "parents": [
        "b2eccea36eaf3b0ab75d8cac80250ddbe332e001"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 28 13:51:12 2009 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 28 13:51:59 2009 -0700"
      },
      "message": "Change FLASH_MODE_VIDEO_LIGHT to FLASH_MODE_TORCH.\n"
    },
    {
      "commit": "cc6ce203be6784130c73e6f253981c7236cdcb68",
      "tree": "a27e4a5fb542306244a34ea61eb5cc21cab6690e",
      "parents": [
        "1a848a5fed614ea75167d7c67f26a9fffdbf585c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Sep 23 14:37:52 2009 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Sep 25 14:23:56 2009 -0700"
      },
      "message": "Add camera parameter key constants and documentation.\n"
    },
    {
      "commit": "dd3423c6247965bf67ea30c75e484a6f5d72b1a2",
      "tree": "734b1c8ef5eb7f94b6864d1dac57442e80036d4d",
      "parents": [
        "e95f0b38cde0668ec6872602a4f5e837f39089a4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 15:44:05 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 15:49:32 2009 -0700"
      },
      "message": "fix [2132563] stuck in boot animation (framebuffer_device_open: Failed to create flip chain)\n"
    },
    {
      "commit": "74faca212e2675aa55a30235c77cb6403471a4b9",
      "tree": "4b990a9f0234ad504cce9e5734a978e940335945",
      "parents": [
        "1147de42a21f0d4f6873c63f22a4cdd1e4889088"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 16:18:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 16:18:16 2009 -0700"
      },
      "message": "Android side of the fix for [2121211] Sholes has stutter during animations\n\na new method, compostionComplete() is added to the framebuffer hal, it is used by surfaceflinger to signal the driver that the composition is complete, BEFORE it releases its client. This gives a chance to the driver to\n"
    },
    {
      "commit": "86f7329080cbb6f70d56278b005c820f0360d84b",
      "tree": "bead00e53f19c5cd417135cc5bbb5c266b7750e4",
      "parents": [
        "5140a13b5eff0b9ba89cb954ba645ca468257548"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 01:35:28 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 01:35:28 2009 -0700"
      },
      "message": "add basic time stats for surfaces lock time\n"
    },
    {
      "commit": "b5df6d801cc154899e9f52328eb1e40e90720fa4",
      "tree": "91fd9e12967fd772589f6cc084b718a237b9b05b",
      "parents": [
        "f2f2787391cf91c1bc215d159e41c67709c30d6d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 22:50:40 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 15 22:50:40 2009 -0700"
      },
      "message": "Implement issue #1780928: Need support hiding nav keys.\n\nThis implements support for devices whose hardware can hide\ntheir navigation keys.  It works much like the existing keyboardHidden\nconfiguration, and for compatibility uses the same configuration\nchange bit.\n\nAlso add FLAG_TURN_ON_SCREEN for windows, which has the system\ncause the screen to be turned on when the window is displayed.\nGreat fun when used with FLAG_SHOW_WHEN_LOCKED!\n\nChange-Id: I0b867f19af85cfd8786a14cea194b34f7bdd9b7a\n"
    },
    {
      "commit": "68a6afeb26002961387573dd64dd0ea3816bdc91",
      "tree": "104c9977c9b68c512ad3b63a77043043bd62dcaa",
      "parents": [
        "70cc9e16be7d7f9ad736e1d3911afd6f192cee59"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 19:10:47 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 19:21:31 2009 -0700"
      },
      "message": "fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer\n\nTake 2. We needed to check that the usage flags are \"good enough\" as opposed to \"the same\".\n\nThis reverts commit 8f17a762fe9e9f31e4e86cb60ff2bfb6b10fdee6.\n"
    },
    {
      "commit": "3910f5467a344c54b3c39c45b820c184e31b449c",
      "tree": "ee80308d497989fc9644336d2518af655aae3f35",
      "parents": [
        "ecda253aed80ca8b4012f3cd80374e3898cf517d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 18:57:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 18:57:06 2009 -0700"
      },
      "message": "Revert \"fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer\"\n\nThis reverts commit 486aa963b63e20b7910e1004cebb4f0afabbd80f.\n"
    },
    {
      "commit": "d18afab9d6a89d14c5c583a7d976665af4765a6b",
      "tree": "cf2dfc2b32234209839362abdf5f2cdf526a1cfb",
      "parents": [
        "1a3f52c9ac443aab383b13aae9fe34f9c575e105"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 17:34:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 17:34:04 2009 -0700"
      },
      "message": "fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer\n"
    },
    {
      "commit": "00900eb35473530a5fc77f7bd3ac306b6dcf19cb",
      "tree": "50ef4d7f5da62be60d0748dba6ed6713c61d6443",
      "parents": [
        "f5733b2938151fda955f01d9dc3ad15f7292604d"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Sep 15 14:51:56 2009 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Sep 15 18:29:03 2009 +0800"
      },
      "message": "Fix 2083478: Camera needs an auto-focus cancel API\n\nChange-Id: I13bda991b32aee47e82b5cf9d43b3021c416a9a2\n"
    },
    {
      "commit": "ab0fb1be8933b9c923c683d00d94bd2fa383fa85",
      "tree": "a9e2bd95a57a5851bcbfebb0146ce41b42ac705d",
      "parents": [
        "abff9f77d5319e770c895ee302b5de321b4ee4ed",
        "c7d56010815b0e7104dfc1d4bba6d16cdcbffec4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 19:01:40 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 19:01:40 2009 -0400"
      },
      "message": "Merge change 24947 into eclair\n\n* changes:\n  make sure to update the tail pointer when undoing a dequeue\n"
    },
    {
      "commit": "c7d56010815b0e7104dfc1d4bba6d16cdcbffec4",
      "tree": "b9b3a22c43414ae2dbd978252d4f8fda5b8b055f",
      "parents": [
        "46cd3afb0228dd18c5d67d2ef7e3620fcc4cc239"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 15:48:42 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 15:48:42 2009 -0700"
      },
      "message": "make sure to update the tail pointer when undoing a dequeue\n"
    },
    {
      "commit": "c101e04abb2c3bf4f48b185b454e94fade223653",
      "tree": "3af2ae736c8bcab15db8b9c2ef85f7f6046676b5",
      "parents": [
        "7b8ce0127dd40d5a39617204d91de1be6048beb2"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Sep 12 10:10:37 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Sat Sep 12 10:48:03 2009 -0700"
      },
      "message": "process: Switch to common cutils sched_policy api\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "63a85fc420537d6bf2b8717d35c578806056b9e7",
      "tree": "4950e2b4554dd1eaa6cff08724001530a5f0c7b7",
      "parents": [
        "879a56313038bb296ba901aa5461c7cb57b26f8f",
        "48d819a1315f7d1b5abfec9d4fd34fb5aed27b1d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 22:59:12 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 22:59:12 2009 -0400"
      },
      "message": "Merge change 24643 into eclair\n\n* changes:\n  fix [2112575] stuck on DequeueCondition for a surface that doesn\u0027t exist anymore\n"
    },
    {
      "commit": "879a56313038bb296ba901aa5461c7cb57b26f8f",
      "tree": "1520712690075b413967056baad868f556d7798b",
      "parents": [
        "6731d8c9854ceaa1a1f06c3e9421960bd5d9f07e",
        "b58b5d72d6877300fe39b2a30b4742c6f962833f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 22:59:02 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 22:59:02 2009 -0400"
      },
      "message": "Merge change 24642 into eclair\n\n* changes:\n  make sure conditions will return when the status of a surface is not NO_ERROR\n"
    },
    {
      "commit": "48d819a1315f7d1b5abfec9d4fd34fb5aed27b1d",
      "tree": "610ef98303e468061f68511380991e4b65bd547a",
      "parents": [
        "b58b5d72d6877300fe39b2a30b4742c6f962833f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 19:41:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 19:41:18 2009 -0700"
      },
      "message": "fix [2112575] stuck on DequeueCondition for a surface that doesn\u0027t exist anymore\n\nthis also fixes part of [2111536] Device is soft rebooted after ending the call through voice dialer\n"
    },
    {
      "commit": "b58b5d72d6877300fe39b2a30b4742c6f962833f",
      "tree": "aa1e32e51ef86a5ae1a3d5eb67836274a97ad083",
      "parents": [
        "bc52dabcb0f7ebe71cd7bfffacee9b1b1341547f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 16:55:13 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 16:55:13 2009 -0700"
      },
      "message": "make sure conditions will return when the status of a surface is not NO_ERROR\n"
    },
    {
      "commit": "9410f98e78622d962b3fb1c520af53d5351a65c5",
      "tree": "a418bc34575e74fbc48bf278058a61a4b2de5f73",
      "parents": [
        "476a3aef5e133756b773f8946251747d26b787f2"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Sep 08 20:28:35 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Sep 10 15:09:38 2009 -0700"
      },
      "message": "Process: Add support for using scheduler policies instead of cgroups.\nPreference is given to cgroups if available.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "4de4ebf6a25b5cf1819809ffcedea331d79823e0",
      "tree": "39c110d7cae1d3690c7454be7b3379dd58ceab80",
      "parents": [
        "454ea681398a23a45e2a9c4f3b12d7c30fec8e3c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 02:38:13 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 02:45:26 2009 -0700"
      },
      "message": "use broadcast() instead of signal() when signaling the condition-variable Thread::RequestExitAndWait() is waiting for\n\nwe could have several thread waiting on the condition and they all need to wake-up.\nalso added a debug \"mTid\" field in the class, which contains the tid of the thread (as opposed to pthread_t), this\nis useful when debugging under gdb for instance.\n"
    },
    {
      "commit": "cbb288bfe89f585bf48371bd31b2d4aafa32f32e",
      "tree": "73d20f36910dcab8c17c686cdd7014cee285bc39",
      "parents": [
        "f0780974fc31ae88135d1dcb67cb5fd86bb6deb6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "message": "fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly\n\nRewrote SurfaceFlinger\u0027s buffer management from the ground-up.\nThe design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.\n\nThe main new feature is to be able to dequeue all buffers at once (very important when there are only two). \n\nA client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.\n\nThe current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.\n\neg. Allowed sequence:   DQ, DQ, LOCK, Q, LOCK, Q\neg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q\n\n"
    },
    {
      "commit": "e03eaa1551a644e9a13c327d16cc09bfd7649d78",
      "tree": "b38dd00e41613f1a80e22d6e403d21b7d6fec136",
      "parents": [
        "d914215edf600f811f7ad8cad2eab9049cf859a4"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Aug 11 18:01:14 2009 +0200"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 25 18:35:54 2009 -0700"
      },
      "message": "Calculate specular lighting correctly\n\nSince the lighting calculations are done in object space, the vector\nfrom the object to the viewer also needs to be transformed to object\nspace.\n"
    },
    {
      "commit": "d4851d74ac9c737acda85f1fdbc028c68f481a36",
      "tree": "74e5f73442fdbe503aa82e751af1ddf9bb3e7691",
      "parents": [
        "8039e6edac4754113b31d6ed748b6a377874c65e"
      ],
      "author": {
        "name": "Benny Wong",
        "email": "Benny.Wong@motorola.com",
        "time": "Mon Aug 17 15:28:30 2009 -0500"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 20 03:55:20 2009 -0700"
      },
      "message": "Add offset handling in MemoryHeapBase class\n"
    },
    {
      "commit": "1c97d2ebe1f035beabd90089bfc78326b73d7864",
      "tree": "f78d8eb4239a3abf418d2efd1de88e3b20005df9",
      "parents": [
        "50517543d84446fc91fa65c60eda6d2e2724de10"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 19 17:46:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 19 17:46:26 2009 -0700"
      },
      "message": "fix a bug that caused the PixelFormat viewed by Surface to be wrong.\n\nwhat happened is that the efective pixel format is calculated by SF but Surface nevew had access to it directly.\nin particular this caused query(FORMAT) to return the requested format instead of the effective format.\n"
    },
    {
      "commit": "84a6d041e2c69d4d0b69269a0b59e725c9f119a3",
      "tree": "6841d5b1d696e27f66c30ede34c73d30cf5cc5c3",
      "parents": [
        "7f87b14a5b569b5526725fcf2d942156948d064c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 13:33:27 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 15:31:25 2009 -0700"
      },
      "message": "Support for marshalling pointers / intptr_t in Parcel.\n\nSome refactoring to eliminate code duplication in Parcel implementation.\n"
    },
    {
      "commit": "37b2a3744c2045cbf15a50dc1312fdd8c67ae8b1",
      "tree": "7ca06828ddfe3d25dce19295c95d22cf2a9b6835",
      "parents": [
        "50ba9f09b2ef30f12167c006b5c4573f2f68efb9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 17 12:33:20 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 17 12:33:20 2009 -0700"
      },
      "message": "really be more friendly with C\n"
    },
    {
      "commit": "ba5972ffdc7179dd9a387f22032eb18666d97917",
      "tree": "dd51ea840b82b9392ec1772b4c49f48f6c6190e1",
      "parents": [
        "d66a97950e8ef64051a4d497a91e5508254f77f6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 14 18:52:17 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 14 18:52:17 2009 -0700"
      },
      "message": "make sure to update a surface\u0027s usage bits when it changes, instead of only the first time.\n\nalso fixed a few locking issues in Surface and commented how each member is protected.\n"
    },
    {
      "commit": "238a66e67b155d7e1fcdb19b672ffc0ae4a6fc94",
      "tree": "64bc22ea6169a05f1dc9ba6b1bee591e47fbd74e",
      "parents": [
        "ccde199f7ce916e42a45b5a50e937d9c17904da2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 13 17:57:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 13 18:27:10 2009 -0700"
      },
      "message": "be more friendly with C\n"
    },
    {
      "commit": "ccde199f7ce916e42a45b5a50e937d9c17904da2",
      "tree": "5c2898152809f167bf29fbb723c027c49730e463",
      "parents": [
        "400f18045af0fc39f95c7e5736808648d19b28b4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 13 17:29:02 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 13 18:19:32 2009 -0700"
      },
      "message": "Surface::GPU and Surface::HARDWARE are now deprecated; they will be set automatically if needed.\n\nthis also ripples into the window manager API by making some constant there deprecated as well.\n"
    },
    {
      "commit": "fae3e73b6157555e8605f8b0c1d5b0bcc5b5ea00",
      "tree": "1beec506272f367f679bfe583eb1c7e816fdc91f",
      "parents": [
        "3bca35a3f4a7cf82eb04b1ae09f307e28de78830"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Aug 13 16:50:54 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu Aug 13 16:52:24 2009 -0700"
      },
      "message": "ui: make native_window_set_usage be a static inline\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "4c8fb0a184e51c3f561fff26ba84ceb5ec75be24",
      "tree": "bf62fcd39b8ddce9c5a9104bad23244cc747a15b",
      "parents": [
        "1689746b118fbf3a3a3e23f2ce7e2ab104d2ecfc"
      ],
      "author": {
        "name": "Benny Wong",
        "email": "Benny.Wong@motorola.com",
        "time": "Wed Aug 12 12:01:27 2009 -0500"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 13 10:46:28 2009 -0700"
      },
      "message": "Modified the camera HAL interface to use the same generic callback architecture as camera services\n"
    },
    {
      "commit": "878d647b5b77f040cdae810e7e05be23a105e1eb",
      "tree": "d8f23c6bf57d7f57680df75a8eb38201c8f04483",
      "parents": [
        "fac300462060a69dc5aa83b493f8cbdd28ea7d27",
        "f2c6fe29bbfab1db743a3ccce327d3d920643629"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 12:36:12 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 12 12:36:12 2009 -0700"
      },
      "message": "am b8546001: Merge change 20878 into donut\n\nMerge commit \u0027b8546001701405a76dad7e6235046e592296fac2\u0027\n\n* commit \u0027b8546001701405a76dad7e6235046e592296fac2\u0027:\n  Fix issue #2048263: More debugging information\n"
    },
    {
      "commit": "5221271375f361b84a6eeec3d7086f223997fbb3",
      "tree": "f65cab160cf38b9ed577f1cb5bc2f9882fc8631c",
      "parents": [
        "40ef81c7fce7cd1b028aec7b8b27b77ce6bf7b90"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 22:34:02 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 23:32:29 2009 -0700"
      },
      "message": "second take, hopefully this time it doesn\u0027t break one of the builds: \"SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.\"\n"
    },
    {
      "commit": "b2fd4665e66fe81969f1f07fd724c6f68dd8f7f1",
      "tree": "8564d48ba85748bdb281a3bcda22b41ed17c72e8",
      "parents": [
        "01b535185805d5b22c5fffc30833decdca308b5b"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Aug 11 20:49:35 2009 -0700"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Aug 11 20:49:35 2009 -0700"
      },
      "message": "Revert \"SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.\"\n\nThis reverts commit 8b76a0ac6fbf07254629ed1ea86af014d5abe050.\n"
    },
    {
      "commit": "e868513287c50caec4bcc83be3c49e12dfbeac72",
      "tree": "6d718266a3587e3ce5f99cf717edb0e02eccd003",
      "parents": [
        "7e78445103b25c05b49d22ecfeb2704215f41010"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 18:56:41 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 18:56:41 2009 -0700"
      },
      "message": "Fix issue #2048263: More debugging information\n\nWe now hopefully do better about generating the anr reports, and include\ninformation about the malloc loaded assets in meminfo.\n"
    },
    {
      "commit": "df37b62c62f8efd3b5a433f9b4d40d30cec13a31",
      "tree": "43c783e665b9e1c47210d3c5a8f929b33acda72f",
      "parents": [
        "d779f052b4180f347ed0bd725fdfedda504773e5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 10 21:59:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 11 16:12:56 2009 -0700"
      },
      "message": "SurfaceFlinger will now allocate buffers based on the usage specified by the clients. This allows to allocate the right kind of buffer automatically, without having the user to specify anything.\n\nThis change makes SurfaceHolder.setType(GPU) obsolete (it\u0027s now ignored).\nAdded an API to android_native_window_t to allow extending the functionality without ever breaking binary compatibility. This is used to implement the new set_usage() API. This API needs to be called by software renderers because the default is to use usage flags suitable for h/w.\n"
    },
    {
      "commit": "e186431c33fa332b585e37f6b5ef5efd39b359cf",
      "tree": "471d016198876e139ecd39934e126c6485cb47d4",
      "parents": [
        "fc40bc2e35f73f6efac91f9acca14d8e116a7565"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 07 12:01:29 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 10 12:58:05 2009 -0700"
      },
      "message": "Expose a variation of the createRenderer API that works on a plain Surface.\n"
    },
    {
      "commit": "8c12c7aec3fdbccfa8161c2c12131d590a9b5ce8",
      "tree": "4c68d57ec659dc3b8691508f9d55c7c79a55721a",
      "parents": [
        "42db9dcea2e6b9f60f07a3e9e2d6fbc196082284"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 16:37:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 16:37:21 2009 -0700"
      },
      "message": "added EGLUtils::strerror\n"
    },
    {
      "commit": "b2001065b957bf0db2577c0877c4751097d627af",
      "tree": "5c00115165f278d8a0553b46418496b4f142cd76",
      "parents": [
        "d9cede5115af9ac17a3a87386485640a0ea0343e",
        "653870d5e945ff94ff8136c97db0a016fc119683"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 06 16:27:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 06 16:27:47 2009 -0700"
      },
      "message": "Merge changes 20345,20346,20347\n\n* changes:\n  update most gl tests to use EGLUtils\n  added two EGL helpers for selecting a config matching a certain pixelformat or native window type\n  added NATIVE_WINDOW_FORMAT attribute to android_native_window_t\n"
    },
    {
      "commit": "6cf50a770dabd13cf5b72bb0a6fb9dd002c88db6",
      "tree": "cf9f9f051e842663afe6bd850f9d5cdb436e4901",
      "parents": [
        "6b1f41004fa48e96bab61f508867314261de660b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:05:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:05:39 2009 -0700"
      },
      "message": "added two EGL helpers for selecting a config matching a certain pixelformat or native window type\n"
    },
    {
      "commit": "6b1f41004fa48e96bab61f508867314261de660b",
      "tree": "d5988740afd45581663457af7870db42faef4160",
      "parents": [
        "1c3561e8d862d8fd27f8e843a18f251b9d9500b4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:04:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:04:29 2009 -0700"
      },
      "message": "added NATIVE_WINDOW_FORMAT attribute to android_native_window_t\n"
    },
    {
      "commit": "34193b31681dcbadf0a629879ca004f561b1b149",
      "tree": "2a0d9756383bd7fd4049191cbdde2aeec51f3191",
      "parents": [
        "b55717fd57b0d8a07a36d182430a3e14556ceca4"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Aug 06 14:50:08 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Aug 06 14:52:13 2009 -0700"
      },
      "message": "EventHub: pass the name of each input device up to Java\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "c591736c66cbd4320fc96573fda28bec2b4d4100",
      "tree": "c7df67f7338a856b8e0fee9b0b53adc3a2838fcd",
      "parents": [
        "e8ce92bbe07ae4df78fc6ce4ec33ed5e2baa2e46"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 04 05:49:43 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 04 20:53:52 2009 -0700"
      },
      "message": "Finish implementation of multiple pointer support for MotionEvent.\n\nThe major things going on here:\n\n- The MotionEvent API is now extended to included \"pointer ID\" information, for\n  applications to keep track of individual fingers as they move up and down.\n  PointerLocation has been updated to take advantage of this.\n\n- The input system now has logic to generate MotionEvents with the new ID\n  information, synthesizing an identifier as new points are down and trying to\n  keep pointer ids consistent across events by looking at the distance between\n  the last and next set of pointers.\n\n- We now support the new multitouch driver protocol, and will use that instead\n  of the old one if it is available.  We do NOT use any finger id information\n  coming from the driver, but always synthesize pointer ids in user space.\n  (This is simply because we don\u0027t yet have a driver reporting this information\n  from which to base an implementation on.)\n\n- Increase maximum number of fingers to 10.  This code has only been used\n  with a driver that reports up to 2, so no idea how more will actually work.\n\n- Oh and the input system can now detect and report physical DPAD devices.\n"
    },
    {
      "commit": "764d4ab4561b8556c06f2ae7c56b7e983a5cf0b7",
      "tree": "d422e17ee9f3b8e921695a3a519adc140d4e06c8",
      "parents": [
        "3e27ed48f32d12441a1eb69e69217514530642f9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 31 11:52:50 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 31 12:48:53 2009 -0700"
      },
      "message": "The IOMX interface now instantiates IOMXRenderers to hide the details of hardware accelerated blitting.\n"
    },
    {
      "commit": "fa170f513338322102a200de7d1fd696e51d55c8",
      "tree": "c4b7c19f4b78cf2e8805b675e25dc4dd99e227eb",
      "parents": [
        "b6db63a126967bb533966bfa946d963ad90d69a7",
        "cb6b9041647b4f080324742eee5ce709960ff610"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 18:46:48 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 18:46:48 2009 -0700"
      },
      "message": "Merge change 9287\n\n* changes:\n  fixed some issues with the software renderer when surfaces are made current.\n"
    },
    {
      "commit": "cb6b9041647b4f080324742eee5ce709960ff610",
      "tree": "14e5efafa0eace5d3a7943dc9c6316880ef22d11",
      "parents": [
        "69bdcb9b7b5089984bf474f30029fa024f519e47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 30 18:14:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 30 18:14:56 2009 -0700"
      },
      "message": "fixed some issues with the software renderer when surfaces are made current.\n\nthere was several issues:\n- when a surface was made non-current, the last frame wasn\u0027t shown and the buffer could stay locked\n- when a surface was made current the 2nd time, it would not dequeue a new buffer\n\nnow, queue/dequeue are done when the surface is made current.\n\nfor this to work, a new query() hook had to be added on android_native_window_t, it allows to retrieve some attributes of a window (currently only width and height).\n"
    },
    {
      "commit": "ff1dcc2cf9043c4d128cf8498b58e956e9ee965f",
      "tree": "ec026a8c308b3b171dda76f8536f2c4ea5496419",
      "parents": [
        "c76696a27662e6fda2c27fd6fb648ad9ddc78779",
        "62cbdad4011db8081eaf1030b044c10de20a13d3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 16:05:27 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 16:05:27 2009 -0700"
      },
      "message": "am 25dff70f: Merge change 9039 into donut\n\nMerge commit \u002725dff70f153529b87f5ad4a92f4de21e8950b1de\u0027\n\n* commit \u002725dff70f153529b87f5ad4a92f4de21e8950b1de\u0027:\n  Fix #2018814: System cannot correctly render assets with \"wrap_content\" attribute in QVGA\n"
    },
    {
      "commit": "3945ae5065ec62ed267e1aaf4cfc160c5eb6a79e",
      "tree": "09e0a70b87f84d145fb74c607455695488eaf1ac",
      "parents": [
        "d8475b75e6fc33416b892c44136ee9c16f79ed81"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 29 15:41:19 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 29 19:44:01 2009 -0700"
      },
      "message": "Fix #2018814: System cannot correctly render assets with \"wrap_content\" attribute in QVGA\n\nIt turns out we were not returning the density for anything retrieved from a\nTypedArray...  which basically means any bitmap references from a layout or style...!!!\n\nThis is now fixed.\n\nAlso fiddle with the density compatibility mode to turn on smoothing in certain situations,\nhelping the look of things when they need to scale and we couldn\u0027t do the scaling at\nload time.\n"
    },
    {
      "commit": "e56271109fe59e1c1f4958bdcdeb9a3a7f53eb28",
      "tree": "201db3370a39df777129ba4329aa42014944f7c8",
      "parents": [
        "e3772efdc5dacf9a580786b836daa77ce127cb6e"
      ],
      "author": {
        "name": "Benny Wong",
        "email": "Benny.Wong@motorola.com",
        "time": "Fri Jul 24 19:25:30 2009 -0500"
      },
      "committer": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Wed Jul 29 17:53:38 2009 -0700"
      },
      "message": "Adding resizeInput and setAttributes for overlay\n"
    },
    {
      "commit": "9d91ad5d99c1318f7f1435370e29f3f337afe82f",
      "tree": "a7cd0ed053e743e9b71a440aebf83325b829bad5",
      "parents": [
        "eba4009d897b30f2e24bb464468489c739f93e17"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 17 12:17:14 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 06:03:39 2009 -0700"
      },
      "message": "Fix issue 1795088       Improve audio routing code\n\nInitial commit for review.\nIntegrated comments after patch set 1 review.\nFixed lockup in AudioFlinger::ThreadBase::exit()\nFixed lockup when playing tone with AudioPlocyService startTone()\n"
    },
    {
      "commit": "298cb4ff6a792e475af7a32093dd0b7cdfde7486",
      "tree": "b594e7e306e0808afbeecf2ca73b7e943a6a5176",
      "parents": [
        "7e1bf6cb8545da18bafd4ccd0587c8000a76c2b8",
        "f0adf848ffffeca86f4c0210ea237883d9e5e8d5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 09:29:00 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 22 09:29:00 2009 -0700"
      },
      "message": "Merge change 7529\n\n* changes:\n  Make MemoryDealer\u0027s destructor protected instead of public.\n"
    },
    {
      "commit": "351b6f926e06355079669f170a97a729537932ed",
      "tree": "0d779cee2a916404e9c423eb337d4e38d78ab997",
      "parents": [
        "297bde4328124db768b90cd11e38d5e23ca152ba",
        "7a0847196cc33a0f1ee563d2009393c88c618b30"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 19:03:53 2009 -0700"
      },
      "message": "am 9fc20b0e: Merge change 8126 into donut\n\nMerge commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027\n\n* commit \u00279fc20b0e381b5fe00b7049ef357c839cd05a33bf\u0027:\n  First pass at reworking screen density/size APIs.\n"
    },
    {
      "commit": "60cde60e89373b03f1c645c51f825c7898f62d9e",
      "tree": "11203fd1998828f47f97f07de1114a0f54790a39",
      "parents": [
        "0e09083649e526196637b5763532418278e10de8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 17:46:02 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 21 18:28:42 2009 -0700"
      },
      "message": "First pass at reworking screen density/size APIs.\n\nThis changes the names of the directories in aapt, to what you see\nin the list of DpiTest resources.  Also adds a new \"long\" configuration\nfor wide screens, which the platform sets appropriate, and introduces\na new kind of resizeability for not large but significantly larger\nthan normal screens which may have compatibility issues.\n"
    },
    {
      "commit": "811fdfd9b7863ee4e6300500b9159d11878e1664",
      "tree": "96226ddee497fb27b25451434507bdfa79ff43c1",
      "parents": [
        "e69b16a6cb04014f3bab0c7a0ed4ed5f40732e5c",
        "71f771570e1b5341048a6fbf82a7c57d885bd850"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 10:50:52 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 10:50:52 2009 -0700"
      },
      "message": "Merge change 5892\n\n* changes:\n  Hardware overlay support\n"
    }
  ],
  "next": "89fbf845390322eb486632bae9108191803d4b9e"
}
