)]}'
{
  "log": [
    {
      "commit": "c2e28dd74813799aad132673ff9d302657dd04ed",
      "tree": "af700b4c91f9135026816458018547e7303dfc32",
      "parents": [
        "2f19f56ac5bcf02ed503bdaf95b724cba8ff782d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 16:58:34 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 17:14:55 2010 -0700"
      },
      "message": "Fix issue with project resources overriding framework resources.\n\nFramework resources loaded through Drawable.createFromXml could\nbe overriden by project resources if there were loaded through\na  state list drawable where the final resource name was used\nby a project resource (of the same type).\n\nThis ensures that the XML parser knows that it\u0027s a framework\nresource being parsed and that the resource resolution uses\nthat information.\n\nChange-Id: I39cf9eba755e55f1604b968637aeecff969a558d\n"
    },
    {
      "commit": "25e96ce7b99f9736a6024d25bd65a83774c7640f",
      "tree": "2060eeb90d6cd266f526daa2f16bcfe33111a2a6",
      "parents": [
        "106165b5102be226eb8049d2f7f62d7e26034e8a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 11:18:39 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 26 11:18:39 2010 -0700"
      },
      "message": "Fix rendering of digitalClock/Gallery in Eclipse editors.\n\nChange-Id: I80f4f90b173529632eaf2fbc3bb5471b7ede8216\n"
    },
    {
      "commit": "f8e4c1f57bbb658f53995443b0f175e50a2fc814",
      "tree": "95673dc259dc4636da7618f824e9a923d168f8ec",
      "parents": [
        "a29643a6455df7d3d615cdc45e11c437fe4b6cee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 04 17:41:03 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 04 18:11:50 2010 -0700"
      },
      "message": "Parser is optional in obtainStyledAttributes.\n\nIf the parser is null it just means the default style/values are\nused.\n\nChange-Id: I5ff3d632fd5dfc5a1ce42796b2fef7b30f9fbf34\n"
    },
    {
      "commit": "c486da4887811bce4895199c3116616b3638f35a",
      "tree": "2f8abb1491b97169dca7a85be2e5c4bfdb54d285",
      "parents": [
        "65a5ba45559e88a50c258d794a1728498c248376"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Sep 28 14:33:58 2010 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Sep 28 14:33:58 2010 -0700"
      },
      "message": "Call functions to calculate deps and classes.jar\n\nInstead of hard-coding them.\n\nChange-Id: Ia5818a1a69efb0964d5aa7de7e8d30ef04dfeccc\n"
    },
    {
      "commit": "8313fc7e94e46e5cc09f457a15a771a325b9f74f",
      "tree": "d68bf554b0d92a64cde72e58178e60d4d30b521d",
      "parents": [
        "08c09b0f84b23627b4cd02e1b9a642952fbd2e7f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 18:34:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 21:31:47 2010 -0700"
      },
      "message": "Allow all apps to call ContentResolver.getType().\n\nI can\u0027t find the bug number for this, but it is needed for some things\nwe are doing where the app building an intent may not have access to the\nURI in the data field.  This is for HC, but doing in GB to avoid introducing\nintegration issues.\n\nChange-Id: I0cac971854198b18775d2a73deb80f23431bfbe2\n"
    },
    {
      "commit": "80e62ac61c297452c003919f71c4dcd7063d1b43",
      "tree": "c52a239cc44e248ef0543b69289ade2cc64ca80b",
      "parents": [
        "7203272f35e40bf9d4b76f1b2f9b0077738df118"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jul 16 16:46:39 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jul 19 10:19:49 2010 -0700"
      },
      "message": "Fix the layoutlib Paint.set(Paint) method. Do not merge.\n\nIt would change the text rendering info but not recompute\nthe Java Font objects. The effect is a broken font rendering\nin the EditText (which use this method to copy some Paint\nobject before using the copy for the actual drawing)\n\nChange-Id: I9e7fbf9bd57b421fd793876a6de4ade1ecac372d\n"
    },
    {
      "commit": "80a60ba85b5c2ed40e8685a16ce6d3ed31ef0929",
      "tree": "c0607756e614e65e8a818a65996d25ec4128f402",
      "parents": [
        "aa1933ac4cb135be5469db275af7a758cdfdf744"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 14 19:58:30 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 14 19:58:30 2010 -0700"
      },
      "message": "Clean up some style in the makefiles.\n\nChange-Id: I993702808395f37c2e9d3c7e457d2952be51d795\n"
    },
    {
      "commit": "46b9ac0ae2162309774a7478cd9d4e578747bfc2",
      "tree": "46ad021a41e25ca9f1250b709a29b724dc6b504d",
      "parents": [
        "f62c57d684b83df7d2817db976c0afdb500ae92a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 22 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jun 13 17:42:16 2010 -0700"
      },
      "message": "Native input dispatch rewrite work in progress.\n\nThe old dispatch mechanism has been left in place and continues to\nbe used by default for now.  To enable native input dispatch,\nedit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.\n\nIncludes part of the new input event NDK API.  Some details TBD.\n\nTo wire up input dispatch, as the ViewRoot adds a window to the\nwindow session it receives an InputChannel object as an output\nargument.  The InputChannel encapsulates the file descriptors for a\nshared memory region and two pipe end-points.  The ViewRoot then\nprovides the InputChannel to the InputQueue.  Behind the\nscenes, InputQueue simply attaches handlers to the native PollLoop object\nthat underlies the MessageQueue.  This way MessageQueue doesn\u0027t need\nto know anything about input dispatch per-se, it just exposes (in native\ncode) a PollLoop that other components can use to monitor file descriptor\nstate changes.\n\nThere can be zero or more targets for any given input event.  Each\ninput target is specified by its input channel and some parameters\nincluding flags, an X/Y coordinate offset, and the dispatch timeout.\nAn input target can request either synchronous dispatch (for foreground apps)\nor asynchronous dispatch (fire-and-forget for wallpapers and \"outside\"\ntargets).  Currently, finding the appropriate input targets for an event\nrequires a call back into the WindowManagerServer from native code.\nIn the future this will be refactored to avoid most of these callbacks\nexcept as required to handle pending focus transitions.\n\nEnd-to-end event dispatch mostly works!\n\nTo do: event injection, rate limiting, ANRs, testing, optimization, etc.\n\nChange-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25\n"
    },
    {
      "commit": "c56653bff10ef7f1a80127c9649ed0b2c6ae1b2e",
      "tree": "bf5aec293fa9e6d16f77132e8ff4f5c45fe8b97e",
      "parents": [
        "c9b6851af68bdc20c4903b16c344e9f116647219"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Apr 08 17:18:35 2010 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Apr 08 17:18:35 2010 -0700"
      },
      "message": "Adds back the finalize method on the replaced Paint class.\n\nwithout it com.android.layoutlib.bridge.TestClassReplacement fails.\n\nChange-Id: Iafb6548f45c31e901591a45239224895c4403be8\n"
    },
    {
      "commit": "694f79b5d1196640d1beb680b7d1fc68e6e77cbd",
      "tree": "355894924374fb42cc6f8c664f34b413a90ecd7f",
      "parents": [
        "e4eb5bf243cb51b75b0717ebcd8c317a5b8fae8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 17 19:44:59 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 01:12:20 2010 -0700"
      },
      "message": "Fix issue #2519590: Lock screen stuck in landscape mode\n\nWell, mostly.  There is still a problem here where the first time\nyou show the lock screen it just doesn\u0027t draw itself.  I assume\nthis is something breaking in the view hierarchy as it floounders\naround removing and adding new views as it is first being shown...\nbut no idea at this point what is the actual case.\n\nChange-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe\n"
    },
    {
      "commit": "15a4d2ffd04dc6c70f2cd17dae12ac6bc14c69ab",
      "tree": "2dbbf0c31082373354fb17308de3681e22c66169",
      "parents": [
        "8abb26ee6c77e01a23d26c305a65b25a33710024"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:20:12 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 11 18:22:10 2010 -0800"
      },
      "message": "Add correct copyright headers to multiple files\n\nFormat for the list of changes shows the origin commit reference followed\nby the file name.\n\n33931-p9 awt/org/apache/harmony/awt/gl/font/AndroidGlyphVector.java\n33931-p9 awt/org/apache/harmony/awt/gl/image/PngDecoderJava.java\n133776-p9 core/java/android/app/IntentService.java\n127013-p9 core/java/android/appwidget/AppWidgetHost.java\n27863-p9 core/java/android/bluetooth/BluetoothAudioGateway.java\n60765-p9 core/java/android/content/SyncResult.java\n43920-p9 core/java/android/content/pm/ActivityInfo.java\n43920-p9 core/java/android/content/pm/ApplicationInfo.java\n43920-p9 core/java/android/content/pm/InstrumentationInfo.java\n43920-p9 core/java/android/content/pm/PackageInfo.java\n44103-p9 core/java/android/content/pm/PackageItemInfo.java\n68960-p9 core/java/android/content/pm/PackageStats.java\n43920-p9 core/java/android/content/pm/ResolveInfo.java\n43920-p9 core/java/android/content/pm/ServiceInfo.java\n60641-p9 core/java/android/content/res/Configuration.java\n60734-p9 core/java/android/content/res/TypedArray.java\n137672-p9 core/java/android/inputmethodservice/ExtractButton.java\n123112-p9 core/java/android/inputmethodservice/ExtractEditText.java\n119291-p9 core/java/android/inputmethodservice/IInputMethodSessionWrapper.java\n112946-p9 core/java/android/inputmethodservice/IInputMethodWrapper.java\n115078-p9 core/java/android/os/BatteryStats.java\n124790-p9 core/java/android/text/style/UpdateAppearance.java\n45083-p9 core/java/android/view/RawInputEvent.java\n101491-p9 core/java/android/view/inputmethod/EditorInfo.java\n114701-p9 core/java/android/view/inputmethod/ExtractedText.java\n123112-p9 core/java/android/view/inputmethod/ExtractedTextRequest.java\n119291-p9 core/java/com/android/internal/os/HandlerCaller.java\n129279-p9 core/java/com/android/internal/os/PkgUsageStats.java\n114701-p9 core/java/com/android/internal/view/IInputConnectionWrapper.java\n114701-p9 core/java/com/android/internal/view/InputConnectionWrapper.java\n84364-p9 opengl/java/android/opengl/EGLLogWrapper.java\n11355-p9 opengl/tools/glgen/src/CFunc.java\n11355-p9 opengl/tools/glgen/src/CType.java\n11355-p9 opengl/tools/glgen/src/CodeEmitter.java\n11355-p9 opengl/tools/glgen/src/GenerateGL.java\n11355-p9 opengl/tools/glgen/src/JFunc.java\n11355-p9 opengl/tools/glgen/src/JType.java\n11355-p9 opengl/tools/glgen/src/JniCodeEmitter.java\n11355-p9 opengl/tools/glgen/src/ParameterChecker.java\n57236-p9 services/java/com/android/server/status/AnimatedImageView.java\n66754-p9 services/java/com/android/server/status/CloseDragHandle.java\n57188-p9 services/java/com/android/server/status/DateView.java\n46928-p9 services/java/com/android/server/status/ExpandedView.java\n70590-p9 services/java/com/android/server/status/FixedSizeDrawable.java\n45968-p9 services/java/com/android/server/status/IconData.java\n57470-p9 services/java/com/android/server/status/IconMerger.java\n82719-p9 services/java/com/android/server/status/LatestItemView.java\n45968-p9 services/java/com/android/server/status/NotificationData.java\n66754-p9 services/java/com/android/server/status/NotificationLinearLayout.java\n57458-p9 services/java/com/android/server/status/NotificationViewList.java\n45968-p9 services/java/com/android/server/status/StatusBarException.java\n45968-p9 services/java/com/android/server/status/StatusBarIcon.java\n46130-p9 services/java/com/android/server/status/StatusBarNotification.java\n45968-p9 services/java/com/android/server/status/StatusBarView.java\n46199-p9 services/java/com/android/server/status/Ticker.java\n62286-p9 services/java/com/android/server/status/TickerView.java\n57188-p9 services/java/com/android/server/status/TrackingView.java\n86041-p9 telephony/java/android/telephony/PhoneStateListener.java\n87020-p9 telephony/java/com/android/internal/telephony/TelephonyIntents.java\n136269-p9 telephony/java/com/android/internal/telephony/gsm/SpnOverride.java\n34409-p9 tests/FrameworkTest/src/com/android/frameworktest/FrameworkTestApplication.java\n55717-p9 tests/FrameworkTest/src/com/android/frameworktest/performance/InvalidateCycle.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityLandscape.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/AutoCompleteTextViewActivityPortrait.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResize.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScan.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/BigEditTextActivityScrollableResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/BottomEditTextActivityResize.java\n127341-p9 tests/ImfTest/src/com/android/imftest/samples/ButtonActivity.java\n129347-p9 tests/ImfTest/src/com/android/imftest/samples/DialogActivity.java\n129372-p9 tests/ImfTest/src/com/android/imftest/samples/EditTextActivityDialog.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScan.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/ManyEditTextActivityScrollResize.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivityNotSelected.java\n128994-p9 tests/ImfTest/src/com/android/imftest/samples/OneEditTextActivitySelected.java\n25959-p9 tests/framework-tests/src/android/test/FrameworkTests.java\n46162-p9 tests/framework-tests/src/com/android/internal/http/multipart/MultipartTest.java\n77101-p9 tools/layoutlib/bridge/tests/com/android/layoutlib/bridge/NinePatchTest.java\n9788976b1465ce982b5ae7c741345edd0ecd9322 core/java/android/accounts/AuthenticatorDescription.java\n53332883543868fb83e111a07306368b7772b340 core/java/android/app/UiModeManager.java\n93e7e22ec91dbc641d10ca6d70423e1357a95bba core/java/android/app/FullBackupAgent.java\n328c0e7986aa6bb7752ec6de3da9c999920bb55f core/java/android/content/CursorEntityIterator.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncQueue.java\n307da1a46b4c9b711bafe8fbaaa6b98e8868c18e core/java/android/content/SyncOperation.java\neb034652c2037a47ebfd99779e8383bb8bb528af core/java/android/content/pm/LabeledIntent.java\n49237345d83e62fdb9eb8d50b13ad086636a04fa core/java/android/content/pm/FeatureInfo.java\na2b6c3775ed6b8924232d6a01bae4a19740a15f8 core/java/android/content/pm/PackageInfoLite.java\n3ecd5f437580e49d80beecd29489d5fb1f7a7db0 core/java/android/content/pm/RegisteredServicesCacheListener.java\n5ebbb4a6b3e16f711735ae0615b9a9ea64faad38 core/java/android/content/pm/XmlSerializerAndParser.java\nc4516a7b62de525e3d6d5e76851bdfaf12c11f05 core/java/android/database/sqlite/SQLiteTransactionListener.java\n9bbc21a773cbdfbef2876a75c32bda5839647751 core/java/com/android/internal/backup/LocalTransport.java\n21f1bd17b2dfe361acbb28453b3f3b1a110932fa core/java/com/android/internal/content/PackageMonitor.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseSurfaceHolder.java\n4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 core/java/com/android/internal/view/BaseIWindow.java\ne540833fdff4d58e37c9ba859388e24e2945ed45 core/java/com/android/internal/os/SamplingProfilerIntegration.java\n192ab903887bbb8e7c7b6da5c581573850e30f46 core/tests/coretests/src/android/widget/expandablelistview/PositionTesterContextMenuListener.java\n1619367ab823150fa8856d419abe02ceb75886f1 media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaProfileReader.java\n27f8002e591b5c579f75b2580183b5d1c4219cd4 opengl/tools/glgen/stubs/gles11/glGetString.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetProgramInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glGetShaderInfoLog.java\n560814f6b11abe83ff0c4ed18cac015c276b3181 opengl/tools/glgen/stubs/gles11/glShaderSource.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GenerateGLES.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/Jsr239CodeEmitter.java\n1c4907ee77392afb768c2f088e0dedbe4239f6fb opengl/tools/glgen/src/GLESCodeEmitter.java\n69e21f5f6e0d04539cd92848ea009dd615d88c2c opengl/tests/gldual/src/com/android/gldual/TriangleRenderer.java\nc028be4f3b8c7476b46859f66c3f33d528adf181 packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerMeasurement.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestActivity.java\n7c6efa13f129dbae5319f0981a430d4662f43354 tests/BrowserPowerTest/src/com/android/browserpowertest/PowerTestRunner.java\ndf8a3f31d871db25e952972c2eb346a71186e9e3 tests/BrowserTestPlugin/src/com/android/testplugin/TestPlugin.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ActivityManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/ServiceManagerPermissionTests.java\ncfaef699e1dfb3a75d5b51f3b15816f13670fd51 tests/permission/src/com/android/framework/permission/tests/WindowManagerPermissionTests.java\n\nCopyright header moved to top in following file:\n\ncore/tests/coretests/src/android/widget/ListViewTest.java\n\nChange-Id: I3c3198be5a0ba36e18679ed834170432bf0b8418\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": "ba289966c644bf54a747ba9b003f86ea7f12bfed",
      "tree": "304330843acce41a1e55da90116fa24cf493417a",
      "parents": [
        "982bb24f5db4bfd9c52eb16adb876fea7c7e4a8b",
        "05c376b00b583ea3fdf0a222d7220fab7eca15c2"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Feb 24 19:15:06 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 19:15:06 2010 -0800"
      },
      "message": "Merge \"Remove empty finalize methods.\""
    },
    {
      "commit": "05c376b00b583ea3fdf0a222d7220fab7eca15c2",
      "tree": "9618fa1b6ef8aeb8b20ba1f08934e8925b6cb750",
      "parents": [
        "8ff1e3f2ec24c6b81b90e1644060e6de25fb456e"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Feb 24 18:43:36 2010 -0800"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Wed Feb 24 18:43:36 2010 -0800"
      },
      "message": "Remove empty finalize methods.\n"
    },
    {
      "commit": "bc3323bea64bbeab0edd0df5e344d844a8d89509",
      "tree": "7e0081282035368680ef9919b29f1760fbecc2d7",
      "parents": [
        "2e1818a4d16c3309660f27286c77d8d1eee95a25"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 23 19:43:04 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Feb 23 19:43:04 2010 -0800"
      },
      "message": "Fix the layoutlib to still support fill_parent.\n\nChange-Id: I5e1825f1f853cf9e31b2ee262edce636a030429d\n"
    },
    {
      "commit": "e36d6e277e49475076b7872d36ea6a5c5b996e9d",
      "tree": "83fa38d654d5bf93315b12423a7e9aa81ec45f9e",
      "parents": [
        "a696f5d667227365da732481770767dcb330dd23"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 19:46:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 15:47:34 2010 -0800"
      },
      "message": "Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes\n\nThis is a bunch of reworking of how configuration changes are handled:\n\n- When orientation is changing (for whatever reason), the window manager no\n  longer tries to pre-emptively compute a new configuration.  Instead, it\n  just determines  change is happening and tells the window manager.\n- The activity manager is now responsible for giving the window manager the\n  final configuration it is using.  This is both so it knows whem the\n  activity manager is done with its configuration updates, and so the window\n  manager can use the \"real\" configuration.\n- When an orientation or other configuration change is happening, freeze the\n  screen and keep it frozen until the activity manager has given us the\n  final configuration.\n- The window manager can now send new configurations to its clients during\n  its layout pass, as part of a resize, if it has determined that it has\n  changed.  This allows for a new View.onConfigurationChanged() API for any\n  view to easily find out when the configuration has changed.\n- ViewRoot now also works with the activity thread to make sure the process\u0027s\n  current resources are updated to the new configuration when it receives one\n  from a window.  This ensures that at the time onConfigurationChanged() and\n  other view callbacks are happening, the correct configuration is in force.\n- There is now a sequence number associated with Configuration, which\n  ActivityThread uses to avoid using stale configurations.  This is needed now\n  that it can receive configurations asynchronously from both the window\n  manager and activity manager.\n- The hack for keeping the locale has been removed, and underlying problem\n  fixed by having Configuration initialize its locale to \"unknown\" instead of\n  a valid default value.\n"
    },
    {
      "commit": "99e1cdae99a99170011150d6827bf4c9ee63c075",
      "tree": "8e882ebff1b4b364736951705f47568e100c8d06",
      "parents": [
        "7356b0b0661f61a161ac6771e4325ad5f687cb2e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 11 15:37:31 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Feb 11 15:37:31 2010 -0800"
      },
      "message": "Fix in layoutlib due to some changes in the frameworks.\n\nSome methods disappear or became abstract in the base class\n(breaking @Override)\n\nChange-Id: Id4d298ee84ba008ac97ecaaf90b19003ac09f104\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "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": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "264ce3825892e4b5ef6af61d330832f4592130bf",
      "tree": "69b6a9b7d0ca691d8850f4c719b2527088f23288",
      "parents": [
        "4789f0cd166e2e88aeba350b5baa45ab5d59b1b2",
        "3bd6dc653521281db25df77f055b3ec0b4659454"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Fri Jan 22 12:36:26 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 12:36:26 2010 -0800"
      },
      "message": "am 3bd6dc65: am b44051ee: Merge \"ADT/Layoutlib: implement sweep gradient.\" into eclair\n\nMerge commit \u00273bd6dc653521281db25df77f055b3ec0b4659454\u0027\n\n* commit \u00273bd6dc653521281db25df77f055b3ec0b4659454\u0027:\n  ADT/Layoutlib: implement sweep gradient.\n"
    },
    {
      "commit": "28d9c60ee203eff53a5a8577df8a780402173b24",
      "tree": "0149aa577e65eda2c1050182a56a95f7be227515",
      "parents": [
        "b70efcbbb1ae0672c43da86511daf49d177d8ed8",
        "60e3c09ec0fa73a3e650f4aec89c763599c2e0b7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Fri Jan 22 09:45:49 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 22 09:45:49 2010 -0800"
      },
      "message": "am 60e3c09e: am 6866daee: Merge \"ADT/Layoutlib: implement radial gradient.\" into eclair\n\nMerge commit \u002760e3c09ec0fa73a3e650f4aec89c763599c2e0b7\u0027\n\n* commit \u002760e3c09ec0fa73a3e650f4aec89c763599c2e0b7\u0027:\n  ADT/Layoutlib: implement radial gradient.\n"
    },
    {
      "commit": "c22b3ca198dcb1d11c1a9cb8e17eb9c66b2afaa5",
      "tree": "8f67df6b20bfd8912e623924dff331b467cfc28d",
      "parents": [
        "4e8e87d905054737dc51ef0ba90f0a0a518be000",
        "da84d6a1b1c37376d48f92ae59b76f1c891772f6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 17:55:40 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 17:55:40 2010 -0800"
      },
      "message": "am da84d6a1: am 908a8111: Merge \"ADT/Layoutlib: Add dash support to stroke.\" into eclair\n\nMerge commit \u0027da84d6a1b1c37376d48f92ae59b76f1c891772f6\u0027\n\n* commit \u0027da84d6a1b1c37376d48f92ae59b76f1c891772f6\u0027:\n  ADT/Layoutlib: Add dash support to stroke.\n"
    },
    {
      "commit": "4e8e87d905054737dc51ef0ba90f0a0a518be000",
      "tree": "4558d5ea66dafef88b0dbc9ad61f0172d1c73211",
      "parents": [
        "fa5875a3c5089069655093fa1f5cab80f6f9fe96",
        "c0ea805c649666b55d4dde09eb72dcccfa8bccc3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 17:55:17 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 17:55:17 2010 -0800"
      },
      "message": "am c0ea805c: am 2b30a4a5: Merge \"ADT/Layoutlib: properly handle stroke information.\" into eclair\n\nMerge commit \u0027c0ea805c649666b55d4dde09eb72dcccfa8bccc3\u0027\n\n* commit \u0027c0ea805c649666b55d4dde09eb72dcccfa8bccc3\u0027:\n  ADT/Layoutlib: properly handle stroke information.\n"
    },
    {
      "commit": "18d21ef83e5de1cbd3875274f3c5f6eee198af6e",
      "tree": "81f73f8b785e336e550dafaf29fbada98a43a193",
      "parents": [
        "beb0993c6aa7ccaf4e1ec88355a28f4c3ea93c7a",
        "20cc55703348827fbd80ff0410777a537f01e10e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 14:31:11 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:31:11 2010 -0800"
      },
      "message": "am 20cc5570: am 79f05bb4: Merge \"ADT/Layoutlib: improved gradient drawing for perf.\" into eclair\n\nMerge commit \u002720cc55703348827fbd80ff0410777a537f01e10e\u0027\n\n* commit \u002720cc55703348827fbd80ff0410777a537f01e10e\u0027:\n  ADT/Layoutlib: improved gradient drawing for perf.\n"
    },
    {
      "commit": "beb0993c6aa7ccaf4e1ec88355a28f4c3ea93c7a",
      "tree": "493ce6dae1d107d3d604af65309298e4ef4ac555",
      "parents": [
        "900399f3e8bc3001d3dd017449aea15487c68c59",
        "38fa9eee9324b2355f28372e80dba12c1d7cc105"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 21 14:30:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:30:48 2010 -0800"
      },
      "message": "am 38fa9eee: am 89d538dc: ADT/Layoutlib: don\\\u0027t draw 0-sized rectangle, AWT doesn\\\u0027t like that.\n\nMerge commit \u002738fa9eee9324b2355f28372e80dba12c1d7cc105\u0027\n\n* commit \u002738fa9eee9324b2355f28372e80dba12c1d7cc105\u0027:\n  ADT/Layoutlib: don\u0027t draw 0-sized rectangle, AWT doesn\u0027t like that.\n"
    },
    {
      "commit": "900399f3e8bc3001d3dd017449aea15487c68c59",
      "tree": "e812af2386cc1d07db8f3a3cc1e873cd72b68daa",
      "parents": [
        "eca7f02f52470a15b874759deb0999f8ce920f03",
        "895c92a44b8bcf0aec7066c061293cafe12a76c2"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 14:30:17 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:30:17 2010 -0800"
      },
      "message": "am 895c92a4: am 240298f9: Merge \"ADT/Layoutlib: always use custom gradient (java) Paint.\" into eclair\n\nMerge commit \u0027895c92a44b8bcf0aec7066c061293cafe12a76c2\u0027\n\n* commit \u0027895c92a44b8bcf0aec7066c061293cafe12a76c2\u0027:\n  ADT/Layoutlib: always use custom gradient (java) Paint.\n"
    },
    {
      "commit": "7fa53aa5df551d318983ed1258ba141337c68ba6",
      "tree": "a806504f624938228c929fa3c320bcb5b83c12ae",
      "parents": [
        "04ce08f34e39928a5b8e9ea59134f255c9ff08f6",
        "31ef2e77c50485ad6ed410a5d341754d6787b8e1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 21 14:29:02 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 21 14:29:02 2010 -0800"
      },
      "message": "am 31ef2e77: am b847fbf2: Merge \"ADT/Layout: support for 3+ color in linear gradients\" into eclair\n\nMerge commit \u002731ef2e77c50485ad6ed410a5d341754d6787b8e1\u0027\n\n* commit \u002731ef2e77c50485ad6ed410a5d341754d6787b8e1\u0027:\n  ADT/Layout: support for 3+ color in linear gradients\n"
    },
    {
      "commit": "3330927bdd2fedcbc8745f99d3f40929f47fdd31",
      "tree": "38afb871353c0d85b8ed1267efc02e46653fdba6",
      "parents": [
        "b1c4a2a3b37fccf68e6a9563cccf1685df2bf3e7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 18:51:06 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 18:51:06 2010 -0800"
      },
      "message": "ADT/Layoutlib: implement sweep gradient.\n\nChange-Id: I2d460decff82f5f64b0a5cfeaa68156aad4fb3e6\n"
    },
    {
      "commit": "ef5506c817c2a305ca1c7b03d4ea34a64962b9d7",
      "tree": "dc9f072b84d93ac15b50be18b20e4c4bfaf8688f",
      "parents": [
        "691b47e154f702bc77472e670281a6be4252e89d",
        "f95e3dd23cb6cbd7a86dece3c4bafff71307721a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 16:34:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 16:34:48 2010 -0800"
      },
      "message": "am f95e3dd2: am 5e083024: ADT/Layoutlib: shader clean-up.\n\nMerge commit \u0027f95e3dd23cb6cbd7a86dece3c4bafff71307721a\u0027\n\n* commit \u0027f95e3dd23cb6cbd7a86dece3c4bafff71307721a\u0027:\n  ADT/Layoutlib: shader clean-up.\n"
    },
    {
      "commit": "691b47e154f702bc77472e670281a6be4252e89d",
      "tree": "50f35f10fc25dace14f976faeb5d23f7a1743b4b",
      "parents": [
        "28efe25149cf4ba084146fd1b3cbf9504fcd2dc3",
        "e1a991476365cf1a8249c842e2b936db6940b0a7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Tue Jan 19 16:34:32 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 16:34:32 2010 -0800"
      },
      "message": "am e1a99147: am d3026e16: Merge \"ADT/Layoutlib: 2 color, linear gradient support.\" into eclair\n\nMerge commit \u0027e1a991476365cf1a8249c842e2b936db6940b0a7\u0027\n\n* commit \u0027e1a991476365cf1a8249c842e2b936db6940b0a7\u0027:\n  ADT/Layoutlib: 2 color, linear gradient support.\n"
    },
    {
      "commit": "45a7c285985976c23d818665694addbb25e02565",
      "tree": "19af466f6639bfe9d00b745b5fffdbd59e5bc7d9",
      "parents": [
        "f167c4bfca57b5467f40f6cf25e10fb12183a9f3"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 10:20:43 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 14:03:31 2010 -0800"
      },
      "message": "ADT/Layoutlib: implement radial gradient.\n\nAlso refactored some parts of LinearGradient to reuse them\nin the radial gradient\n\nChange-Id: I2ec69bd60190bd014217d989177dcc7269188dea\n"
    },
    {
      "commit": "28039a6f7430bed46de5d8273be583f729c31b79",
      "tree": "8d1c2051537f6015b3817d9b35827668c466043b",
      "parents": [
        "3e22d199a0434a6450eccc5f75a1ad8141878de0",
        "1da2735c5862d48712706c2052a34e10e3dea43b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Tue Jan 19 00:02:15 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 00:02:15 2010 -0800"
      },
      "message": "am 1da2735c: am f73bd14a: Merge \"ADT/Layoutlib: implement Canvas.concat(Matrix)\" into eclair\n\nMerge commit \u00271da2735c5862d48712706c2052a34e10e3dea43b\u0027\n\n* commit \u00271da2735c5862d48712706c2052a34e10e3dea43b\u0027:\n  ADT/Layoutlib: implement Canvas.concat(Matrix)\n"
    },
    {
      "commit": "05bc8d739768c8e2e025c291706f6c10ac362636",
      "tree": "22fb2ea37745740365c1e29687917a746efb9270",
      "parents": [
        "2b7ff1c47147e31521a3ef9e7d02252111192cb3",
        "cff6c8459ca05f3fee2d2999989d07a7176f955c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Jan 19 00:01:32 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 19 00:01:32 2010 -0800"
      },
      "message": "am cff6c845: am ae4bd059: ADT/Layoutlib: Reimplement parts of BitmapFactory\n\nMerge commit \u0027cff6c8459ca05f3fee2d2999989d07a7176f955c\u0027\n\n* commit \u0027cff6c8459ca05f3fee2d2999989d07a7176f955c\u0027:\n  ADT/Layoutlib: Reimplement parts of BitmapFactory\n"
    },
    {
      "commit": "36ab1284d8e89486cadbd55320ca965e96d65f44",
      "tree": "c44df15b1d3fd62f208eb754aa790f27fa1d73e8",
      "parents": [
        "5ac8f409f52b4b121614a8797d289f01f96c6527"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 15 11:24:44 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jan 15 11:24:44 2010 -0800"
      },
      "message": "ADT/Layoutlib: Add dash support to stroke.\n\nChange-Id: I09a7e84948be013cbb11f6d9774ab81df897b424\n"
    },
    {
      "commit": "5ac8f409f52b4b121614a8797d289f01f96c6527",
      "tree": "11bef17011fb08ef634e26b84aa50919d4a6ae3c",
      "parents": [
        "79f05bb4a502d5768f84cf975f791f3ba981e0e5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 19:19:06 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 19:43:54 2010 -0800"
      },
      "message": "ADT/Layoutlib: properly handle stroke information.\n\nChange-Id: Iec9284d0e65d1313739e361d1fd5a522646fd1fd\n"
    },
    {
      "commit": "79f05bb4a502d5768f84cf975f791f3ba981e0e5",
      "tree": "17e1368ac8c06159f597e015a74c86515e07bdd9",
      "parents": [
        "89d538dcca9a4cb95682c56b0c4b85e8a77442be",
        "e8f4d7deab2c183604ea5a2344a1e2d7ff4f823a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 14 19:10:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 14 19:10:44 2010 -0800"
      },
      "message": "Merge \"ADT/Layoutlib: improved gradient drawing for perf.\" into eclair"
    },
    {
      "commit": "e8f4d7deab2c183604ea5a2344a1e2d7ff4f823a",
      "tree": "222820fb3b39898bf1f9dea3d5ce0dc38c68f041",
      "parents": [
        "240298f9e4542c487edd0337e84b50c493cbeecd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:45:04 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:45:04 2010 -0800"
      },
      "message": "ADT/Layoutlib: improved gradient drawing for perf.\n\nChange-Id: I79b909d7787e4442e7cfdf196de1ac0c077da7f8\n"
    },
    {
      "commit": "89d538dcca9a4cb95682c56b0c4b85e8a77442be",
      "tree": "a5fb9a78417586bede94af8360d86692cf3064cb",
      "parents": [
        "240298f9e4542c487edd0337e84b50c493cbeecd"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:37:21 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 18:38:06 2010 -0800"
      },
      "message": "ADT/Layoutlib: don\u0027t draw 0-sized rectangle, AWT doesn\u0027t like that.\n\nChange-Id: I298d00208ace2421478c5864cc5a66a508b2b411\n"
    },
    {
      "commit": "2dbb923aa02e09a64fc111596a9ac9117488aa24",
      "tree": "b8169a9384a71da3f871bc8ebe8a5f8fda74d5d7",
      "parents": [
        "374abf0b95ca94d34f94edd385fb37a8d5cb123b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 17:14:05 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 17:17:25 2010 -0800"
      },
      "message": "ADT/Layoutlib: always use custom gradient (java) Paint.\n\nThe normal linear paint from AWT does not support our TileModes.\n\nChange-Id: I24667671dabdf1a5dffa342e4de9cc69487db0b6\n"
    },
    {
      "commit": "374abf0b95ca94d34f94edd385fb37a8d5cb123b",
      "tree": "60dcb0c54cac2ce1d49ddb318184bfe3e5e103df",
      "parents": [
        "5e083024269e7c5bf904301a98fa6eade6fec094"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 15:15:35 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 15:15:35 2010 -0800"
      },
      "message": "ADT/Layout: support for 3+ color in linear gradients\n\nChange-Id: I14c6a5a1de41470c6f1c66d490492ecc727302f2\n"
    },
    {
      "commit": "5e083024269e7c5bf904301a98fa6eade6fec094",
      "tree": "8235c730a57fa297d5e0ea34c83340fb1377d1d1",
      "parents": [
        "d3026e1618d893db55c2131d66b08bc4a6e7aaf4"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 10:30:16 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 14 10:37:13 2010 -0800"
      },
      "message": "ADT/Layoutlib: shader clean-up.\n\nChange-Id: I0a200f438b7ccde2bfc19fd23614a647cb19d312\n"
    },
    {
      "commit": "63b2e616278c1b4284e1adbcc3936d0516083dcb",
      "tree": "b68abe13e228a07126d563f1e7db2cc01352a472",
      "parents": [
        "f73bd14a8d5932b34a0e6e4d2de78b74705276b8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 20:30:26 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 20:30:26 2010 -0800"
      },
      "message": "ADT/Layoutlib: 2 color, linear gradient support.\n\nChange-Id: Ifaafa4fc42a22f4851449a7c35a5b82e211aafe7\n"
    },
    {
      "commit": "608cd11cdcef006b3c8db966b9b113ef7b08b839",
      "tree": "677b01d405dea6ac859d2c7a6c97130a395ebb08",
      "parents": [
        "ae4bd059caa71aa4652c0f07fde7c2687169906e"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 18:06:00 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 18:17:59 2010 -0800"
      },
      "message": "ADT/Layoutlib: implement Canvas.concat(Matrix)\n\nThis prevented ImageView from making proper use of ScaleType.\n\nAlso fixed Canvas.getSaveCount() that returned the wrong\nvalue and Matrix.getTransform() which used the wrong order\nfor the AffineTransform constructor!!\n\nBug: 2364564\n\nChange-Id: I78babf4aa6689440e52ad06b1473f75b20eb66da\n"
    },
    {
      "commit": "ae4bd059caa71aa4652c0f07fde7c2687169906e",
      "tree": "1fdcb26ee1a43782b61459e1ec5aca9520e845db",
      "parents": [
        "1193ae4e824c66b75083c444ce0f250594e138ee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 16:43:07 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jan 13 16:43:07 2010 -0800"
      },
      "message": "ADT/Layoutlib: Reimplement parts of BitmapFactory\n\nThe original bitmap factory is mostly done in native and deals\nwith the normal android Bitmap class which has been replaced\nin the layoutlib by a bitmap that is merely a wrapper around\nan AWT BufferedImage.\n\nThis new BitmapFactory creates the layoutlib version of\nBitmap all in Java.\n\nChange-Id: Ice8b5d19141a9a43f83349c159201bf85604b3b0\n"
    },
    {
      "commit": "6d40ee33f534aa31c5d9c4dbc6049275e3b754c2",
      "tree": "6a0027e59aef0eca8a8510ca6487ec941951599e",
      "parents": [
        "6ee699102fda033c5b8cbb844c446bf3ecf44dbf",
        "f5a84f8a7f91422f698ffbea3fabf77f2f7f77c8"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Mon Jan 11 15:30:29 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 11 15:30:29 2010 -0800"
      },
      "message": "am f5a84f8a: am dfe25b0e: Merge \"LayoutLib: support for custom styles.\" into eclair\n\nMerge commit \u0027f5a84f8a7f91422f698ffbea3fabf77f2f7f77c8\u0027\n\n* commit \u0027f5a84f8a7f91422f698ffbea3fabf77f2f7f77c8\u0027:\n  LayoutLib: support for custom styles.\n"
    },
    {
      "commit": "9ce3b775f55abd0ceb1d8e96968ce725f1f8bade",
      "tree": "24d0be965d60df05ba62b8ddc7d3095d76ee420f",
      "parents": [
        "595f48b2a4fa2751ad638b60d2476e77738b21da"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 11 14:28:03 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Jan 11 14:28:03 2010 -0800"
      },
      "message": "LayoutLib: support for custom styles.\n\nChange-Id: Ic6c2ef234589f45db15024261d698066aa6e2f4e\n"
    },
    {
      "commit": "2924a51fd04856012b4ac2acdfffc3b7d469f62f",
      "tree": "516afab20965fea9b9801381a0a34591aeea61bb",
      "parents": [
        "9b0b155e6075b4aef742535afd1719ee6a88c1a3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jan 08 15:57:54 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Jan 08 15:57:54 2010 -0800"
      },
      "message": "Fix duplicate constant in layoutbridge.\n"
    },
    {
      "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": "f80a762400a5500ec926b6a98051fec95558ad9d",
      "tree": "af05ce29bd9fe1220ecec388bc0a218fa7df3180",
      "parents": [
        "1ee5ceb92d938fc544df2cf1dcb4f4ddf726cfb9",
        "de0ef181516ce13d292eafb741fa6c6b9dc1cb1c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@google.com",
        "time": "Thu Jan 07 09:22:16 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 07 09:22:16 2010 -0800"
      },
      "message": "am de0ef181: am ce60d4b2: Merge \"Move Layoutlib API library to sdk.git\" into eclair\n\nMerge commit \u0027de0ef181516ce13d292eafb741fa6c6b9dc1cb1c\u0027\n\n* commit \u0027de0ef181516ce13d292eafb741fa6c6b9dc1cb1c\u0027:\n  Move Layoutlib API library to sdk.git\n"
    },
    {
      "commit": "82935938fa89e6acb1181eb621cb08828cd423c8",
      "tree": "0ec6a41fe7fc3adc20ab534820e88ab647a64927",
      "parents": [
        "c20467f94afd2ac173dcb1d27f2a8fb91816edb0"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 07 08:30:16 2010 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jan 07 08:57:32 2010 -0800"
      },
      "message": "Move Layoutlib API library to sdk.git\n\nChange-Id: I53f1c5d52447b6215ae7a6f2f1f82d0879e952ca\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": "a8ba3114e801282cf375c3ea2332164a52cb3813",
      "tree": "ebceb8fb644efd11a43bf7e1526186378bc9d0d4",
      "parents": [
        "b9b45a5e26ed020a39a507a173d9f29e336cf989"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 11 14:20:54 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Dec 11 14:20:54 2009 -0800"
      },
      "message": "Layoutlib: Add a constant for default density value.\n\nChange-Id: I6dc8a694bbdae2385d4e877ea04a6b4325a5719e\n"
    },
    {
      "commit": "9ddb7df88a62a131519264f75f5d6616ee11b6e6",
      "tree": "1c5d3106848a10cca9c68e164eaec788c2c7c14e",
      "parents": [
        "69e0b6646f109d17a5cff4b8c32582e3d3a3f544"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 16 17:59:32 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 16 17:59:32 2009 -0800"
      },
      "message": "Fix build.\n\nChange-Id: I70c86738e2894d7f8c51034aea8fda1585a6fcb3\n"
    },
    {
      "commit": "0da2676ea841ff85b373c2960dd2c497dcf4e441",
      "tree": "0837d28b366841085dcaba8074ef8f79dc47ccf3",
      "parents": [
        "ae2104371d84570011dbb8c1621832a132ed4584"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Nov 15 16:13:01 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Nov 15 16:15:33 2009 -0800"
      },
      "message": "Minor fix for the parent style computation in the layoutlib.\n\nThis is an SDK change only.\n\nChange-Id: Iae493184ae76b2e21200dd6bb48795ff74f79ab3\n"
    },
    {
      "commit": "76410f1eb316763018b7480d9cd8dc3684803576",
      "tree": "a770dc9ce917cc36307e6ed9cc20961ea2d498cd",
      "parents": [
        "27d6e65b71f515deafbd93d5aa98732898c34ddf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 13 14:10:20 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Nov 13 14:10:20 2009 -0800"
      },
      "message": "Properly implement Paint.breakText for layoutlib.\n\nBUG 2260400\n\nChange-Id: I7082e366b65da0b5de2a6dbb547f66e05e0b78e0\n"
    },
    {
      "commit": "bf6956b1d95442e9d9c483894d578fe6b7044cbb",
      "tree": "dd8e921d31d3182c90eba295bea96848cb221e06",
      "parents": [
        "e6ab011b8b8aa6c461e64cabb9b25d890d68edb1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 09 15:21:13 2009 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 09 17:39:33 2009 -0800"
      },
      "message": "Add a way for wallpapers to know the delta between virtual screens.\n"
    },
    {
      "commit": "9a4593ffcce99e9f7b89b165911c2a870c27cc45",
      "tree": "36b4e3b3c613fc4e2e30f980049a879b444ae4b6",
      "parents": [
        "3f857b78fc68e5d700139bdc6078c5333b62a9bc"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sun Nov 08 15:15:01 2009 -0800"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Nov 09 14:55:08 2009 -0800"
      },
      "message": "Support for fallback fonts in layoutlib.\n\nBUG 2041229\n\nChange-Id: Ib12bcb7f6d8f0e4c2b51871f8129ecf51fa938ee\n"
    },
    {
      "commit": "a86f28494c526ef14c736a977d746b3e5d9ab49e",
      "tree": "5f4f30f6598ce63a6b492bc9bf93b6d684a0a059",
      "parents": [
        "65e4f6188bfc8ec3c9d1c8476953cd1beb7922bc"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Nov 03 10:31:31 2009 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Tue Nov 03 10:31:31 2009 -0800"
      },
      "message": "Fix layoutlib tests so they pas when run from Eclipse workbench.\n\nBug 2222616\n"
    },
    {
      "commit": "7580493b014a2c7ea883cd291255798dc72ebbff",
      "tree": "22bffa58ac973192ea8b06ea747e1582526c1249",
      "parents": [
        "86dc4d312216be0b4c2847a1e79d94efaf4b9559"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Oct 20 20:15:20 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 22 20:10:53 2009 -0700"
      },
      "message": "Implement feature #2117336: Create event communication APIs for live wallpaper\n\nNote: currently only implements an async version (no result), and not yet\nactually tested.\n\nChange-Id: Id47ed045a4b0eb309ea8c58daf41a0e03eff1d3a\n"
    },
    {
      "commit": "5f9d4bae03b2dfa9c1e43a6e01cacaa5a5326690",
      "tree": "b9283cdd9d1b225f404d034cfacffe313d239c64",
      "parents": [
        "0a9d46b7e741ccf7272bb69a4eef3c1f2adc91b7"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 12:04:03 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 15:14:09 2009 -0700"
      },
      "message": "layout lib tests cleanup\n\n- Move test files to their own package for easy binary inclusion\n  in adt-test\n- fix some tests and remove obsolete ones.\n\nChange-Id: I5b967f29074fdad74073f9b37d903eabe8dc29e6\n"
    },
    {
      "commit": "0a9d46b7e741ccf7272bb69a4eef3c1f2adc91b7",
      "tree": "8eb811aae9d4ca1c34f882d56af66de97203461e",
      "parents": [
        "92b5caa4e21d48db6efeddba532d1546c6e686b1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 09:58:08 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Oct 06 15:13:58 2009 -0700"
      },
      "message": "Add a test to make sure the replaced classes in layoutlib are correct.\n\nChange-Id: I9641635153c12e2c0a23583f7d094767533fc683\n"
    },
    {
      "commit": "9f751ab3fc4fc4af9dc3ec226839bbf9a1b5305e",
      "tree": "a33373df8cf3ea3226cccf539629cf2ed97f6d94",
      "parents": [
        "8c739671d262c74c5743bf249180b1ba58bef4da"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 18:49:08 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 19:10:04 2009 -0700"
      },
      "message": "Reimplement all the method of Paint for layoutlib\n\nThere were a few missing methods that should have been reimplmented\n(because they were native).\n\nOthers have been added just to be sure so that we can test whether methods\nare missing or not (test coming soon).\n\nChange-Id: I24895c353e38545e9b1abe28d41224fdc78cadb1\n"
    },
    {
      "commit": "8c739671d262c74c5743bf249180b1ba58bef4da",
      "tree": "f623fc522ce9d66316255628c399c96381d65433",
      "parents": [
        "ac7391de5f32cf051678886f0d393fe0431dc6d1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 15:28:33 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 15:36:53 2009 -0700"
      },
      "message": "Fix the layoutlib test to run from adt-tests.\n\nChange-Id: I34f513429593dce9f781ed8a08c4664a5d6f9aa8\n"
    },
    {
      "commit": "ac7391de5f32cf051678886f0d393fe0431dc6d1",
      "tree": "679f84c70031002c28be99fd7e71d1579a8fcd89",
      "parents": [
        "f7ae77cd67f1a3993b8e56c1af4720a7adf4e69d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 14:12:04 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Oct 05 14:16:09 2009 -0700"
      },
      "message": "Refactor class/method names used by layoutlib_create.\n\nInformation about classes and methods that are replaced, renamed, removed\ninto CreateInfo, so that it can be used by the tests.\n\nChange-Id: I8874a40503249416621aa90b2ca02dcaf30ecd57\n"
    },
    {
      "commit": "f18ccc13a663fe385ecdfbdfd55ef503d48833f5",
      "tree": "32a2eb1f0fbd1420eea722e150c8fd1cfda9bbfe",
      "parents": [
        "41c64ba73cf4dbc14beeaaa618afdd908da8b0cb"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 28 12:57:42 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 28 12:59:33 2009 -0700"
      },
      "message": "Fix a warning output.\n\nThis was introduced by the dpi work.\n\nChange-Id: I7c7b1596085f70532b8279139c287a2a58f57046\n"
    },
    {
      "commit": "ffa424800d0338b8b894aef2ea1e3e3344cbda7a",
      "tree": "93a2e14b145042fe8fdd9fccef26303c55341272",
      "parents": [
        "f11cc96ee837f8b0d530f3a5dd78ffc358727411"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 22:20:11 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 23:17:07 2009 -0700"
      },
      "message": "Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off\n\nLot of infrastructure for more things to go away when \"clear system dialogs\"\nhappens, and now do this when we turn on the lock screen.\n\nChange-Id: I567130296fe47ce82df065ed58ef21b37416ceaf\n"
    },
    {
      "commit": "56a92e3ba0d7da310b4c6e09f54dee10f1f395bb",
      "tree": "bba9ee0477759921a28f95fc4bc29191c1bc5335",
      "parents": [
        "311ed0191d6423e41b1cf5137a38e53504494818"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 23 10:39:50 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 23 16:38:57 2009 -0700"
      },
      "message": "Add density support to layoutlib so that bitmap are scaled if needed.\n\nChange-Id: I00204bb136ccaa44deeafbe0ea8746fea9903341\n"
    },
    {
      "commit": "de0dfb7b65a02d4dd74c271b558adee0973fc267",
      "tree": "c2e701a78f831978378ff3a9c219209aae3e4fc2",
      "parents": [
        "5dd7c726f45fd7b7ab473471dc504c00012a6856"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 14:09:34 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 23 14:26:02 2009 -0700"
      },
      "message": "Fix issue #2125720 Weather Forecast Widget - graphics do not scale\n\nI forgot to add the new density field to the Bitmaps\u0027 parcelable data.\n\nChange-Id: I77cf3e93e356297e0caed6fc71b62b5cd8f79124\n"
    },
    {
      "commit": "39cd36ec1fed5f370983dbd8933acc5e779003c6",
      "tree": "e63b1a3b9c248f3eca65d26a60dc6fb541793fef",
      "parents": [
        "32f76f34075450c03c68fc1f65e395d5eddd6d51"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 21:00:12 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 21:00:12 2009 -0700"
      },
      "message": "Add density value to density enum.\n\nThis is going to be used as constant to both ADT classes and the\nlayoutlib.\n\nChange-Id: Id9befe83c5c2be3fbc5f045c7ed21aa8ee0108cc\n"
    },
    {
      "commit": "ccb630df4bb32ef93c55ad32859849a08b840288",
      "tree": "95fda8bb19deb7f6eb41291f9eeb9e2b6fff4478",
      "parents": [
        "63147705bc2893d6ad43270e04beb9ee01e2ad53"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 18:30:22 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 22 18:30:22 2009 -0700"
      },
      "message": "Add a new IResourceValue that knows about the density.\n\nThis will allow the layoutlib to resize bitmaps that are\nnot in the native density of the rendering.\n\nChange-Id: If9dca6d51cd93a2083c96fce3ac64335ec6ad801\n"
    },
    {
      "commit": "efa199f016985b0a9d0471e42c803ee9f7941f0e",
      "tree": "0320870eeb2ca842a3729eb0f72220037ea89f82",
      "parents": [
        "338c48554f35dbee3faa4e39525a972f20a7c32d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:03:15 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Sep 19 12:05:25 2009 -0700"
      },
      "message": "Add API to send an ordered sticky broadcast.\n\nChange-Id: Ida7081204e226db0cd07ff618c08e308a909ec0c\n"
    },
    {
      "commit": "fa82f22f1d8c4c828bdf9b670006be4f4fec772e",
      "tree": "586dbd1bf9cbefe26cfecd6cf853b78eb6a4fb64",
      "parents": [
        "9b64ef133c1eb24c8d00aa7e46ec86c544af5fe2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 15:14:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 17 18:01:35 2009 -0700"
      },
      "message": "Fix issue #2093608: Calendar widget takes a few seconds to launch\n\nAvert your eyes!\n\nThe key change here is that RemoteViews can now call a Context API to\nstart its pending intent, which inside of the activity manager we can\nuse to determine to cancel the timeout delay for external entities\nto disrupt the home screen.\n\nChange-Id: If097cf7478cbed7a3c04a304050bd7fd5703d197\n"
    },
    {
      "commit": "d023f9a9a90705410250cd86bc6446c738423a99",
      "tree": "7ed7ccf3847d48af6e692813cdcc5e5838a53c8b",
      "parents": [
        "aa931bcb0acb93ce760f4e5d27153fb1c6d33a10",
        "19382ac1a4e4e7c23a1346d299368763f149de9c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 18:45:42 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 18:45:42 2009 -0400"
      },
      "message": "Merge change 24829 into eclair\n\n* changes:\n  Some optizations to wallpaper drawing/scrolling.\n"
    },
    {
      "commit": "19382ac1a4e4e7c23a1346d299368763f149de9c",
      "tree": "9165f1b94f1bd5e9966729b1047d03a733570867",
      "parents": [
        "714ec1360cde8b1cbf6e6b8572256e4100f11560"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 11 21:13:37 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 14 15:29:44 2009 -0700"
      },
      "message": "Some optizations to wallpaper drawing/scrolling.\n\nFirst, fix some issues with the final wallpaper bitmap\nwe use: ensure it is always 16bpp, and make sure dithering\nof its bitmap is turned off.   We take of dithering\nwhen loading, to make sure we don\u0027t use it when drawing.\n\nAlso add new APIs to return the wallpaper with the equivalent\nof Launcher\u0027s old FastBitmapDrawable.  As doing this, also load\nthe default wallpaper the same way as custom ones, taking care to\nresize it as needed at load time.\n\nFinally implement a mechanism for the window manager to wait\nfor the wallpaper to redraw at its new position before returning\nfrom the application\u0027s call to change the offset.  This ensures\nthat the wallpaper better tracks the application.  Note that there\nis a timeout in this wait that is relatively short, and if it\nexpires we will run for a while without waiting.\n\nChange-Id: Ife449437746da85958bd447e0a6cf3d2223b398c\n"
    },
    {
      "commit": "7a79628cd9b5149a7b38b90bf6cef9ea67cfbc21",
      "tree": "55e5a2a501a46f3fee9da2471ecb1963b4b229d0",
      "parents": [
        "466dbbfd4595d714127a4bc92dd9235807b88be6"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Sep 14 11:17:49 2009 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Mon Sep 14 11:17:49 2009 -0700"
      },
      "message": "Fix some LayoutBridge javadoc.\n\nChange-Id: I255d1d58d3537403ac9a8a5c7adece30ae989ce0\n"
    },
    {
      "commit": "ad013fae0db2864ad13631a44d26bacafc36f861",
      "tree": "1de6842cd122e5786a396331b53b1954ee4f0b17",
      "parents": [
        "3be63c09309b21c01b535271625d4c39045690e5"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 21 12:55:59 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 21 12:55:59 2009 -0700"
      },
      "message": "Replace fullHeight support by fullSize (height and width)\n\nThis is useful for linearlayout in horizontal mode.\n"
    },
    {
      "commit": "d604ad1ad442790af53847d24060ecb097106d26",
      "tree": "0b75fae936dcbb683367b50ab962838c9f0960d5",
      "parents": [
        "58b6d1be26bd015b0da9336e82a83fd2cf303d2a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 20 14:29:56 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 20 15:15:35 2009 -0700"
      },
      "message": "Support full length rendering.\n\nNew rendering method in ILayoutBridge to specify whether the rendering\nheight should be the specified height or if it should be the height\nrequired by the layout (specified height is always the minimum).\n"
    },
    {
      "commit": "f369b7199f537bba7d8fced8b0f826249d19fdf5",
      "tree": "a543928728c1ab8d9a71db8496d19e113aa8637e",
      "parents": [
        "d97bcef6e4d2a4bacf335f412488c72e38d590e6",
        "ad4bc607bd236dd9b06df9cf89dc5e14541ff66c"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 13:42:09 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 13:42:09 2009 -0700"
      },
      "message": "am ad4bc607: Merge change 21772 into donut\n\nMerge commit \u0027ad4bc607bd236dd9b06df9cf89dc5e14541ff66c\u0027 into eclair\n\n* commit \u0027ad4bc607bd236dd9b06df9cf89dc5e14541ff66c\u0027:\n  Fix Resources#opeRawResource(int, TypedValue) in layoutlib.\n"
    },
    {
      "commit": "72e4bcd3d0da90f6c9550c93e58c12b2903a5ab8",
      "tree": "bffd42883e1f457bcd8d502aa6e4f64538211b62",
      "parents": [
        "238f8fe645271a0ef891553e1c8c3c964c3c876d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 13:35:55 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 13:35:55 2009 -0700"
      },
      "message": "Fix Resources#opeRawResource(int, TypedValue) in layoutlib.\n"
    },
    {
      "commit": "f7064e18fbafa6091a7e5f604978331135bcf4b6",
      "tree": "41750f95388e320185a6314582b5b1522d0397ac",
      "parents": [
        "ef99e248fe5f556bbd216d3ac669391b83ab5ebb",
        "ace6a5cfc0d14a909b4b95bdfe16609188125baf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 11:01:19 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 11:01:19 2009 -0700"
      },
      "message": "am ace6a5cf: Merge change 21408 into donut\n\nMerge commit \u0027ace6a5cfc0d14a909b4b95bdfe16609188125baf\u0027 into eclair\n\n* commit \u0027ace6a5cfc0d14a909b4b95bdfe16609188125baf\u0027:\n  Improved drawing/matrix support in layoutlib\n"
    },
    {
      "commit": "1a8c1599de630ae4199b71cb3eca75d7db9c40d6",
      "tree": "5508bab41808c7f7ef40df92d34feb7e3dbd79eb",
      "parents": [
        "0deb41abc68ff05b6c2e06175982f9d22a5abd92",
        "c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Aug 18 08:44:59 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 08:44:59 2009 -0700"
      },
      "message": "am c1c432f5: Merge change 21241 into donut\n\nMerge commit \u0027c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839\u0027 into eclair\n\n* commit \u0027c1c432f57b782ed9d8d65be7ea1bee1e1d7d7839\u0027:\n  Layoutlib now uses the dimen status_bar_height instead of hard-coded value\n"
    },
    {
      "commit": "8df8b2b405c60cacf7a66c4e2ca078dd3d7ec7bd",
      "tree": "302a410dcd7af7bbf61f435cd96dd8b7384def2e",
      "parents": [
        "948ee251276e1ce7f5c5517b24bf88a75e99f160"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 15:15:18 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 17 21:23:05 2009 -0700"
      },
      "message": "Allow wallpapers to get touch events.\n"
    },
    {
      "commit": "2473ef5654b2a4b65132a35677c6ddfd481aab2c",
      "tree": "98ff9700a5a8854c139b7b27413c2208d21c7b34",
      "parents": [
        "75c498426a17b47d445711bb9e36794b05876a56"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Aug 14 20:47:50 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Aug 17 14:17:05 2009 -0700"
      },
      "message": "Improved drawing/matrix support in layoutlib\n\n- Make the custom Canvas actually replace the original one so that it\u0027s used\n  even by parts of the framework that allocate their own temp Canvas object.\n- Better support for Matrix: added support for mapPoint() and mapRect(), and invert()\n- Implemented drawBitmap() with a Matrix, and made the paint object not NPE when null.\n"
    },
    {
      "commit": "09701011bc489f117d88f2c0ed406120eb4562ab",
      "tree": "ece832afd6f93560075425efd389668a8ce5c949",
      "parents": [
        "ba52b3e08b33592457242944f7a89691a5b94880"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 21:48:03 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 21:48:03 2009 -0700"
      },
      "message": "Layoutlib now uses the dimen status_bar_height instead of hard-coded value\n\nBUG: 2053956\n"
    },
    {
      "commit": "1d47a5142682c1f9f9a04fdbe1ec863fd5550c30",
      "tree": "3ec905ee0c52307804984f2ebf1e55c01341ba91",
      "parents": [
        "314e0226a26cd79b5080dcb76d566fa6f83ff695",
        "94ff3f1f08805b68c5524b39024968aebcdc83ee"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 18:43:54 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 13 18:43:54 2009 -0700"
      },
      "message": "am 94ff3f1f: Merge change 21063 into donut\n\nMerge commit \u002794ff3f1f08805b68c5524b39024968aebcdc83ee\u0027 into eclair\n\n* commit \u002794ff3f1f08805b68c5524b39024968aebcdc83ee\u0027:\n  Fix handling of reference XML file in layout files\n"
    },
    {
      "commit": "314e0226a26cd79b5080dcb76d566fa6f83ff695",
      "tree": "9a3ee9274543eb2449825fbd2112afa4c2614434",
      "parents": [
        "f233915016a9053c23af6e4bceb319e7140f71bc",
        "e1b63d224a0a68191f087186c470cde317e3fa76"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 18:43:46 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 13 18:43:46 2009 -0700"
      },
      "message": "am e1b63d22: Merge change 21033 into donut\n\nMerge commit \u0027e1b63d224a0a68191f087186c470cde317e3fa76\u0027 into eclair\n\n* commit \u0027e1b63d224a0a68191f087186c470cde317e3fa76\u0027:\n  Mock ServiceManager and AccesibilityManager to make the view renders in ADT\n"
    },
    {
      "commit": "08e2a4b56f23ce02f17300438f76ccc1f663f183",
      "tree": "4a455cba60cf1df27997707331c9e16bd456ce7e",
      "parents": [
        "7953e7d89b1d4d7297176fbb6aeea882577df8e6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 21:47:11 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Aug 13 11:23:40 2009 -0700"
      },
      "message": "Fix handling of reference XML file in layout files\n\nThis allows layout that references animation to properly load\nin the layout editor in ADT\n"
    },
    {
      "commit": "385df699a6d602cab501092821a79cc6ab3a390e",
      "tree": "06e4c6f8f129c9350a8798d9e41f7384c8b5f4f5",
      "parents": [
        "25660ec2c8175559d86d50bc2bfdef29589d0813"
      ],
      "author": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Aug 13 11:59:57 2009 +0100"
      },
      "committer": {
        "name": "Andrei Popescu",
        "email": "andreip@google.com",
        "time": "Thu Aug 13 13:07:48 2009 +0100"
      },
      "message": "remove Gears\n"
    },
    {
      "commit": "7953e7d89b1d4d7297176fbb6aeea882577df8e6",
      "tree": "f7a4e9a4338fa276ec827e5fc7f519ae16877957",
      "parents": [
        "fe6e733a01b1ab8a6c7b651c65bf7abeb97f9525"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 17:20:18 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 12 17:20:18 2009 -0700"
      },
      "message": "Mock ServiceManager and AccesibilityManager to make the view renders in ADT\n\nBUG: 2049348\n"
    },
    {
      "commit": "72c82ab9923025a91bbabb32e56bfea27bfd083b",
      "tree": "2a97f8a85bc5f23c13e3f7a6476533bec88c81a7",
      "parents": [
        "a5f743f1fc7c5037ee7ad4ab611115b6d44af5b8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 11 21:13:54 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 12 14:41:29 2009 -0700"
      },
      "message": "Report wallpaper offset to the wallpaper, use this in the image wallpaper.\n\nWallpapers can now be just the size of the screen, and get told when their\nscroll position should change to do the updating on their own.\n"
    },
    {
      "commit": "c8a0a75e1c61d1ab24bd46a8243041c107e738ac",
      "tree": "2fb0685253fe71e77f91e0ca7259c83a2b91cae8",
      "parents": [
        "2ce89adde442fac551413362ea442caa088c25e4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 10 23:05:49 2009 -0700"
      },
      "committer": {
        "name": "Cary Clark",
        "email": "cary@android.com",
        "time": "Tue Aug 11 10:03:16 2009 -0400"
      },
      "message": "Implement support for scrolling a wallpaper.\n\nThis currently only works for a wallpaper that is larger than the\nscreen.  Set the scroll position with the new wallpaper API.  Right\nnow only does jump scrolls.\n"
    },
    {
      "commit": "eba337ad09ba93b31f4e9ec8f99be3ae2811bf89",
      "tree": "4901a790301de9d194aeeb55dc79e435fe375e04",
      "parents": [
        "98a44df4b4cc8cd28276ad888a7e17f81353ae44"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 22 15:44:52 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 22 15:44:52 2009 -0700"
      },
      "message": "Reimplement TypedArray.getLayoutDimension(int, int) for the layout bridge.\n"
    },
    {
      "commit": "a53b828635fce8b6b2d3e3377d74d72070056623",
      "tree": "42f4ba9bbf7d8656a4761d6fe5dcd4976cf19369",
      "parents": [
        "09a903ab5b8d940605783ae4ee591c0f090a31d1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 11:13:48 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 17 16:59:08 2009 -0700"
      },
      "message": "Add \"nodpi\" density, and expose a bunch of density-related APIs.\n\nAlso update the DpiTest app to use nodpi images, and try to have a mode\nwhere it turns off compatibility though it\u0027s not quite working.\n"
    },
    {
      "commit": "723738cfaec3dd7b0fe152c872c41bebf94074c4",
      "tree": "421ddeed166d0a4586c9460c4de581307bf08d44",
      "parents": [
        "77cb40a0b088b02357fbc7d5fad24886d607f0da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 25 19:48:04 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 26 13:37:05 2009 -0700"
      },
      "message": "Expand support for different screen sizes.\n\nApplications can now declare that they support small, normal, or\nlarge screens.  Resource selection can also be done based on these\nsizes.  By default, pre-Donut apps are false for small and large,\nand Donut or later apps are assumed to support all sizes.  In either\ncase they can use \u003csupports-screens\u003e in their manifest to declare\nwhat they actually support.\n"
    },
    {
      "commit": "63e7155c7d1d0c3f0027400aa09e9a45f648a80d",
      "tree": "1f3bf9743613460533de9df78f2c8c5cd65cf070",
      "parents": [
        "5502f04c1dcf2b1918858bacb99fb0480a711707",
        "5c1e00b14d2ef10ec76abf3e951fa8003a67f558"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "message": "Merge change 4696 into donut\n\n* changes:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n"
    },
    {
      "commit": "5c1e00b14d2ef10ec76abf3e951fa8003a67f558",
      "tree": "fa723a6f96f5b977dfdfdc08b5b8aab98c20d500",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "message": "Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n\n- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.\n  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.\n\n- Change the API for resize compatibility mode to be a bit in the flags field, instead\n  of a separate boolean.\n\n- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is\n  only enabled for \"eng\" builds.  When in this mode, the activity manager will make\n  sure that a dexopt has been done before loading an .apk into a process, and will\n  try to avoid displaying ANRs if they are due to the dexopt causing some operation\n  to take longer than it normally would (though I make no guarantees about this\n  totally working).\n\n- Add API to Context to get the ApplicationInfo for its package, for easy access to\n  things like targetSdkVersion.\n"
    },
    {
      "commit": "83189c985a0e617ba7856343ea8b7080c37396a7",
      "tree": "742d1fe9128b3e2f9c8a49c571055fcb03ff5302",
      "parents": [
        "5553f1528e94377ae5adf423e91331f5eb57dd44"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jun 17 17:20:00 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jun 18 11:56:36 2009 -0700"
      },
      "message": "Connect TabHost/TabWidget/FrameLayout in the layout editor.\n\nBasically this does automatically what the developer has to do in his/her\nactivity so that the TabHost gets tabs that connects the TabWidgets and the\ncontent of the FrameLayout.\n"
    },
    {
      "commit": "23ecae3bbb60c5af940f3a22170d75eb6ac05b69",
      "tree": "1138102ba856743cffd931121409a71c2bae37c3",
      "parents": [
        "0b77453076a22569f24318d194b378b68f11a63e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 10 17:07:15 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 11 11:29:57 2009 -0700"
      },
      "message": "Fix SharedPrefsBackupHelper so it doesn\u0027t hard code the paths to the files.\n\nThis took quite a bit of refactoring.\n"
    },
    {
      "commit": "1741ec39a90b95fff215a005b6b3941d7c1b4735",
      "tree": "51e421f6225e238f57afd25de495974a7d2b7680",
      "parents": [
        "7ebda6f110708bdb704f8700a6b3473249b12baf"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 05 12:55:14 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Jun 05 12:58:29 2009 -0700"
      },
      "message": "Fix external bug 2875: Matrix#mValues[7] assigned twice in place of mValues[8]\n"
    },
    {
      "commit": "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a",
      "tree": "6ddc6a8eb0158cba32cc6139b04c6b6eb9f0ba5f",
      "parents": [
        "eaeb663bcd7a82b654954b42663232cbd7bef7e7"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 11:19:12 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 16:28:10 2009 -0700"
      },
      "message": "* Moved supports-density tag under manifest\n* Refactored Compatibility code\n  * Added CompatibilityInfo class\n  * Removed getApplicationScale from Context\n  * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context\n* Expandable support\n  * Added expandable tag under manifest\n  * Old application w/o expandable is given the default screen size  ([320, 480] x density).\n  * The non-expandable window is centered.\n"
    }
  ],
  "next": "231cc608d06ffc31c24bf8aa8c8275bdd2636581"
}
