)]}'
{
  "log": [
    {
      "commit": "77ece7b192d45351b313ee23270caab373d3c477",
      "tree": "cc2ebf80b6dc0d4489bbeee0eeabda6c344ff551",
      "parents": [
        "81ba97841089bd23b82c7c6feadd3112ad22966c",
        "dfc7fd7818cda46b914c8a9d69d1ba00443ffe5b"
      ],
      "author": {
        "name": "Matt Casey",
        "email": "mrcasey@google.com",
        "time": "Thu Aug 08 09:33:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 08 09:33:08 2013 +0000"
      },
      "message": "Merge \"Extend assist context to foreground services\""
    },
    {
      "commit": "52df1db3ce3da57dea6322196d4566b72e36f485",
      "tree": "aaa69e58fb03be66994bd8851a81d54e709d2f91",
      "parents": [
        "16ae0cf1af7ef29210c0d9dee2db012f5cf81456",
        "4b628cb53dd84dae82db941d49ef10d58f22bf07"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Thu Aug 08 01:26:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 08 01:26:40 2013 +0000"
      },
      "message": "Merge \"Adding new constants for STEP_DETECTOR, STEP_COUNTER and GEOMAGNETIC_ROTATION_VECTOR.\""
    },
    {
      "commit": "eb2e139b38eb740e06b691a6a8b690251377095e",
      "tree": "30f6ec4db384ff2568e200a994107f5ed0869a4d",
      "parents": [
        "18ec40c44c936fd5146133ccc7446a4cd860b527",
        "f45c9a0c6a3572b672ac5e531397516ec1e05c8a"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 07 22:44:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 22:44:36 2013 +0000"
      },
      "message": "Merge \"Unhide Context.APP_OPS_SERVICE\""
    },
    {
      "commit": "93e095b731f81e8ae410b605a5ffa955b8711edd",
      "tree": "73e7324e81c7fac1a9f15d75e286c12ee53da473",
      "parents": [
        "6e4cc12a6c7487583dd1e5432fe9ee81c8aa2458",
        "0a0e155cadecd32599a7354a1836232c885f4bd2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 20:31:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 20:31:45 2013 +0000"
      },
      "message": "Merge \"Add copy constructors for all widget-specific LayoutParams\""
    },
    {
      "commit": "0a0e155cadecd32599a7354a1836232c885f4bd2",
      "tree": "d253b619fee3bae382138010c5d9e638c471d6e1",
      "parents": [
        "d9b67633f6aabab190788dcf9c757fb24ce2629c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 13:24:09 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 13:24:09 2013 -0700"
      },
      "message": "Add copy constructors for all widget-specific LayoutParams\n\nBUG: 10215589\nChange-Id: I4c040091e216c87f851d6b617107f43729e55b0c\n"
    },
    {
      "commit": "f45c9a0c6a3572b672ac5e531397516ec1e05c8a",
      "tree": "33c6c13178bea3c671bc671b2b2ade7f6b487efd",
      "parents": [
        "e2b1b8e2adcc212f8505bf77a5d7e098d7c12c2f"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 07 11:25:12 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Wed Aug 07 11:44:54 2013 -0700"
      },
      "message": "Unhide Context.APP_OPS_SERVICE\n\nChange-Id: Iab3e3fb2a32c3407c61abb694e21d84b50579d4f\n"
    },
    {
      "commit": "7a2de0615f50ed40021cc1e931ea072b539719b8",
      "tree": "f51d7148a5901717dc0e73b249485d3cdeeeb11c",
      "parents": [
        "df89ca3308544cfdd1ca12b22eac4a1d16e04410",
        "2f3317a06dd4d39298dc3fd2bb8a4d36a5762e03"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 07 18:38:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 18:38:15 2013 +0000"
      },
      "message": "Merge \"Add API for scrolling AbsListView by a pixel amount\""
    },
    {
      "commit": "2275c6c8bfab76d1db8bc11d2b56b7ff913da4e0",
      "tree": "041974ebfa4428068f66d0782dfd426f22f31035",
      "parents": [
        "3be4fed63c69f16a4223cd74931650634c0b86df"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 21:37:29 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 21:37:29 2013 -0700"
      },
      "message": "attempt to fix build. public api wasn\u0027t updated\n\nChange-Id: I5afa7f20d60c1754e4d12318219af5a5861a85e0\n"
    },
    {
      "commit": "8f6c998cfb98ee6dbaac52bed5081be44df99d00",
      "tree": "76db2686e44f28c1bcd996422a1ee8537a1e1e88",
      "parents": [
        "271c719224d05f8a58d1d0cc6e1cf6c24a616b47",
        "3ed38266c1647c6219ae5ad89cb3f867cf66caaa"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 07 01:44:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 01:44:09 2013 +0000"
      },
      "message": "Merge \"Define error codes for MediaCodec.CryptoException\""
    },
    {
      "commit": "dfc7fd7818cda46b914c8a9d69d1ba00443ffe5b",
      "tree": "bb6f5ca2baf7b31d89725be061db4dc40aa2ca3d",
      "parents": [
        "94fa8956b02f307912746d9ac87be7798dc3464e"
      ],
      "author": {
        "name": "Adam Skory",
        "email": "skory@google.com",
        "time": "Mon Aug 05 19:23:41 2013 -0700"
      },
      "committer": {
        "name": "Adam Skory",
        "email": "skory@google.com",
        "time": "Wed Aug 07 02:20:44 2013 +0100"
      },
      "message": "Extend assist context to foreground services\n\nAdd Service.onProvideAssistData(Bundle) which will be\ncalled on foreground Services that have the new attr\nin their manifest of provideAssistData \u003d true;\n\nRename private reference to e.g. \"getTopActivityExtras\"\nas \"getAssistContextExtras\" - do not rename the relevant\npermission, since it is already public.\n\nIn ActivityManagerService, request extras both from the\ntop activity and from any foreground services with the\nabove attribute. Extend PendingActivityExtras as\nPendingAssistExtras with a list of Services from which\nextras are expected.\n\nReduce the timeout to or reporting extras from 4 sec to\njust 500 ms.\n\nBug: 9526331\nChange-Id: Ia03b96e8189033a68ae9c514c8cea0199a19bce8\n"
    },
    {
      "commit": "2f3317a06dd4d39298dc3fd2bb8a4d36a5762e03",
      "tree": "a60a3bb8ce4ea7a0c01061cf276883d47551c3c6",
      "parents": [
        "d9b67633f6aabab190788dcf9c757fb24ce2629c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 06 18:19:48 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 06 18:19:48 2013 -0700"
      },
      "message": "Add API for scrolling AbsListView by a pixel amount\n\nChange-Id: Ib0fc48879991fd467242d8dc337db419edb12acf\n"
    },
    {
      "commit": "d9b67633f6aabab190788dcf9c757fb24ce2629c",
      "tree": "14a266199ef55d419b7f5da4f5013934bac8a2ba",
      "parents": [
        "b5edb0bd60939f8899fc4bec30f9b7a851775443",
        "d40f43c1256da5fc27beb0000b56f38e65c380c4"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Aug 06 22:46:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 22:46:48 2013 +0000"
      },
      "message": "Merge \"NFC: @hide some APIs, add setDefaultForNextTap API.\""
    },
    {
      "commit": "d40f43c1256da5fc27beb0000b56f38e65c380c4",
      "tree": "cd6172639cf790992e0a38060065f80f7df08fdb",
      "parents": [
        "a7397883de67d674970d91f86d46ccf637e5e543"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Aug 06 15:34:03 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Aug 06 15:36:37 2013 -0700"
      },
      "message": "NFC: @hide some APIs, add setDefaultForNextTap API.\n\nChange-Id: I31efe4c96a62e6c3dcb984a885214e6df045c6c6\n"
    },
    {
      "commit": "166bc5b664b28f93c8bcf74f4b3abb8a82e44dbc",
      "tree": "b076649a6bd0d6a501ff729090d09411718ecb4e",
      "parents": [
        "14db9654f6c31e94fe9272776f1f1b8602a17fdc",
        "e1f366faf8691f0dacde1dad35b28fcc37120776"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Aug 06 22:29:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 22:29:17 2013 +0000"
      },
      "message": "Merge \"Introduce new transparent bars sysui flags.\""
    },
    {
      "commit": "4b628cb53dd84dae82db941d49ef10d58f22bf07",
      "tree": "4cbb701bf291ab3795fe778e3adc492f17be5922",
      "parents": [
        "20f170d6af4d761fa0d73fc05549843a9988bc1f"
      ],
      "author": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Mon Aug 05 18:43:55 2013 -0700"
      },
      "committer": {
        "name": "Aravind Akella",
        "email": "aakella@google.com",
        "time": "Tue Aug 06 14:58:12 2013 -0700"
      },
      "message": "Adding new constants for STEP_DETECTOR, STEP_COUNTER and GEOMAGNETIC_ROTATION_VECTOR.\n\nChange-Id: I31fbdf379454e71950b111f2461bdb430f3352fc\n"
    },
    {
      "commit": "b3316ef7987571661dac47614e311b8eeb45000f",
      "tree": "f03daf2d31789f86b0eddcbbf19bd79f9c3fc56f",
      "parents": [
        "34077aa6bb6f3438c58c76fd57d1c1ae0a32fd6d",
        "66516697a29cf00d93893a1011d3befc7c1ee37f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 06 18:42:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 18:42:18 2013 +0000"
      },
      "message": "Merge \"Storage roots in fragment, sectioned.\""
    },
    {
      "commit": "66516697a29cf00d93893a1011d3befc7c1ee37f",
      "tree": "c86d01f2f1aaf23edd5b4424388144670dad7cb2",
      "parents": [
        "ef7184a1aa0be5d496a5cb495a0f9e11f342af44"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 06 11:26:10 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Aug 06 11:38:46 2013 -0700"
      },
      "message": "Storage roots in fragment, sectioned.\n\nMove storage roots into a fragment, since it\u0027s not a drawer on\ntablets.  Cluster and sort roots when displaying.  SectionedListAdapter\nto make clustered roots easier to manage.  Add docs for root types.\n\nMove roots cache into separate class to make it easier to share.\n\nChange-Id: Ia0b92eade059e816324641f600c08026c0e268c9\n"
    },
    {
      "commit": "e1f366faf8691f0dacde1dad35b28fcc37120776",
      "tree": "94dcee80bd467a3b030c508a5a6b24fc8d4f9c56",
      "parents": [
        "1ea19f4e4959448d3a97adbb7dd055924ec270e9"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Aug 05 12:22:40 2013 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Aug 06 14:17:22 2013 -0400"
      },
      "message": "Introduce new transparent bars sysui flags.\n\nTwo new public sysui flags for views to request transparent\nbars:\n  View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS\n  View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION\n\nThis first change simply introduces the flags at the framework\nlevel, and makes the requisite layout tweaks to WM.\n\nAs part of this change, expunge the term \"hideybars\" from the\ncodebase. The flag to declare support for transient bars is called:\n  View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT\n\nFinal visuals/transitions between opaque/transparent bars will be\ndone as a subsequent change. Right now the transparent style is\nidentical to the transient bars.\n\nChange-Id: I5ead9c5e7b77f212df5b2a5f6e770596cd2226f3\n"
    },
    {
      "commit": "882c246003dd45a689c2cc6bc3a42e35b59266fd",
      "tree": "e8834eda71789f7f023a5381a06e4d3fbbec5d57",
      "parents": [
        "2191a0c8570b518c8a62e2a7c5e03a5b32ce0aa0"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 05 12:28:19 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 05 12:28:19 2013 -0700"
      },
      "message": "Fix build, updates current APIs\n\nChange-Id: I34deb72207e6eb7c37dd57d781a66582cef62b95\n"
    },
    {
      "commit": "2191a0c8570b518c8a62e2a7c5e03a5b32ce0aa0",
      "tree": "1c10ae54026822cc065a6180b6049e070bafe1ae",
      "parents": [
        "78804fc6d8eec112af9857a8513d21fb5134f194",
        "43a1e3d319d77c251445339bcc8f82c82b097fee"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Aug 05 18:32:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 18:32:20 2013 +0000"
      },
      "message": "Merge \"Move caption style to its own class, add presets\""
    },
    {
      "commit": "3ed38266c1647c6219ae5ad89cb3f867cf66caaa",
      "tree": "86eb59951fe40ec192ea5ed0d761a5d1d2e8bb71",
      "parents": [
        "d8501485e30c1184292f15349b9e439343ff5b60"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 02 23:24:51 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Aug 03 10:23:41 2013 -0700"
      },
      "message": "Define error codes for MediaCodec.CryptoException\n\nDefine specific failure cases so apps have the information they\nneed to deal with these conditions.\n\nAlso adds a new ResourceBusyException to MediaDrm\n\nChange-Id: Iaecf269d58108f28179974b05671bf29b9fe4b7d\nrelated-to-bug: 10157154\nrelated-to-bug: 9695816\n"
    },
    {
      "commit": "7d00affce6e25b22fd8fc135933b3bf6b547a0dc",
      "tree": "6ceb674184170a62dd93d7b3508f11ed1830349e",
      "parents": [
        "040f44d0ebdd3a50c59ba0cbc0b023fd2d71039d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 02 19:03:49 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 02 21:11:07 2013 -0700"
      },
      "message": "Support public virtual displays.\n\nRefactor the new private virtual display API to also support\ncreating public virtual displays with various characteristics.\nThis feature requires special permissions and is only intended\nfor use by the system.\n\nChange-Id: I44dd19f37cf76ea6d6e313afe42f4a412bd96663\n"
    },
    {
      "commit": "badb063c81ef805377dac69048afaa02cea6593c",
      "tree": "bce19678e97723c6004eb119f8b367c6aaca63d0",
      "parents": [
        "cf9d87c68874e6008399fa1f571dbff34cf3fc82",
        "a7397883de67d674970d91f86d46ccf637e5e543"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Sat Aug 03 00:49:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 03 00:49:03 2013 +0000"
      },
      "message": "Merge \"NFC: Host-based card emulation APIs.\""
    },
    {
      "commit": "cf9d87c68874e6008399fa1f571dbff34cf3fc82",
      "tree": "1db75a9414017b977d98d4603293dfbaa4d8c403",
      "parents": [
        "c5e32ef628c23758523008358c11aaa7e7422ac4",
        "dc2963aecaf38bf53d6de82957412a486049c207"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Aug 03 00:43:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 03 00:43:00 2013 +0000"
      },
      "message": "Merge \"Track and persist directory stacks; recents work.\""
    },
    {
      "commit": "dc2963aecaf38bf53d6de82957412a486049c207",
      "tree": "92e8761e1415e13d789199be3d0b60a873f2763e",
      "parents": [
        "92d7e697a864a3e18bef4ef256bb3eb339a66b4e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 15:55:26 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 17:39:38 2013 -0700"
      },
      "message": "Track and persist directory stacks; recents work.\n\nMove to manual tracking of directory navigation stack so we have Uri\ndata to persist, instead of opaque fragment backstack.  Remember\ndirectory stacks across launches on a per-app basis.\n\nStart recording recently opened and created files.  Uniform Uri\nparameter extraction utility methods in contract.\n\nChange-Id: I79ed30ee10272bf7c53d339e797639c993f649bb\n"
    },
    {
      "commit": "a7397883de67d674970d91f86d46ccf637e5e543",
      "tree": "eaef378b35af8374b8f8940f59c789d7bc66d8b9",
      "parents": [
        "d8501485e30c1184292f15349b9e439343ff5b60"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jul 30 20:07:47 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Aug 02 17:22:53 2013 -0700"
      },
      "message": "NFC: Host-based card emulation APIs.\n\n- New INfcCardEmulation interface to allow apps to interface\n  with card emulation system.\n- New BIND_NFC_SERVICE permission to prevent malicious apps\n  from binding to card emulation services.\n- ApduServiceInfo is now in the framework.\n- Added constants to Settings.Secure for storing defaults.\n- Modified XML grammar a bit.\n\nChange-Id: I56b3fa6b42eb5dc132c91c1386ab1e6bac779059\n"
    },
    {
      "commit": "43a1e3d319d77c251445339bcc8f82c82b097fee",
      "tree": "8dc339710f25fdbcf4172f5f0e71cce98612de53",
      "parents": [
        "aaabfe9587ac5ca7c973417ed13c20ae655e2fb8"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 02 16:45:03 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Aug 02 16:45:03 2013 -0700"
      },
      "message": "Move caption style to its own class, add presets\n\nBUG: 9926077\nChange-Id: I14e809c5a95103e57d30f4273399e9914af52b56\n"
    },
    {
      "commit": "bb9b30078739dba99ffa094b35fde0118c245097",
      "tree": "f03f4fa6218f39ca80108ab294dc7633c55614e9",
      "parents": [
        "4d79d7821d45719b8efe71e68617e511084cb8a1",
        "8c43376ea83a67414bd6823a472b76d41160239e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 02 21:24:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 21:24:38 2013 +0000"
      },
      "message": "Merge \"    First cut of the print notifications.\""
    },
    {
      "commit": "8c43376ea83a67414bd6823a472b76d41160239e",
      "tree": "05ee0b02f711058ce5443a8bbee33edd19df2d8f",
      "parents": [
        "55b409a97cf6376399a0940313ea852368727d6f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 02 14:22:19 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 02 14:22:22 2013 -0700"
      },
      "message": "    First cut of the print notifications.\n\n    1. Added notifications for a queued print job, for a started print job,\n       for ongoing canceling a print job, and for a failed print job. The\n       notifications for queued and started state have a cancel action. The\n       notification for failed print job has a cancel and a restart action.\n\n    2. Propagating failure message from the print service to the notifications.\n\n    3. PrintJobConfigActivity was not setting the initial value for the\n       print job copies and was not updating the UI immediately after creation.\n\n    4. Refactored PrintJobConfigActivity to avoid using the hack to avoid\n       reaction for item selection change in a spinner for an event that\n       happened before the callback was registered.\n\n    5. Removed the label attribute from PrinterInfo and now PrinterId is\n       composed of the printer name and the service component name. This\n       is nice since for restarting print jobs we do not need to store\n       information about the printer except the printer id which is\n       already part of the PrintJobInfo\u0027s data. Also the printer name\n       is not expected to change anyway.\n\n    6. Allowing cancellation of a queued print job. Also no print job is\n       cancelled without asking the managing print service to do that.\n       Before we were immediately canceling print jobs in queued state\n       but it was possible for a buggy print service to not set the\n       print job state to started before starting to do expensive work\n       that will not be canceled.\n\n    7. PrintServiceInfo was throwing an exception the the meta-data\n       XML for the print service was not well-formed which would crash\n       the system process. Now we just ignore not well-formed meta-data.\n\n    8. Removed unused permissions from the PrintSpooler\u0027s manifest.\n\nChange-Id: Iba2dd14b487f56e137b90d1da17c3033422ab5e6\n"
    },
    {
      "commit": "aaabfe9587ac5ca7c973417ed13c20ae655e2fb8",
      "tree": "303ab804d280e981f984da5b47c43f0b5760634e",
      "parents": [
        "df2cab2fc46c3f2c56f85dee1a19d0fa48cfd444",
        "92d7e697a864a3e18bef4ef256bb3eb339a66b4e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 18:10:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 18:10:09 2013 +0000"
      },
      "message": "Merge \"Reference docs by ROOT_ID and DOC_ID; recents.\""
    },
    {
      "commit": "92d7e697a864a3e18bef4ef256bb3eb339a66b4e",
      "tree": "e5cce35e071787bfb81a8341716071925f1c86c4",
      "parents": [
        "7e258b31e70464bb6d80b8b42f0cef8e4417bd6a"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 10:33:21 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Aug 02 11:05:11 2013 -0700"
      },
      "message": "Reference docs by ROOT_ID and DOC_ID; recents.\n\nThe same document may be present with different sematics under\nmultiple storage roots, so always reference using both ROOT_ID and\nDOC_ID.  This enables backends to revoke permissions for an entire\nroot, such as when an account is removed.\n\nStart building provider to remember recently accessed documents.\n\nChange-Id: I75befa2e61393dec12fcc7fd27f631fcddae46fa\n"
    },
    {
      "commit": "3f5a90b2fbba2a83a8a2c5babd5d466a5e0ad2aa",
      "tree": "666fee2554ad0f795380960d425606804e8b7ede",
      "parents": [
        "851761574a775c6447ab2393d1ba42568ba08c1b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Jun 24 19:22:25 2013 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 01 15:15:10 2013 -0700"
      },
      "message": "Add automatic Drawable mirroring capability when in RTL layout direction\n\n- default value is \"no mirroring\"\n- introduce android:autoMirrored as a new attribute for Drawable,\nBitmapDrawable, LayerDrawable, StateListDrawable and NinePatchDrawable\n- setting android:autoMirrored\u003d\"true\" means that the drawable will\nbe mirrored when the layout direction is RTL (right-to-left)\n- also fix an issue with ImageView drawable layout direction not\nupdated correctly when RTL properties were changed\n\nSee bug #7034321 Need Drawable RTL support\n\nChange-Id: If595ee5106c786f38e786d3a032e182f784a9d97\n"
    },
    {
      "commit": "e1f886f5e35aa0b4297df85e96716687f3b9517d",
      "tree": "6017deda1afb34e0e6c5c5e91c5eddaaf053accd",
      "parents": [
        "1a02c22d018bf22ab40b2d2d93f750bc7a8135b2",
        "0b8374501975aecd7a628336e2f7e53c272ebeea"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Thu Aug 01 19:24:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 19:24:53 2013 +0000"
      },
      "message": "Merge \"Add new app op to monitor high power location requests.\""
    },
    {
      "commit": "7e258b31e70464bb6d80b8b42f0cef8e4417bd6a",
      "tree": "1a5687b979f6a709303fe3a642403bbbc84ce72b",
      "parents": [
        "3d38fa301ca502882b1bbe06c030d037289636b7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 01 11:01:47 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Aug 01 11:34:56 2013 -0700"
      },
      "message": "XML metadata for storage backend; custom icons.\n\nIntroduce XML metadata for storage backends, used to indicate if\ncustom roots should be queried, and provide any custom MIME type\nicons inside that backend.\n\nParse metadata and resolve custom icons in UI.\n\nChange-Id: Iec026c0b10845edff7a345d9389691ddf2c87a0e\n"
    },
    {
      "commit": "3d38fa301ca502882b1bbe06c030d037289636b7",
      "tree": "646230c49aeb3f6ff9a225c40c266a9e77c94c4b",
      "parents": [
        "5d3dff1d66f99fbd5bef9178e62d789119c02ad1",
        "364ed4dda42882b600dce48319881ff58464fced"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Aug 01 17:18:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 17:18:03 2013 +0000"
      },
      "message": "Merge \"PreferenceActivity Fragment security\""
    },
    {
      "commit": "9171db279826ee91d64eb9538a504ffed5e53b38",
      "tree": "143a9547d0bb43f8c09a0c0f881cb6b44274a82d",
      "parents": [
        "5813f240ec21252b5a79616a67998dd0529986fa"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 31 17:11:12 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 01 09:19:58 2013 -0700"
      },
      "message": "Unhide android.media.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE\n\nUnhide android.media.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE\nUpdate android.media.AudioManager.requestAudioFocus() javadoc for the\n  new focus type.\n\nBug 8251963\n\nChange-Id: I7cd69faaf5f0169ee462b91d0aaa75dc6b092107\n"
    },
    {
      "commit": "f296e317fb44ac33fe5294fcfe0cc1218ca5b86c",
      "tree": "92d228d6e902f5f34ed05599db843216a689d9ea",
      "parents": [
        "2f3efcf1078b051205c2b6708a79f176fa943d17",
        "1e546815bbb736c50679a8aefc25f48561026fc5"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Thu Aug 01 14:40:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 14:40:54 2013 +0000"
      },
      "message": "Merge \"Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)\""
    },
    {
      "commit": "dc8abf6cee0bcf44e2cad8155f0c151105d46471",
      "tree": "ae10a9c9c14571984c71447c01cb097b9240d991",
      "parents": [
        "fd5d153af8e37ad88b8564408a7dc27fc20e95f0"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Tue Mar 12 14:40:04 2013 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Thu Aug 01 17:17:48 2013 +0900"
      },
      "message": "Cleanup InputMethodSubtype and add \"isAsciiCapable\".\n\nBug: 8364845\nChange-Id: Ic3ace4b6e0432d56696bcbc0be336aec1dc744a5\n"
    },
    {
      "commit": "53672be11093e56c47e037b8540d63221ccd2f7f",
      "tree": "9e499048338b528598ee0d9b4b40fe18b194030b",
      "parents": [
        "e303900dbdda25cb09fdc3c6d1f43aa68708713b",
        "55b409a97cf6376399a0940313ea852368727d6f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 01 02:16:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 02:16:20 2013 +0000"
      },
      "message": "Merge \"Iteration of the print sub-system.\""
    },
    {
      "commit": "55b409a97cf6376399a0940313ea852368727d6f",
      "tree": "9a919b2d64c469e11d94d6205d44cdd9ab553802",
      "parents": [
        "85b1f883056a1d74473fd9ce774948878f389ab6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 31 17:25:13 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 31 18:59:53 2013 -0700"
      },
      "message": "Iteration of the print sub-system.\n\n1. Added APIs for adding partially initialized PrintInfo objects\n   enabling light-weight lookps for print serivces that want to\n   populate the list of available printers without querying each\n   of them for its capabilities. This includes APIs for the system\n   to request from a print service to update certain printers.\n\n2. Fixed a bug in PrinterId#equals().\n\n3. Added equals and hasCode implementaion to PrinterInfo. Also\n   the defaul in PrinterInfo are now an array instead of a\n   SparseArray - cheaper.\n\n4. Now PrintJobConfigActivity works with partially specified\n   printers. Specifically, if such a printer is selected the\n   activity is requesting from the print service to update\n   the printer. We are currently not handling the timeout case.\n   It also handles udpated pritners.\n\nChange-Id: I5e83e924ef597c9e22cbd06a971d4f4d3bd3a9c1\n"
    },
    {
      "commit": "9f1ef00265b4cfd03d024e1fcdc3eaf85b7b8a40",
      "tree": "97afde4a94f05930df9dabc46102e3ef8838fab4",
      "parents": [
        "f94b34f5397d92080c188277b062537480c05b7d",
        "85b1f883056a1d74473fd9ce774948878f389ab6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Aug 01 00:13:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 00:13:44 2013 +0000"
      },
      "message": "Merge \"Iteration on the print sub-system.\""
    },
    {
      "commit": "1e546815bbb736c50679a8aefc25f48561026fc5",
      "tree": "11a3b7106638c123d052d50ce3e2a1757e004cb4",
      "parents": [
        "3a6f25512c0a682b10961a5a7428e3393ffb0b75"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jun 25 14:25:17 2013 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jul 31 15:50:47 2013 -0700"
      },
      "message": "Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)\n\nQuite a few things going on in this commit:\n\n- Enable bitmap strikes by default in Paint objects.\n\nThe SkPaint parameter that enables bitmap strikes was not previously\nincluded in DEFAULT_PAINT_FLAGS. This effectively disabled bitmap\nfonts. Oops! It\u0027s for the best, though, as additional work was needed\nin Skia to make bitmap fonts work anyway.\n\n- Complain if TEXTURE_BORDER_SIZE is not 1.\n\nOur glyph cache code does not currently handle any value other than 1\nhere, including zero. I\u0027ve added a little C preprocessor check to\nprevent future engineers (including especially future-me) from\nthinking that they can change this value without updating the related\ncode.\n\n- Add GL_RGBA support to hwui\u0027s FontRenderer and friends\n\nThis also happened to involve some refactoring for convenience and\ncleanliness.\n\nBug: 9577689\nChange-Id: I0abd1e5a0d6623106247fb6421787e2c2f2ea19c\n"
    },
    {
      "commit": "dabc6fc8a9ee5bdd8371c413f91347d4d65c6a10",
      "tree": "15d2c599ef5167ddd1bd03dd585a7ed43932820b",
      "parents": [
        "a1510c9849d527021b9f14ed3d451bfa8d5f1506",
        "1c8c179dbfee88749101155c1cd7b430d1a8e75c"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Wed Jul 31 09:13:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 09:13:27 2013 +0000"
      },
      "message": "Merge \"Unhide WebView.evaluateJavascript(..)\""
    },
    {
      "commit": "a1510c9849d527021b9f14ed3d451bfa8d5f1506",
      "tree": "a0424f1b334f9bd56dd519c3b4c3cae31e8d5b39",
      "parents": [
        "7cb1757d4c3ae84ca81ccec8f9a13816c645308d",
        "20d96d8aff2193d548977e23ce5158657cac94e0"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 31 06:00:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 06:00:35 2013 +0000"
      },
      "message": "Merge \"Define storage roots, external GUIDs, creation.\""
    },
    {
      "commit": "20d96d8aff2193d548977e23ce5158657cac94e0",
      "tree": "b650fadd3425d2b72a4ef6d9e0f180596b5b54f1",
      "parents": [
        "5259ffba255b38728a20e28aa6ba029416d0e925"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 30 17:08:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 30 22:55:23 2013 -0700"
      },
      "message": "Define storage roots, external GUIDs, creation.\n\nAllow storage backends to publish multiple roots into the UI, which\nare defined by a directory GUID, type, and label details.  Update\nexternal provider to surface a primary external storage root, and\nswitch to burning file path into the returned GUIDs so they remain\ndurable.\n\nAdded insert, update, and delete support to external provider. Adds\nfile extensions to display names when needed to match MIME type.\n\nAdd flags for searching and deletion, and extras for Cursor\npagination. Add directory creation dialog to UI. Opening a document\nalways gives write access.\n\nChange-Id: I9bea1aa0dcde909a5ab86aefeece7451ab920cf1\n"
    },
    {
      "commit": "6d64d5ab84a66f98633acf740414a8848feaa14b",
      "tree": "b9f0097582aeefdb657d9b58688ece8bfbb99d1c",
      "parents": [
        "d608b0e97cc524deeae496f9a24edef6f29af03f",
        "84956d53f1e86b8c000f8994ea9040b71a30e321"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 31 00:54:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 00:54:25 2013 +0000"
      },
      "message": "Merge \"Add missing InsetDrawable.getDrawable() method\""
    },
    {
      "commit": "85b1f883056a1d74473fd9ce774948878f389ab6",
      "tree": "7417d396a98766611636e0123102154f60726737",
      "parents": [
        "0d1daa50f6d180c57f92596501e2e5c0b5ef9997"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 24 17:00:06 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 30 17:15:11 2013 -0700"
      },
      "message": "Iteration on the print sub-system.\n\n1.  API changes: Moved copies API from PrintAttributes to PrintJobInfo;\n    Changed the PageRange list to an array in PrintDocumentAdapter#onWrite;\n    Added onCancelled method to the layout and write callbacks.\n\n2.  Refactored the serialization of remote layout and write commands. Now\n    the commands are serialized by the code in the client instead in the spooler.\n    The benefit is simple code since the client has to do a serialization to delegate\n    to the main thread anyway. The increased IPC found is fine since these calls\n    are quite unfrequent.\n\n3.  Removed an unused file: IPrintSpoolerObserver.aidl\n\n4.  Added equals and hasCode implementation to PageRange, PrintAttributes,\n    MediaSize, Resolution, Margins, Tray, PrintDocumentInfo.\n\n5.  Added shortcut path for query APIs on PrintJob that return cached values\n    if the print job is in a uncuttable state, i.e. completed or cancelled. Failed\n    print jobs can be restarted.\n\n6.  PrintJobInfo was not properly serialized.\n\n7.  Updated the look of the print dialog to be stable if there is and there isn\u0027t\n    currently selected printer.\n\n8.  PrintJobCOnfigActivity now calls onLayout on every print attributes change\n    but requests a write only on print preview or print button press. Also if the\n    layout did not change the content and it is already written no subsequent\n    call is made. Also if the selected pages change and we already have them\n    no subsequent call to write is made. Also the app is called with print preview\n    attribute set when performing layout and with it cleared after the print button\n    is pressed. A lot of changes making sure that only valid actions are enabled\n    in the activity (looks like a dialog) at a given time frame. The print job config\n    activity is also hidden after we got all the data, i.e. layout and write are done.\n\n9.  The callback from the print spooler to the system are scheduled via messages\n    to avoid lock being held during the call. It was hard to guarantee that since a\n    method holding a lock may be calling one that would like to release the lock\n    at some point to make the callbacks.\n\n10. Print spooler state is persisted only if something changes in a completed\n    print job, i.e. not one that is being constructed due the print job config dialog.\n\n11. Fixed a potential race in the RemotePrintSpooler where it was possible that\n    a client that got a handle to the remote spooler calls into an unbound spooler.\n    E.g: the client gets the remote interface with a lock held, now the client releases\n    the lock to avoid IPC with a lock, during the IPC scheduling the spooler has\n    notified the system that it is done and the system unbinds from it, now the\n    client\u0027s IPC is made to a spooler that is disconnected.\n\nChange-Id: Ie9c42255940a27ecaed21a4d326a663a4788ac9d\n"
    },
    {
      "commit": "364ed4dda42882b600dce48319881ff58464fced",
      "tree": "660d07bfdbec697d8c1404309aafb5ab42cf7a35",
      "parents": [
        "cb9accefb19ba6ae6fd449dc9ab62e972b51335c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jul 26 13:37:56 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jul 30 16:23:50 2013 -0700"
      },
      "message": "PreferenceActivity Fragment security\n\nProvides a way for PreferenceActivities to verify that they\naren\u0027t being launched with Fragments not meant to be attached to\nthem. Default implementation will fail verification for apps built\nwith KLP. This will not affect apps built for earlier targets.\n\nAlso, make sure that the class being instantiated is a Fragment and\nnot some random class.\n\nBug: 9901133\n\nChange-Id: I564cd5168eabcadd7594ea8011e2081ebebfe063\n"
    },
    {
      "commit": "0b8374501975aecd7a628336e2f7e53c272ebeea",
      "tree": "bc67bcfdcb3ecf463dbd2d828526991f4f62e32f",
      "parents": [
        "d8501485e30c1184292f15349b9e439343ff5b60"
      ],
      "author": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Mon Jul 29 16:02:13 2013 -0700"
      },
      "committer": {
        "name": "David Christie",
        "email": "dnchrist@google.com",
        "time": "Tue Jul 30 14:59:33 2013 -0700"
      },
      "message": "Add new app op to monitor high power location requests.\n\nThis is a new op parallel to the existing OP_MONITOR_LOCATION\nbut only tracks those requests deemed to be above a\npower threshold.\n\nChange-Id: I76fe4d9d2e550293b9da6d5cf902a5b4dd499f0f\n"
    },
    {
      "commit": "84956d53f1e86b8c000f8994ea9040b71a30e321",
      "tree": "d060acdb0c9837c055f488ce232b6cbc0fea12c2",
      "parents": [
        "8018c8db8221aa604b3c083e09d173cc27e53d83"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 13:01:40 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 13:01:40 2013 -0700"
      },
      "message": "Add missing InsetDrawable.getDrawable() method\n\nChange-Id: I216b0e8a327f495fd83ebac79013418dbae007b9\n"
    },
    {
      "commit": "f2c89b9ed65116888f1d4a863b7c10c007a49c5d",
      "tree": "5a2a3110e1c1c8673f1fa22b94bc59ad30316e77",
      "parents": [
        "fec4a907b1ccb667758d9e7df151d372a070fd83",
        "9516ed4598948eea5623c57e443bce08c1f48ab6"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 30 12:28:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 12:28:05 2013 -0700"
      },
      "message": "am 9516ed45: am cfc23ac6: Merge \"Add support for MNC\u003d00\"\n\n* commit \u00279516ed4598948eea5623c57e443bce08c1f48ab6\u0027:\n  Add support for MNC\u003d00\n"
    },
    {
      "commit": "2f1a2e423e0fbb64467d6fcfa4e82c6384f31210",
      "tree": "84d91887a953c9a0bf5ca6d1ca112c8ab82bc08f",
      "parents": [
        "39dd5a62ae4348e941c8351635e61dc065b2ced7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 25 17:12:05 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 11:37:31 2013 -0700"
      },
      "message": "Camera2 API: Rename package to android.hardware.camera2\n\nChange-Id: I77b7939e199f9fe8e12a59393c24cff08097448c\n"
    },
    {
      "commit": "56fbb6362b6a0f17804d33af913b720f21c884c5",
      "tree": "56d0e70409283ecdb358d367e58774fee1ce89ba",
      "parents": [
        "4d4a137bf5f861bce744c113744718066e1f214e",
        "8018c8db8221aa604b3c083e09d173cc27e53d83"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 17:53:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 30 17:53:05 2013 +0000"
      },
      "message": "Merge \"Add path ops API\""
    },
    {
      "commit": "8018c8db8221aa604b3c083e09d173cc27e53d83",
      "tree": "60cbc26ddde4fa65a476a7e869d88f358b734210",
      "parents": [
        "93d34a61dbdfd9ece9ac4a53d78e896638172895"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 29 19:17:59 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 10:51:24 2013 -0700"
      },
      "message": "Add path ops API\n\nPath ops can be used to combine two paths instances in a single path\nobject. The following operations can be used:\n\n- Difference\n- Reverse difference\n- Union\n- XOR\n- Intersection\n\nTo use the API:\n\nPath p1 \u003d createCircle();\nPath p2 \u003d createRect();\n\nPath result \u003d new Path();\nresult.op(p1, p2, Path.Op.DIFFERENCE);\n\nThis code will subtract the rectangle from the circle and generate\nthe resulting path in \"result.\"\n\nChange-Id: Ic25244665b6691a7df0b0002a09da73d937b553b\n"
    },
    {
      "commit": "1c8c179dbfee88749101155c1cd7b430d1a8e75c",
      "tree": "79c5f80adea43ecd3ba76f5a233d861f05372158",
      "parents": [
        "97d01407c7db6aeaa9dd100fc95e5b549921b777"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Tue Jul 30 11:05:09 2013 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Tue Jul 30 11:35:14 2013 +0100"
      },
      "message": "Unhide WebView.evaluateJavascript(..)\n\nCTS test is now added, so we are now ready to unhide.\n\nBug: 9814043\nChange-Id: I9970b7010300b1b0644498f0359ca3840410dcea\n"
    },
    {
      "commit": "d979208974d995438ebd51e8070eaeabf63461db",
      "tree": "6473cce070d055cf030782a06feb6395409890a8",
      "parents": [
        "bf36ee2b0c49241e073da14ee1e1a08b8550f3b9"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Jul 26 20:24:34 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Mon Jul 29 22:09:08 2013 +0000"
      },
      "message": "Relax restriction on Colormatrix and add Add step.\n\nChange-Id: Iccb519bb40f58f02346b5c0a10c1378cb853e3f8\n"
    },
    {
      "commit": "e591b49de038a9942cbcc77540c03e85c96e3dcb",
      "tree": "3bc8b5ae1d6db61c137dac96d77777db2d28032f",
      "parents": [
        "d06db894b2b092e95fc19bf993bfc5bab7a486b1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 24 19:15:00 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 19:33:54 2013 -0700"
      },
      "message": "single buffer mode for SurfaceTexture\n\nBug: 9891035\nChange-Id: Ib9cc2b64f7ff3c084ef1d7db442db8e7a24a923d\n"
    },
    {
      "commit": "9f213c8b648c06e781911c12d6c12f6a6606f6d2",
      "tree": "578f1ec578705834318daeb6e9e5f879c5109087",
      "parents": [
        "54e5f0eb7634c42b702f8ac0bb7cc2a48f0bc14c",
        "2ca204e4c0ba805c8fa0db79eeac9608d01cf5b4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 20:56:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 26 20:56:23 2013 +0000"
      },
      "message": "Merge changes I487d4eef,Ia750811f\n\n* changes:\n  get rid of PixelFormatInfo and simplify things\n  get rid of PIXEL_FORMAT_A_8\n"
    },
    {
      "commit": "1d766b53217f9e45472a01e84d2f1b02af36dec7",
      "tree": "5408fa90569c4d35467ab508f7f58fd41eb832cb",
      "parents": [
        "d547bcec5634f99195a2b12522b6977f61c40d55"
      ],
      "author": {
        "name": "Mattias Petersson",
        "email": "mattias.petersson@sonyericsson.com",
        "time": "Fri Oct 07 09:33:52 2011 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Fri Jul 26 18:42:34 2013 +0000"
      },
      "message": "Add support for MNC\u003d00\n\nThis adds support for operators with MNC (Mobile Network Code) zero\nto add customized resources. For example, it makes it possible to\nadd a folder called \"/res/values-mnc00/\" in an application. This will\ncause resources in that folder to be used when MNC is zero.\n(There is a total of 14 countries that have an operator with MNC\nzero.)\n\nWithout this fix, the resource framework gets confused, because MNC 0\nis normally used when the MNC is undefined (not set).\n\nBug: 7170488\nChange-Id: Icfd39fd0c739216e89446252ea0e7ceba6f002c6\n"
    },
    {
      "commit": "437d77011876b66e69a52572a5f7d083b1103f4c",
      "tree": "1ce03ba758d39d14f7f9e7945ca53225b216efaa",
      "parents": [
        "701ace2e68a6ca0af0a013dd3df4fc7cec327cc4",
        "c3178e5f1c346ad5faa926a6765147840116f4a7"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Jul 26 16:52:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 26 16:52:55 2013 +0000"
      },
      "message": "Merge \"Change XML-grammar for (Off)HostApduServices.\""
    },
    {
      "commit": "2ca204e4c0ba805c8fa0db79eeac9608d01cf5b4",
      "tree": "f5619d2405b25c23a516a899649da4ec395ec980",
      "parents": [
        "6f7b58917104916ee6afd6f246c251c1d7a2102a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 19:25:10 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 19:25:10 2013 -0700"
      },
      "message": "get rid of PixelFormatInfo and simplify things\n\nChange-Id: I487d4eef7db0095ace4babf5bb100a8769711257\n"
    },
    {
      "commit": "c3178e5f1c346ad5faa926a6765147840116f4a7",
      "tree": "385b97016b9da10edca9556969c1811e35fde6a3",
      "parents": [
        "434249ef62dcb10ce3c0e0207435a23fb880e0ce"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jul 25 17:43:47 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jul 25 17:43:47 2013 -0700"
      },
      "message": "Change XML-grammar for (Off)HostApduServices.\n\nAIDs can now carry a category attribute. Clarified that\n\"OffHostApduService\" is not bound to by Android, and may\nbe extended by offering service interfaces that are not\ndefined in the platform.\n\nChange-Id: Idd0a3990beb927e8d81366013f53386fb46e3f9f\n"
    },
    {
      "commit": "f7e843e3a27774b59860aa46913309b7c0683f18",
      "tree": "eb9b65f306f8c46a0d5d78ba2a7b48ce8c0d4fd3",
      "parents": [
        "2e012206475eb77a2c7e9c6b9536163c7d63a06e",
        "fa77418134c6f1f80af225a78819f069e9c974fb"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed Jul 24 22:41:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 24 22:41:22 2013 +0000"
      },
      "message": "Merge \"AnonymousSyncService \u0026 SyncRequest.\""
    },
    {
      "commit": "fa77418134c6f1f80af225a78819f069e9c974fb",
      "tree": "b4fd04dcefae8302e8e209f3ca29275a79df93a5",
      "parents": [
        "7bfddb5434736a26fa9b32d7cd1741067169ae74"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Tue Jun 18 15:44:11 2013 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Wed Jul 24 15:25:29 2013 -0700"
      },
      "message": "AnonymousSyncService \u0026 SyncRequest.\n\nChanges to the way bundles are parcelled broke SM,\nthis update writes out the bundle as xml. This circumvents\nthe need for parcel, and makes it easier to debug whats\nhappening.\nChange-Id: I6cd5d3a2eb80bfa5b3ae0c7f2d2ff91a65daaa34\n"
    },
    {
      "commit": "87c79a18fe03de3b141b95336199b7504ac95c6c",
      "tree": "19ba2f16230a518de279ecdf01367aa0eae37c78",
      "parents": [
        "e8b68c45f84f07e6d04fca90782556a775105910",
        "ef79380d2f57f87c1f6859a6ec6ceb40bcb794ff"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Jul 24 18:16:16 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 24 18:16:16 2013 +0000"
      },
      "message": "Merge \"Add secure settings for captions\""
    },
    {
      "commit": "dc56ceb6a1096123b31de7b20a8dfd879f5e6d48",
      "tree": "fa9b59bb6c12eb7f500c63fdd89f2bfb0e64a492",
      "parents": [
        "e58bb044701d0b092fb09103f14d9406a497c65b",
        "a418cf21c9d03c1435e9adec3e025387b6345cd9"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jul 24 00:06:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 24 00:06:34 2013 +0000"
      },
      "message": "Merge \"New permission to manage device admins\""
    },
    {
      "commit": "7ea1ab60b0c970f5d079ea7b8974929ab201345e",
      "tree": "f2ef023384321441764802eab4e290a459013df8",
      "parents": [
        "eb2fded0d3fc95ca887b99149585fd1db8840346",
        "434249ef62dcb10ce3c0e0207435a23fb880e0ce"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Jul 23 22:27:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 23 22:27:05 2013 +0000"
      },
      "message": "Merge \"Re-use \"name\" attribute for NFC AIDs.\""
    },
    {
      "commit": "ef79380d2f57f87c1f6859a6ec6ceb40bcb794ff",
      "tree": "820d9d9f5f61efd844d57ee02bf2e14bba48231c",
      "parents": [
        "209bede6b9edb9171e5bee4077b48e35004a37b4"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Jul 23 14:15:28 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Jul 23 14:15:28 2013 -0700"
      },
      "message": "Add secure settings for captions\n\nBUG: 9926077\nChange-Id: I202aef88943e1f884e5bd4c112f081b8b4b76ada\n"
    },
    {
      "commit": "b1f5585f89c49690b1263daba419a394af58cc41",
      "tree": "ca985f29362c994b38faf4495bcd0b50f61d3edf",
      "parents": [
        "922a8c0aa8b9ea278c6d5dc21498930dab47ea75",
        "ac6c78b6eef49f5c1ab2a346d90ccb99ccec18f4"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jul 23 20:52:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 23 20:52:57 2013 +0000"
      },
      "message": "Merge \"Add controller numbers for gamepads / joysticks\""
    },
    {
      "commit": "ac6c78b6eef49f5c1ab2a346d90ccb99ccec18f4",
      "tree": "18f7a2e4727360f0431697e995d865a8d2f8944d",
      "parents": [
        "6944165014bf026e24aafe0cb359d7aad66bea7b"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Jul 17 13:21:45 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jul 23 13:50:10 2013 -0700"
      },
      "message": "Add controller numbers for gamepads / joysticks\n\nChange-Id: I30ac9add6a2473a5ebd83a022c571545e61d1136\n"
    },
    {
      "commit": "57a7f5954cf1f9cbe99c70133863049a4be2e983",
      "tree": "a657b5ca567729d7d2b94af792c6dc6540e522ed",
      "parents": [
        "5cf6663c80a9b6039cc70cc9b4041af64f671571"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 22 18:21:32 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 23 11:51:22 2013 -0700"
      },
      "message": "Add \"adb shell am restart\" command.\n\nSo you can restart the system without being root.\n\nChange-Id: I89770f497833ecbe2b69e3a0cfafae7ef472a9f5\n"
    },
    {
      "commit": "9dade39ec3af5f9c59583de074aaba12b1a13aad",
      "tree": "54c4de599fa53f093649bff13cc66c0ab5eb5097",
      "parents": [
        "2352228ff185722c62c95a64fdf0896603e19dc8",
        "0343ec3abb205b21d554ab432710ff854f3d9d75"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jul 23 16:21:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 23 16:21:48 2013 +0000"
      },
      "message": "Merge \"User restriction API to disable single-user restrictions feature.\""
    },
    {
      "commit": "0343ec3abb205b21d554ab432710ff854f3d9d75",
      "tree": "856cfb8984a449fbab998b73b84f3087f5a53548",
      "parents": [
        "6944165014bf026e24aafe0cb359d7aad66bea7b"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jul 22 14:52:06 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jul 23 09:17:21 2013 -0700"
      },
      "message": "User restriction API to disable single-user restrictions feature.\n\nChange-Id: I80e08b38b5e32f3cb1af51398907510508ec199f\n"
    },
    {
      "commit": "434249ef62dcb10ce3c0e0207435a23fb880e0ce",
      "tree": "6d3887e81644844f0e30eb0aa1c80d590c6767af",
      "parents": [
        "fd23eca5ba30a1624233c9597f8c4b9db790994b"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 19:47:57 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 19:47:57 2013 -0700"
      },
      "message": "Re-use \"name\" attribute for NFC AIDs.\n\nChange-Id: I92895e0f21a639897c45ec184580c43ba8b22dca\n"
    },
    {
      "commit": "fd23eca5ba30a1624233c9597f8c4b9db790994b",
      "tree": "a2be0ee9098508844075b7ab73b95c602c1ddb59",
      "parents": [
        "23425433288644ec2999fb5f5506d60e139148c4",
        "5eaa8970aa86fa32a6cbb47e0681000ed2d22c57"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 23:20:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 22 23:20:01 2013 +0000"
      },
      "message": "Merge \"First shot at (host-based) card emulation APIs.\""
    },
    {
      "commit": "ce1279686b17940127292aa815d46dc1cc4d71af",
      "tree": "fa452e482e8f4395edcb6cc500556fc0f4b2d23c",
      "parents": [
        "03903b3bc8fb592884421c2a5f8c6266ff2b4881",
        "f4bf158328fd1bcb171baab043460efd5c58152c"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 22:29:21 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 22 22:29:21 2013 +0000"
      },
      "message": "Merge \"Add host-based card emu feature to PackageManager.\""
    },
    {
      "commit": "26bd5f1d3a7ca944ccb669238ed6128f7cf7c1b3",
      "tree": "36df1f3c704aa07d1e141105d593b7cc6256c6ef",
      "parents": [
        "36ceea801bd295fe81115e4be903b4d9f5faa6b9",
        "88d199130d44c6bacb383a7757e782cf97483c68"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jul 22 20:08:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 22 20:08:16 2013 +0000"
      },
      "message": "Merge \"Implement persistence/restoring of print spooler state.\""
    },
    {
      "commit": "88d199130d44c6bacb383a7757e782cf97483c68",
      "tree": "454e94ec561afdb80a9ed209e12540c70e5df8eb",
      "parents": [
        "597945fd3a6b52ac70bb9afc5ec8c59039fffd77"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jul 22 12:32:03 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jul 22 13:07:09 2013 -0700"
      },
      "message": "Implement persistence/restoring of print spooler state.\n\n1. Implemented the persistence and restoring of the print spooler state.\n   The print spooler state is saved as an XML on every print job change\n   and is restored when we bind to the spooler. The system does not\n   unbind from the spooler until the state persistence completes. We\n   are now storing the entire state, i.e. all print jobs, when a single\n   one changes. This is not optimal but we are not expecting to have\n   many such at the same time, so for now we err for simplicity of\n   implementation.\n\n2. Enforcing a non-empty print job name.\n\n3. Hidden the STATE_CREATED print job state which should never be visible to a\n   client since this is the state of a print job during construction, i.e. the\n   print dialog is up and we are doing back and forth with the app.\n\n4. Fixed some PrintAttributes APIs that were incorrectly taking in a PackageManager\n   instance.\n\n5. Updated the PrintSpooler build file due to splitting the framework into multiple\n   jars.\n\nChange-Id: I52c88eaa1ec9c64920359cc143c79832a4c3d25b\n"
    },
    {
      "commit": "f4bf158328fd1bcb171baab043460efd5c58152c",
      "tree": "399f991127cc66bd76914a454304e2837c19e4ea",
      "parents": [
        "525b7c020b326c2cffde67d7850c720cf3300437"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 12:01:19 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 12:10:18 2013 -0700"
      },
      "message": "Add host-based card emu feature to PackageManager.\n\nChange-Id: Id55025e5ab8443be1e6ac23ac5d9ab93565a53f0\n"
    },
    {
      "commit": "a418cf21c9d03c1435e9adec3e025387b6345cd9",
      "tree": "b691a777835058a197b8fb47fba313e52b33b4fc",
      "parents": [
        "5846f7c9d81417006674419d7c649a15a38b87b7"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jul 19 12:39:17 2013 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jul 22 10:42:46 2013 -0700"
      },
      "message": "New permission to manage device admins\n\nThe previously used permission was doing double duty as the permission\nthat device admins to check for to ensure that calls are coming from valid\nsystem components.\n\nMANAGE_DEVICE_ADMINS is system|signature and is now required to add/remove\ndevice admins.\n\nRequired for:\nBug: 9856348\n\nChange-Id: I64385d2ec734c3957af21b5a5d9cffd8a3bcd299\n"
    },
    {
      "commit": "5eaa8970aa86fa32a6cbb47e0681000ed2d22c57",
      "tree": "b920f6996568ae4efb38744fd87bdeb64c658893",
      "parents": [
        "525b7c020b326c2cffde67d7850c720cf3300437"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Jul 18 09:49:41 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Jul 22 10:20:49 2013 -0700"
      },
      "message": "First shot at (host-based) card emulation APIs.\n\nHostApduService: convenience service class for implementing\na service that registers a set of ISO7816-4 AIDs and emulates\nthe corresponding application inside the service itself.\n\nSeApduService: convenience service class for implementing\na service that registers a set of ISO7816-4 AIDs that reflect\napplications installed on an embedded secure element or UICC. Contains\nevent hooks to allow the service to handle eSE/UICC events that\ncorrespond to those AIDs.\n\nChange-Id: I44191bd4abcbbe4f1fd36a9fd42639fe5c0cf496\n"
    },
    {
      "commit": "57ceaaa0aa1fece02ff82cd903a26bdf65131c56",
      "tree": "e0df7a21eea660c1ddc6faa51370b0ba37861e05",
      "parents": [
        "a5bc070e9e7c802b32f0230c670838536a1612f4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jul 19 16:30:43 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jul 19 18:11:45 2013 -0700"
      },
      "message": "Add AlarmManager.setWindow(...) for supplying an explicit delivery window\n\nBug 9532215\n\nChange-Id: I0efe32cbaaae8ce6ab223041eed116c3470a7326\n"
    },
    {
      "commit": "757ec7837db85eae675cda5cfaf94040268327fd",
      "tree": "991bc319605a4def26ae54ba62112de9088dd57d",
      "parents": [
        "94edfc99c8cd28db28e26aec6bb8300e59ad29db",
        "e7d309a929bf87a5752cd1fb2d48c72e47a671a2"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Jul 19 17:38:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 19 17:39:28 2013 +0000"
      },
      "message": "Merge \"LocalSocket: Add support for SOCK_DGRAM and SOCK_SEQPACKET\""
    },
    {
      "commit": "1a80cfe9685a4d61f9697415a74f197df33f0671",
      "tree": "8130925699e451ff98b8dd2ea963ffe16e1d1a11",
      "parents": [
        "059bf080fb29abc7b3fe3e848e68cd105c4f7528",
        "e0a22b324d0e3157e570ea5f71cc682fa9696e01"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jul 19 00:22:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 19 00:22:59 2013 +0000"
      },
      "message": "Merge \"Batch alarms to reduce device wakeups\""
    },
    {
      "commit": "ef5498edf62eb439b4c3f980422c3513e23b5ee9",
      "tree": "c77eb5743dba0b53a1dda9766e240477621843b8",
      "parents": [
        "350503fba389a753cbb92864c36864830fdd8efe",
        "c84d203da21c3ae3ded94c79c035d41b27809b3b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 18 22:55:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 18 22:55:44 2013 +0000"
      },
      "message": "Merge \"Add reconfigure method to Bitmap\""
    },
    {
      "commit": "cacfe69b6845dd1c1c8682f67c3c52ef35214b2c",
      "tree": "59a27a3612efaa1038dc15e9e02f5a0d6eb59591",
      "parents": [
        "5bc32b347f83099772fe5596615d88e4d0a7d813"
      ],
      "author": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Jul 11 17:16:53 2013 -0700"
      },
      "committer": {
        "name": "Justin Koh",
        "email": "justinkoh@google.com",
        "time": "Thu Jul 18 10:46:19 2013 -0700"
      },
      "message": "Add FX_KEYPRESS_INVALID constant to AudioManager.\n\nAdd FX_KEYPRESS_INVALID constant to AudioManager. This is a sound which should\nplay if the user tries to click or press on an element which is disabled.\n\nChange-Id: Idd8953abeddd1afb51f7f190f9fb612ef672defa\n"
    },
    {
      "commit": "dc990e7c61430156b05563417b979e0858baf9da",
      "tree": "98d53d9405436d83bfff8bcd8db817108de25614",
      "parents": [
        "cdce4835fb072fb28f500c15afe16ea259213891",
        "6283608e0bd40548742839f5a8b02f7e5c9c5c7c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 17 22:05:21 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 17 22:05:21 2013 +0000"
      },
      "message": "Merge \"Tweak the print APIs.\""
    },
    {
      "commit": "6283608e0bd40548742839f5a8b02f7e5c9c5c7c",
      "tree": "77dac4aaf04f2b2727289d2ee4bfefe06322e32e",
      "parents": [
        "17b7f6e6d4ec9f5e9597bfd283f1c017b6c66275"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 17 14:52:35 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jul 17 14:55:15 2013 -0700"
      },
      "message": "Tweak the print APIs.\n\n1. Adding bundle with metadata to PrintDocumentAdapter#onLayout\n   with one key for now to specify whether this is for a preview.\n\n2. Cleaned up docs.\n\nChange-Id: I89380781bf3ae41aa89f8a0347d74516a210394c\n"
    },
    {
      "commit": "e0a22b324d0e3157e570ea5f71cc682fa9696e01",
      "tree": "80cd7a4d74b646269f80ce2e01cc33c160761c13",
      "parents": [
        "209bede6b9edb9171e5bee4077b48e35004a37b4"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 11 14:43:13 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 17 14:37:12 2013 -0700"
      },
      "message": "Batch alarms to reduce device wakeups\n\nThe default Alarm Manager behavior for KLP+ apps will be to aggressively\ncoalesce alarms, trading exact timeliness of delivery for minimizing the\nnumber of alarm-delivery points, especially wakeup points.\n\nThere is new API in AlarmManager, setExact() and setExactRepeating(),\nfor use by apps that absolutely *must* get their alarms at a specific\npoint in time.\n\nBug 9532215\n\nChange-Id: I40b4eea90220211cc958172d2629664b921ff051\n"
    },
    {
      "commit": "c84d203da21c3ae3ded94c79c035d41b27809b3b",
      "tree": "ba05e5fbfa04ce5a40d760fd5a70edc065f4574c",
      "parents": [
        "e77d6dd94371b97a8fac21a60b804b4f99559eab"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 12 19:35:52 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 17 12:08:01 2013 -0700"
      },
      "message": "Add reconfigure method to Bitmap\n\nbug:9797004\n\nGrants a means to reuse a bitmap\u0027s allocation for different\nwidth/height/Config without going through\nBitmapFactoryOptions.inBitmap\n\nChange-Id: Ib62319f3bd96c451fc1636288adf06a8275b4e3d\n"
    },
    {
      "commit": "7a46dde1ae56a85fcb5cdac91173424b6355bf3c",
      "tree": "c8b3d72acfd800331f6e4fc466e87d570dbfd012",
      "parents": [
        "4a8baef3f56042ab4592db030c61af0a4c632d15"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Jul 17 10:22:53 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Jul 17 10:22:53 2013 -0700"
      },
      "message": "Changed name of recent hasLayout() method to isLaidOut()\n\nThis new method on view reflects whether the view has been laid out\nat least once since it was attached. hasLayout() seems too vague for that\nmeaning; every View that has a parent has a layout (since we use container,\nparent, and layout interchangeably). The new version of the method\nis closer to the actual meaning.\n\nChange-Id: I519745739b6a6317faeb077aa61f994025cf81f3\n"
    },
    {
      "commit": "4a8baef3f56042ab4592db030c61af0a4c632d15",
      "tree": "1b3c8fc391cf8fae5ca73a04416563a8f8603e09",
      "parents": [
        "332d84a567786a100a831957812237ce6df5a2c8",
        "3e82ba1a67b0c756ab6a289985f4cfc53725b311"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jul 17 00:53:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 17 00:53:33 2013 +0000"
      },
      "message": "Merge \"Make ArrayMap public! :)\""
    },
    {
      "commit": "e7d309a929bf87a5752cd1fb2d48c72e47a671a2",
      "tree": "aad61534331dbd95e621def2ce1ecfed9c90039a",
      "parents": [
        "cdae0f3c608ed5aee5ddbdf9c54ac86a5619e64b"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Jul 16 11:36:22 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Jul 16 17:31:15 2013 -0700"
      },
      "message": "LocalSocket: Add support for SOCK_DGRAM and SOCK_SEQPACKET\n\nAlso replaced some JNI code with libcore IO support\n\nChange-Id: I091e2b6b8dd1fec554936c1ffab29e50f0979e4a\n"
    },
    {
      "commit": "3e82ba1a67b0c756ab6a289985f4cfc53725b311",
      "tree": "1683ef4d66151ff27b7afe1c7257abceee69654b",
      "parents": [
        "cdae0f3c608ed5aee5ddbdf9c54ac86a5619e64b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 16 13:23:55 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 16 17:08:04 2013 -0700"
      },
      "message": "Make ArrayMap public! :)\n\nAlso do some tweaking of the various container classes\nto synchronize them with the support lib and make it\neasier to copy code between the two.\n\nAnd update activity/fragment to use ArrayMap.\n\nChange-Id: I3cfe82392a17119dfc72c3d9961f64e1914f42be\n"
    },
    {
      "commit": "17b7f6e6d4ec9f5e9597bfd283f1c017b6c66275",
      "tree": "2cd220ff7f122c9aeb0648089ec2b98f289b6cde",
      "parents": [
        "29b173ae072cd486ca91940eef7a6ed2298e55d0"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 24 18:29:33 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 16 14:39:32 2013 -0700"
      },
      "message": "Clean up of the print APIs.\n\n1. Fixed a case in which the onPrintCompleted callback may not be invoked.\n\n2. Added string resulrces for the different error messages for failed\n   printing in OnPrintCompletedCallback\n\n3. Fixed the string comments for the MediaSize constants.\n\n4. Added APIs to create certain print attributes by passing in a\n   string label instead of resource and package name since in some cases\n   a print service may be getting already internationalized lables\n   or it may not know all possible values.\n\n5. Fixed a crash in PrintJobConfigActivity if there is no input or\n   output tray.\n\nChange-Id: Ie877b7dc669051606394aa290e6d2b979a42db4c\n"
    },
    {
      "commit": "c59df3caeb9a7825d7fe34075ed0ea07b924e5c7",
      "tree": "d1be26836e463a50107ab0021e35b95174738725",
      "parents": [
        "5ab422bfa34f0fd64b6bef25287e7250f80de4ba",
        "a00271533f639c8ed36429c663889ac9f654bc72"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 16 20:01:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 16 20:01:34 2013 +0000"
      },
      "message": "Merge \"Refactoring of the print sub-system and API clean up.\""
    },
    {
      "commit": "a00271533f639c8ed36429c663889ac9f654bc72",
      "tree": "7f0c8045126bc0493c1fa018a114f803d34fa7ef",
      "parents": [
        "15ecbdd2e373195ef920faefa349a6e62200d1f1"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jun 25 14:59:53 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jul 16 12:59:59 2013 -0700"
      },
      "message": "Refactoring of the print sub-system and API clean up.\n\n1. Now a user state has ins own spooler since the spooler app is\n   running per user. The user state registers an observer for the state\n   of the spooler to get information needed to orchestrate unbinding\n   from print serivces that have no work and eventually unbinding from\n   the spooler when all no service has any work.\n\n2. Abstracted a remote print service from the perspective of the system\n   in a class that is transparently managing binding and unbinding to\n   the remote instance.\n\n3. Abstracted the remote print spooler to transparently manage binding\n   and unbinding to the remote instance when there is work and when\n   there is no work, respectively.\n\n4. Cleaned up the print document adapter (ex-PrintAdapter) APIs to\n   enable implementing the all callbacks on a thread of choice. If\n   the document is really small, using the main thread makes sense.\n\n   Now if an app that does not need the UI state to layout the printed\n   content, it can schedule all the work for allocating resources, laying\n   out, writing, and releasing resources on a dedicated thread.\n\n5. Added info class for the printed document that is now propagated\n   the the print services. A print service gets an instance of a\n   new document class that encapsulates the document info and a method\n   to access the document\u0027s data.\n\n6. Added APIs for describing the type of a document to the new document\n   info class. This allows a print service to do smarts based on the\n   doc type. For now we have only photo and document types.\n\n7. Renamed the systemReady method for system services that implement\n   it with different semantics to systemRunning. Such methods assume\n   the the service can run third-party code which is not the same as\n   systemReady.\n\n8. Cleaned up the print job configuration activity.\n\n9. Sigh... code clean up here and there. Factoring out classes to\n   improve readability.\n\nChange-Id: I637ba28412793166cbf519273fdf022241159a92\n"
    },
    {
      "commit": "fe4fb365baf73da6b34150eec97b5e2ee58905f4",
      "tree": "ea3877ecbdd525014b8b12c229f0f9adbe277866",
      "parents": [
        "2d48f0690a7afbe5b81cf9e5f5cbc7e2a6c82f5a",
        "0a55c94730d1d9ff836330979533c2e6736d6116"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Jul 16 13:37:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 16 13:37:18 2013 +0000"
      },
      "message": "Merge \"Un@hide View.PRESSED_STATE_SET.\""
    },
    {
      "commit": "20555cb6455c790cdeff493edb239d2f7320eb98",
      "tree": "19b8afb6895047cdd30c100db1d28567b89f5f6a",
      "parents": [
        "15ecbdd2e373195ef920faefa349a6e62200d1f1",
        "bfdad8ecad06f855c8facf72177b0f01919ff629"
      ],
      "author": {
        "name": "michaelwr",
        "email": "michaelwr@google.com",
        "time": "Tue Jul 16 01:38:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 16 01:38:46 2013 +0000"
      },
      "message": "Merge \"Add a keycode to switch audio tracks (1/2)\""
    },
    {
      "commit": "6c1c0b6cbecf0cd0486a9a781da5e6f9bd2c0eaa",
      "tree": "0426bb630ecbe38fba4864baedb054370a48392d",
      "parents": [
        "c3bdf87505e7a84d9f484e3bf28a217f7fc086c6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 12 16:56:34 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 15 15:08:39 2013 -0700"
      },
      "message": "Declare permission for accessing input flinger.\n\nChange-Id: I2914b301b74e0d310a9e95e2d6fb5cb72d3e3703\n"
    }
  ],
  "next": "648e4fc7ad7db0f2c73851cf05ca3862029db8b7"
}
