)]}'
{
  "log": [
    {
      "commit": "a639b311e93ad14d9ee5c2b2c215ed2d86c32d2a",
      "tree": "8fc3e0698132d5fdba03726a1468fefa18dd2a02",
      "parents": [
        "64ab8fcd6f2011c0d185f2973b9615f155f6d239"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 10 12:37:54 2012 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 11 16:02:08 2012 -0700"
      },
      "message": "Create telephony-common and mms-common\n\nThese have been created to reduce the size and complexity\nof frameworks/base.\n\nmms-common was created by moving all of\n  frameworks/base/core/java/com/google/android/mms\nto:\n   frameworks/opt/mms\n\ntelephony-common was created by moving some of\n   frameworks/base/telephony\nto:\n   frameworks/opt/telephony\n\nChange-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad\n"
    },
    {
      "commit": "ac14351e16e1258f1cb54e2bf772b8be004eb2b8",
      "tree": "55c22fe8e19d35764f00a6ffad899e4fd2c4ccd0",
      "parents": [
        "030711c39b6093024d784c1c3d7566bd5a3e3489"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 18:57:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 19:33:11 2012 -0700"
      },
      "message": "Move some APIs from window manager to input manager.\n\nSimplified input injection API down to just one call.\n\nRemoved all input state reading API.  It was only used by the\nwindow manager policy and required a permission that applications\ncould not obtain.  READ_INPUT_STATE is now unused and deprecated.\n\nChange-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00\n"
    },
    {
      "commit": "f87d19621dc2a30232bba1f51862a0b671eb9729",
      "tree": "8bf53cb17770100b6fd1c1f31f1b27eb7121ce3e",
      "parents": [
        "5b86de1e6b8f597ab2444de0f2274546321f1810"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 04 12:48:24 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 04 16:00:45 2012 -0700"
      },
      "message": "Clean up status bar, system bar, navigation bar management.\n\nThe status bar and navigation bar are two completely separate\nelements, with their own semantics.  The system bar now classifies\nitself as a navigation bar, since that is really how it behaves.\n\nThis required rewriting the HDMI resizing code, so that it is\nall done by PhoneWindowManager since that is what is responsible\nfor the size of the navigation bar (and thus now system bar).  This\nactually gets rid of a fair amount of code, and means we can also\ndo the same thing for a pure navigation bar.\n\nLikewise the system bar now has the navigation bar ability to be\nhidden when requested by system UI flags.  To get the behavior\nwe want on Xoom, we only allow the nav bar to be hidden when it\nwill help provide a better aspect ratio for showing widescreen\nvideos.\n\nFinally the nav/system bar now animates when hidden and shown.\n\nChange-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a\n"
    },
    {
      "commit": "8078d8c8a282ca81344febe7256f63b1e805e3aa",
      "tree": "6bfb8ab0a389c2ae344088017bd0ceee1e913660",
      "parents": [
        "3c4da3cad04ca878a4a37fcca3f3e2ff51d03fcb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 20 11:11:26 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 23 14:13:13 2012 -0700"
      },
      "message": "Add new thumbnail animation.\n\nUse it for recent tasks switching.\n\nNot perfect yet by far, but something.\n\nAlso fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D\n\nChange-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2\n"
    },
    {
      "commit": "3b2faf68e5a66ac67b28d6f79d4ba213b6c0d09c",
      "tree": "87a6afaf907a5ea0d64a67cedae193b48d19961b",
      "parents": [
        "2447871b99e6b10a68985f037420eb77cabe4d29"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 05 19:08:31 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 05 19:08:31 2011 -0700"
      },
      "message": "Fix build.\n\nChange-Id: I01dbb8747f81c83d86e089762b2d34d8bba2bffd\n"
    },
    {
      "commit": "01a98ddbdfbaf1f0d2bc602537e6e314364902a3",
      "tree": "ce904db3ee0772e0e2a35882a6cf86c7b9fcd84e",
      "parents": [
        "04ef5b8dd7262ee90b56df9c992f103695d0a21c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 20 15:08:29 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 21 19:26:15 2011 -0700"
      },
      "message": "Handle orientation changes more systematically.\nBug: 4981385\n\nSimplify the orientation changing code path in the\nWindowManager.  Instead of the policy calling setRotation()\nwhen the sensor determined orientation changes, it calls\nupdateRotation(), which figures everything out.  For the most\npart, the rotation actually passed to setRotation() was\nmore or less ignored and just added confusion, particularly\nwhen handling deferred orientation changes.\n\nEnsure that 180 degree rotations are disallowed even when\nthe application specifies SCREEN_ORIENTATION_SENSOR_*.\nThese rotations are only enabled when docked upside-down for\nsome reason or when the application specifies\nSCREEN_ORIENTATION_FULL_SENSOR.\n\nEnsure that special modes like HDMI connected, lid switch,\ndock and rotation lock all cause the sensor to be ignored\neven when the application asks for sensor-based orientation\nchanges.  The sensor is not relevant in these modes because\nsome external factor (or the user) is determining the\npreferred rotation.\n\nCurrently, applications can still override the preferred\nrotation even when there are special modes in play that\nmight say otherwise.  We could tweak this so that some\nspecial modes trump application choices completely\n(resulting in a letter-boxed application, perhaps).\nI tested this sort of tweak (not included in the patch)\nand it seems to work fine, including transitions between\napplications with varying orientation.\n\nDelete dead code related to animFlags.\n\nHandle pausing/resuming orientation changes more precisely.\nEnsure that a deferred orientation change is performed when\na drag completes, even if endDragLw() is not called because the\ndrag was aborted before the drop happened.  We pause\nthe orientation change in register() and resume in unregister()\nbecause those methods appear to always be called as needed.\n\nChange-Id: If0a31de3d057251e581fdee64819f2b19e676e9a\n"
    },
    {
      "commit": "2f0b17573d4324832f7a20402a3d2b5920bc4866",
      "tree": "eb85b9344237741f21f4989950677692b3bdbbda",
      "parents": [
        "8ede62745faa02265f927941d1195b6c1bf05ebb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 17:59:49 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 31 18:04:14 2011 -0700"
      },
      "message": "Fix issue #4502672: Wrong xml resources used for homescreen widgets.\n\nThere was a race in the system process between applying the initial\nconfiguration and executing code in higher-level system services\nlike the app widget service that relies on the config.  For some\nreason it starting showing up more after my code changes; it should\nnow be completely fixed.\n\nAlso fix the activity starting window to run in compatibility mode\nif its application is going to be in compatibility mode.\n\nAnd some various cleanup and small fixes.\n\nChange-Id: I0566933bf1bbb4259c1d99a60c0a3c19af1542e5\n"
    },
    {
      "commit": "7da6ac33a9de82be52e22846d5f22d502452854c",
      "tree": "2702555b7795977ce55732015b9745e7bb031b37",
      "parents": [
        "bca1c4ffad8c28fc142eddcd33095dfa2ebfb0a0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 09 19:22:04 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 09 19:22:04 2010 -0800"
      },
      "message": "Fix issue #3272051: Use backward transition when going backwards.\n\nAlso know as:\n\nIssue #3272051 Contacts edit view: Tapping the in-app back button\nresults in a forward transition\n\nYeah more complexity in deciding which animation to use.\n\nAlso reduce complexity in deciding which app\u0027s animation set to use,\nto balance things out (and make it have less stupid behavior).\n\nChange-Id: I78c6c5c5249a96206f7e03ce587c1dcb9a7dc14f\n"
    },
    {
      "commit": "621e17de87f18003aba2dedb719a2941020a7902",
      "tree": "978b402ced5bd03d3b4f6eaa9fbaaf186427823c",
      "parents": [
        "703c5f39c58168829e8d8f7ed7b5aea3f4fb600b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 22 15:59:56 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 22 18:35:55 2010 -0800"
      },
      "message": "Implement issue #3221502: New APIs to support new back stack / task navigation\n\nWhat this adds:\n\n- A new Intent activity flag to completely replace an existing task.\n- A new Intent activity flag to bring the current home task up behind\n  a new task being started/brought to the foreground.\n- New versions of startActivity() that take an array of Intents to be\n  started, allowing applications to start a task in a specific state.\n- A public moveTaskToFront() method on ActivityManager, with a new flag\n  that allows the caller to have the task moved to the front with the\n  current home task immediately behind it.\n\nChange-Id: Ie8028d09acffb5349d98043c67676daba09f75c8\n"
    },
    {
      "commit": "7eec10e6c99c30d5ee061fec08ac89ad4254ac32",
      "tree": "b196fb70709f29c6f6e60423578162f5dd189e63",
      "parents": [
        "7c2ae6570321575ad74a25bdc72bea1ec6558660"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 12 18:03:47 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Nov 14 14:23:42 2010 -0800"
      },
      "message": "Get rid of the extended themes.\n\nWe now decide whether to use a bitmap background based on whether the\nwindow\u0027s drawing is hardware accelerated.  To do this, there is a new\n\"state_accelerated\" that state list drawables can be parameterized on,\nand the standard window background uses this to select a solid color\nor bitmap drawable as appropriate.\n\nIntroduces a little hackery to have wm preview windows pretend like\nthey are hardware accelerated even if they aren\u0027t, so the preview looks\ncloser to the actual app.\n\nAlso Add a DialogWhenLarge variation for the light theme.\n\nChange-Id: I215a79d5df65ba3eed52ab363cade9d8218a6588\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": "edc5189c33de03f3e2f5f73edc0e007992b933c9",
      "tree": "475cb09325a6ec4e1627a4c57ad1e5a5b4cc250b",
      "parents": [
        "43866e0c48bb0effe8805afd62b253e50ca7d591"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 13:51:16 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 07 15:00:37 2010 -0800"
      },
      "message": "change remaining frameworks/base Gservices to Secure settings\n\nChange-Id: I61bdb05a2526523700c2833154d5a4133881ef10\n"
    },
    {
      "commit": "3a32213c4029a03fe39486f3d6ebd0ea18928ee1",
      "tree": "261ab976911438a818b190771e49cd649d72de2f",
      "parents": [
        "f90b1261a53bc0bfc772337551eb4c540022cd22"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 24 00:30:52 2009 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Nov 25 12:54:58 2009 -0500"
      },
      "message": "Remove HardwareService and move vibrator support to VibratorService.\n\nThe lights support is only needed by PowerManagerService and NotificationManagerService, so we do not need a Binder API for it.\nMove backlight and notification light support to new LightsService class.\nThe camera flash is now handled directly by the camera HAL, so the flash Hardware service flash support is obsolete.\n\nChange-Id: I086d681f54668e7f7de3e8b90df3de19d59833c5\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "237a29923a05663a2195bf93b392768dbaf31ebf",
      "tree": "37a21b8413a9c6be00843a56fd0bb63b1cd05e85",
      "parents": [
        "f02c0740d3039977149773604a229c9f76c8121d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 14:42:16 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Sep 15 15:47:09 2009 -0400"
      },
      "message": "Move backlight brightness from HardwareService to PowerManager\n\nto prevent apps from changing the hardware behind its back.\nFixes b/2041941 Lock screen flashes the screen very bright before dimming\n\nChange-Id: Ice757f7ae87902bdfb3634471cf44f020ebfaae4\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dace230043314d6fab1c5ced4b031eaccd814c25",
      "tree": "0c2fbb477f5d94641cee6aa892600b6d34bc96d3",
      "parents": [
        "ae4f31706fa0589ede00dfce344779a1570cd2f3",
        "b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 12:51:00 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 12:51:00 2009 -0700"
      },
      "message": "resolved conflicts for merge of b06ea706 to master\n"
    },
    {
      "commit": "b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0",
      "tree": "2fcae8f89195ef4b162627892aeca97f06d42ef7",
      "parents": [
        "3660c09500a4d01eb6a733b5f0b15545855f8fe8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 13 13:07:51 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 11:37:11 2009 -0700"
      },
      "message": "Add reporting of activity movement for search manager.\n\nThis adds a new API with the activity manager to find out about movement between\nactivities.  For my sanity, the old IActivityWatcher is now renamed to\nIActivityController, and the new activity movement interface is named\nIActivityWatcher.\n\nThis changes the search manager itself to use the new API to manage its state.\nNote that there are still problems when going back to the search dialog after\nit was hidden -- the suggestions window no longer appears until you explicitly\ndismiss and re-show it.\n"
    },
    {
      "commit": "18dd5f0d25f1004e123dc265dc498a8bf8897af9",
      "tree": "89e57901a4e7e67871d529fdb9b2febef201c456",
      "parents": [
        "f8e3ba5bfad14f3037d72eb6243258c13169cbd8"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Jul 02 11:31:12 2009 -0400"
      },
      "committer": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Mon Jul 06 08:31:33 2009 -0400"
      },
      "message": "Improve the Vibrator service by keeping track of multiple vibration requests.\n\nThere are 2 types of vibrations: simple and repeated. Simple vibrations run for\na given length of time while repeated patterns run until canceled or the calling\nprocess dies.\n\nIf a vibration is currently running and another request is issued, the newer\nrequest always takes precedence unless the current vibration is a simple one and\nthe time left is longer than the new request.\n\nIf a repeating vibration is running and a new request overrides that vibration,\nthe current vibration is pushed onto a stack. Once the new vibration completes,\nthe previous vibration resumes. IBinder tokens are used to identify Vibration\nrequests which means that multiple calls to Vibrator.vibrate with the same\nVibrator object will override previous vibrations on that object.\n"
    },
    {
      "commit": "8b85a8afea81c70acf29fc1e840aaaa690ccb8db",
      "tree": "2140e111fc15ad2e3425fee1ce584a7ed3fe3fbb",
      "parents": [
        "79ac87704d2e38afb06356704e4b52c739237f40"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Fri Jun 19 18:13:50 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Fri Jun 19 18:13:50 2009 -0700"
      },
      "message": "Add smalltest annotation to HardwareServicePermissionTest.\n"
    },
    {
      "commit": "36480907331fd6e4afe0608f495f2c731cfa6047",
      "tree": "de8d76df41f65891b7c27fef143ecee82f010923",
      "parents": [
        "4d1b5bd148d0830d2acc03bafbe58dfd17e5b3f8"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Fri Jun 19 16:19:30 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Fri Jun 19 16:19:30 2009 -0700"
      },
      "message": "Add permission tests for IHardwareService.\n"
    },
    {
      "commit": "6cdd1c8a60f56eabbdb09e4c1231975c96715388",
      "tree": "94f68a148c2aae11d4fbbd016db3141129b0a5a3",
      "parents": [
        "8ad473994d402e42ec3c8f44f31e99ef2f7e9237"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jun 17 11:28:26 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jun 17 11:29:45 2009 -0700"
      },
      "message": "Add SmsManager permission test.\n"
    },
    {
      "commit": "6edb3487beb1973b1ea05e5b4168ba1ac247c9a4",
      "tree": "b860066f410306fa8fc7ed707f4b7dea7555b4aa",
      "parents": [
        "acec4d6741643a5f0bda0b6a4eeb033a963818dc",
        "cfaef699e1dfb3a75d5b51f3b15816f13670fd51"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 15 15:07:50 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 15 15:07:50 2009 -0700"
      },
      "message": "Merge change 4234 into donut\n\n* changes:\n  Implement permission test for activity, window, service manager.\n"
    },
    {
      "commit": "cfaef699e1dfb3a75d5b51f3b15816f13670fd51",
      "tree": "594192d551bfad6569f415c0a4371899ec480fdd",
      "parents": [
        "3adf7678cdf8fa955627e096bb5c27b94adc3079"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 14:24:44 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 14:35:07 2009 -0700"
      },
      "message": "Implement permission test for activity, window, service manager.\n\nThis also includes some changes to the window manager permission checks.  Almost all of these\nare to make it most testable (through an exception on a permission failure), though there is\none permission check that needed to be added: updateOrientationFromAppTokens().\n"
    },
    {
      "commit": "acec4d6741643a5f0bda0b6a4eeb033a963818dc",
      "tree": "a795bbafed198612cc800e7f70a7a4bd3729db8a",
      "parents": [
        "9908b3d820f7574ef432f22d280c7f1f5065f67f",
        "2f0d86cf2e9ce9e94083f8544cd6593295df8850"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 15 14:20:53 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 15 14:20:53 2009 -0700"
      },
      "message": "Merge change 4224 into donut\n\n* changes:\n  Add test for GServices write permission, and remove dummy placeholder framework permission test.\n"
    },
    {
      "commit": "2f0d86cf2e9ce9e94083f8544cd6593295df8850",
      "tree": "d0917119738f190b73a2ea958a0e703d40ea1c12",
      "parents": [
        "2c723ee0cc9db37b61f55e53ff739ca3fe9cbe8a"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 15 14:15:19 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 15 14:15:19 2009 -0700"
      },
      "message": "Add test for GServices write permission, and remove dummy placeholder framework permission test.\n"
    },
    {
      "commit": "ea196fc50e9711207eddb1f546fec1463b615fc0",
      "tree": "2c7c3b7290cdbb36aba2058ea020a9474e26aec7",
      "parents": [
        "2c723ee0cc9db37b61f55e53ff739ca3fe9cbe8a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jun 15 13:10:34 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jun 15 13:19:25 2009 -0700"
      },
      "message": "More tests to check permissions in PackageManager api\u0027s are enforced\n"
    },
    {
      "commit": "9f2f87d92b3c23680fa7c24dbccf67976d0968d3",
      "tree": "9282bc7a04c1421e015321a425cccc58b13174b9",
      "parents": [
        "3adf7678cdf8fa955627e096bb5c27b94adc3079"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jun 15 12:05:43 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jun 15 12:23:15 2009 -0700"
      },
      "message": "Add tests to check permissions in PackageManager api\u0027s\n"
    },
    {
      "commit": "9faa04fd85efa0be5c883e3136f06fa85b525ad6",
      "tree": "a97aea8a119656064951aa19550d1adac305cc6c",
      "parents": [
        "3d59ee7aa66a5b1e80f5042f8d872dd9819b5f40"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 15 10:40:56 2009 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 15 10:43:40 2009 -0700"
      },
      "message": "Add permission test structure for private framework permissions.\n"
    }
  ]
}
