)]}'
{
  "log": [
    {
      "commit": "8ee4491dc80943429cd79d0c7b87c28056067a58",
      "tree": "01f7d248819b144af599976124b54e5260f177c1",
      "parents": [
        "b68d38e81fd779011e478dcf9911fbe77f71f20e",
        "e05077d78c9abde054a754db53e71c647b9a705c"
      ],
      "author": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Tue Mar 25 03:46:17 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 03:46:17 2014 +0000"
      },
      "message": "am e05077d7: am 83da75d9: Added a private apis jar that includes explicitly supported APIs that are not useful for 3rd party developers.\n\n* commit \u0027e05077d78c9abde054a754db53e71c647b9a705c\u0027:\n  Added a private apis jar that includes explicitly supported APIs that are not useful for 3rd party developers.\n"
    },
    {
      "commit": "e05077d78c9abde054a754db53e71c647b9a705c",
      "tree": "b8ec86abda3a577af60bdfd5c4f2e5b39abd74b3",
      "parents": [
        "529d47ace907c9d961e2c1fb2e4e68ff24833e72",
        "83da75d938d519bbcffb9c3b52802fd2daad4aee"
      ],
      "author": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Sat Mar 22 23:35:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Mar 22 23:35:00 2014 +0000"
      },
      "message": "am 83da75d9: Added a private apis jar that includes explicitly supported APIs that are not useful for 3rd party developers.\n\n* commit \u002783da75d938d519bbcffb9c3b52802fd2daad4aee\u0027:\n  Added a private apis jar that includes explicitly supported APIs that are not useful for 3rd party developers.\n"
    },
    {
      "commit": "83da75d938d519bbcffb9c3b52802fd2daad4aee",
      "tree": "cc3373a15f1c36bcaa2948496fafe69bf0709a29",
      "parents": [
        "ba126c09a5c00cb0a96da6ece0b4ab4d7ed2d8cb"
      ],
      "author": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Wed Mar 19 16:41:49 2014 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Sat Mar 22 13:33:43 2014 -0700"
      },
      "message": "Added a private apis jar that includes explicitly supported APIs that are not useful for 3rd party developers.\n\nThe first set of these APIs is for telephony:\n\nAdded some APIs to ITelephony and created a first party framework for them\n\ntoggleHold()\nmerge()\nmute(boolean mute)\nplayDtmfTone(char digit, boolean timedShortCode)\nstopDtmfTone()\nswap()\naddListener(ITelephonyListener listener)\nremoveListener(ITelephonyListener listener)\n\nBug: 13302451\nChange-Id: Iefec5688c26a1b4fe77f5643eba6e1690a057ee6\n"
    },
    {
      "commit": "4f512fb451c8ddcea852645c5c24314c20c0974b",
      "tree": "315ec495986e5dfff86f21705045de17b4f63764",
      "parents": [
        "fd6b99750bfab7f930ee375a79009874a3196165"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Fri Feb 28 17:41:17 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu Mar 20 16:40:22 2014 +0900"
      },
      "message": "Add HDMI-CEC service\n\nThis CL adds a system service handling HDMI-CEC protocol. The service\nis equipped with the capability sending/receiving HDMI-CEC messages\n\nNot all the messages are in place. Currently it has messages to support\na few features only, as follows:\n\n- One touch play\n- System information\n- Routing control (partially - active source status maintenance only)\n- Device OSD transfer\n- Power status\n\nIt will be extended to cover the wider usages in the follow up CLs.\n\nThe CEC standard version referenced in the implementation is 1.3a.\n\nChange-Id: Ifed0b02f52ebf098eddb3bd0987efbf353b7e8fe\n"
    },
    {
      "commit": "2687550272ba061448f5d5b914700dc335299ee7",
      "tree": "fc68c5ecec24ec2aa120ccf490d7a56573704a73",
      "parents": [
        "d43ad2f35abcc647f7985abd09ed9de5899faf18"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 30 21:47:47 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 13:39:13 2014 -0800"
      },
      "message": "Add a new \"doze mode\" based on Dream components.\n\nWhen a doze component has been specified in a config.xml resource\noverlay, the power manager will try to start a preconfigured dream\nwhenever it would have otherwise gone to sleep and turned the\nscreen off.  The dream should render whatever it intends to show\nthen call startDozing() to tell the power manager to put the display\ninto a low power \"doze\" state and allow the application processor\nto be suspended.  The dream may wake up periodically using the\nalarm manager or other features to update the contents of the display.\n\nAdded several new config.xml resources related to dreams and dozing.\nIn particular for dozing there are two new resources that pertain to\ndecoupling auto-suspend mode and interactive mode from the display\nstate.  This is a requirement to enable the application processor\nand other components to be suspended while dozing.  Most devices\ndo not support these features today.\n\nConsolidated the power manager\u0027s NAPPING and DREAMING states into one\nto simplify the logic.  The NAPPING state was mostly superfluous\nand simply indicated that the power manager should attempt to start\na new dream.  This state is now tracked in the mSandmanSummoned field.\n\nAdded a new DOZING state which is analoguous to DREAMING.  The normal\nstate transition is now: AWAKE -\u003e DREAMING -\u003e DOZING -\u003e ASLEEP.\nThe PowerManager.goToSleep() method now enters the DOZING state instead\nof immediately going to sleep.\n\nWhile in the doze state, the screen remains on.  However, we actually\ntell the rest of the system that the screen is off.  This is somewhat\nunfortunate but much of the system makes inappropriate assumptions\nabout what it means for the screen to be on or off.  In particular,\nscreen on is usually taken to indicate an interactive state where\nthe user is present but that\u0027s not at all true for dozing (and is\nonly sometimes true while dreaming).  We will probably need to add\nsome more precise externally visible states at some point.\n\nThe DozeHardware interface encapsulates a generic microcontroller\ninterface to allow a doze dream for off-loading rendering or other\nfunctions while dozing.  If the device possesses an MCU HAL for dozing\nthen it is exposed to the DreamService here.\n\nRemoved a number of catch blocks in DreamService that caught Throwable\nand attempted to cause the dream to finish itself.  We actually just\nwant to let the process crash.  Cleanup will happen automatically if\nneeded.  Catching these exceptions results in mysterious undefined\nbehavior and broken dreams.\n\nBug: 12494706\nChange-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b\n"
    },
    {
      "commit": "820bb4bdd358bfaac446b8ce4af5474dcfc77613",
      "tree": "77a866fb85f29e9a3064c7a6d2017be1ad4fb289",
      "parents": [
        "4b79f8380c47b0da89348e1115ea70e7898997ca",
        "9c50271dc34e48d527db7da85c3b3474574faee2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:50:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:50:08 2014 +0000"
      },
      "message": "am 9c50271d: am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u00279c50271dc34e48d527db7da85c3b3474574faee2\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "9c50271dc34e48d527db7da85c3b3474574faee2",
      "tree": "6be07da13b021b342917a7f38d62bc9e2a2c55a1",
      "parents": [
        "acec746b8963410d4a9324df46272ac91f846868",
        "257f67249afb017c9a3d0a79e545da567aa5bd02"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:47:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:47:02 2014 +0000"
      },
      "message": "am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u0027257f67249afb017c9a3d0a79e545da567aa5bd02\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "257f67249afb017c9a3d0a79e545da567aa5bd02",
      "tree": "98b6c9521df98bb7da5daa5bb3fa1f8a2cd2516b",
      "parents": [
        "55362018c9dfadff5eb1a138a1d90187110c253e",
        "35cb4e49365a8a8da0607c2659399aaad9ea5a1c"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:44:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:44:38 2014 +0000"
      },
      "message": "am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u002735cb4e49365a8a8da0607c2659399aaad9ea5a1c\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "35cb4e49365a8a8da0607c2659399aaad9ea5a1c",
      "tree": "bb189c3451dcc50eefe4a789cc5604e53395935c",
      "parents": [
        "271c8f12c88e87563ed17f4ad29610037bd300be"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Feb 07 21:05:43 2014 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Feb 12 19:38:51 2014 -0800"
      },
      "message": "Doc change: add new samples TOC groups and landing pages.\n\nChange-Id: I2f39e82fb79d4f19362d9fe2deafdde5d87873a7\n"
    },
    {
      "commit": "4a1cb22056112f7ffd5f4fad8b7a092b96e7cc7b",
      "tree": "2a30eb0760369a59905895e88f8325fbf9934414",
      "parents": [
        "3bcdbd6b2d96427d7cee835e9ed79aeed51de267"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 04 16:14:06 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 18 15:08:15 2013 -0800"
      },
      "message": "Pair ActivityStacks with Displays\n\n- Introduce concept of ActivityStacks residing on Displays and able\nto be decoupled and moved around.\n- Add a new interface, IActivityContainer for clients to handle\nActivityStacks.\n- Abandon ordering of stacks based on mStackState and instead use\nActivityDisplayInfo.stacks\u003cActivityStack\u003e ordering.\n\nProgress towards closing bug 12078972.\n\nChange-Id: I7785b61c26dc17f432a4803eebee07c7415fcc1f\n"
    },
    {
      "commit": "b33fe50a634e4fde635f7e662526db1c3e2cfa5c",
      "tree": "879eee3a2b7e7d84da31eec07eb0adbb2c1e4689",
      "parents": [
        "59595f7a3e8efcefc62bbcf8e085b6da6d8ea339",
        "dcbde1b02ad69c18509afd87974c72c3a22f45dd"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Dec 05 09:47:04 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 05 09:47:04 2013 -0800"
      },
      "message": "am dcbde1b0: Merge \"libcore_to_document and junit_to_document are no longer functions.\"\n\n* commit \u0027dcbde1b02ad69c18509afd87974c72c3a22f45dd\u0027:\n  libcore_to_document and junit_to_document are no longer functions.\n"
    },
    {
      "commit": "50a0fd50f7f76a76d068690e63194169da292215",
      "tree": "047df7122cc0db914c98aeb835ffc93513a5a4fd",
      "parents": [
        "453a5233086b216f2a95d0879954a2af39279095"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:58:59 2013 -0800"
      },
      "message": "libcore_to_document and junit_to_document are no longer functions.\n\nThey are evaluated only once in the corresponding export .mk file.\nThis fixes build log spam reported in:\nhttps://code.google.com/p/android/issues/detail?id\u003d63184\n\nChange-Id: I549eb052272bbdebef8fca697822f5eaa0fe5764\n"
    },
    {
      "commit": "0b492138c744299e695b6aeee24eebb880de1c7d",
      "tree": "e582ef3e2e39f8bbb5d8353862766514dbaf8975",
      "parents": [
        "a0501105723ac742114ee07bd610ddf5e2713c82",
        "6000f1ed3d402e3136df173d987c901cc3cc1ff2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat Nov 23 20:28:04 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 23 20:28:04 2013 +0000"
      },
      "message": "am 6000f1ed: Re-enable samples browser.\n\n* commit \u00276000f1ed3d402e3136df173d987c901cc3cc1ff2\u0027:\n  Re-enable samples browser.\n"
    },
    {
      "commit": "6000f1ed3d402e3136df173d987c901cc3cc1ff2",
      "tree": "0557a5c04a9d77be369a7adca4400c1438e9188a",
      "parents": [
        "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 14:01:48 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 14:01:48 2013 -0800"
      },
      "message": "Re-enable samples browser.\n\nChange-Id: I9d0c5966422ba0cf8bca576895f30679d40a19ab\n"
    },
    {
      "commit": "a0501105723ac742114ee07bd610ddf5e2713c82",
      "tree": "0353ca6728bb248423777658c3957ecc6ed3aadf",
      "parents": [
        "8b5da35670960586d5b41ee101026b89522ceb74",
        "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 18:55:28 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 18:55:28 2013 +0000"
      },
      "message": "am 9eaa9443: Disable samples browsing temporarily.\n\n* commit \u00279eaa94439121f6cb03bff8ecf0acbcbc74442f2d\u0027:\n  Disable samples browsing temporarily.\n"
    },
    {
      "commit": "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d",
      "tree": "8878d78f64ffbd32e6c842788e15ccf896bdcc75",
      "parents": [
        "1448d3cd81a685c68b0102e8303c0db4e6e5668f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:46:22 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:46:22 2013 -0800"
      },
      "message": "Disable samples browsing temporarily.\n\nChange-Id: I65fe533f1b43903d6605d17691ec142d062b6b5e\n"
    },
    {
      "commit": "8b5da35670960586d5b41ee101026b89522ceb74",
      "tree": "e582ef3e2e39f8bbb5d8353862766514dbaf8975",
      "parents": [
        "263c431017c51fc51c85454a0f9cc7979001a3c1",
        "1448d3cd81a685c68b0102e8303c0db4e6e5668f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 18:38:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 18:38:20 2013 +0000"
      },
      "message": "am 1448d3cd: Merge \"Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\" into klp-docs\n\n* commit \u00271448d3cd81a685c68b0102e8303c0db4e6e5668f\u0027:\n  Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n"
    },
    {
      "commit": "5c678cedb5970b1d7c4090b8e8c308c4978a3e01",
      "tree": "09da5206a6eb82542102ab7991bd836d493ef180",
      "parents": [
        "43eea0a640db07c4da05146f7e68eae567592bdb"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Nov 21 18:11:58 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Nov 21 18:39:57 2013 -0800"
      },
      "message": "Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n\nChange-Id: If59372a92f0572d54af0f2ed7f9f9e401fbce067\n"
    },
    {
      "commit": "a9a39d6ca25796ba0fcf16ead3a9928f36b6444d",
      "tree": "55db1c489b48c71b8683b009cedc244452af0a58",
      "parents": [
        "26574688b627f5b5d722834d73cba5f37185770f",
        "acca12faea5fc1c9de63fdc08ae4d6bc0bad864a"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Nov 20 02:16:21 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 20 02:16:21 2013 +0000"
      },
      "message": "am acca12fa: Merge \"Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\" into klp-docs\n\n* commit \u0027acca12faea5fc1c9de63fdc08ae4d6bc0bad864a\u0027:\n  Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\n"
    },
    {
      "commit": "5f0462a4f57d857a7fda3c5b7ecc075c7b9c1f6f",
      "tree": "6da5b08e8437620f5b94b6cfb9d6724aea596bbe",
      "parents": [
        "abb4d2da4374eb5e5e7a750e4b60a9145b1b1058"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 19 13:15:07 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 19 17:55:49 2013 -0800"
      },
      "message": "Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\n\nChange-Id: Ia75712323563cf56f0224822cb7977f3421f8527\n"
    },
    {
      "commit": "5182ea4bb20ec8fbe9562d0eaae8135d433ea0b6",
      "tree": "31d81e7502c6e021ca685e0f5aa4a12a4d822b2c",
      "parents": [
        "eb223425e38cd9a3da12cd38c8c41e696c6b7e96",
        "d40a4d74c623175c96a2e9d865a99826e56d1132"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 17:41:44 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 07 17:41:44 2013 -0800"
      },
      "message": "am d40a4d74: Merge \"Add media router service and integrate with remote displays.\" into klp-dev\n\n* commit \u0027d40a4d74c623175c96a2e9d865a99826e56d1132\u0027:\n  Add media router service and integrate with remote displays.\n"
    },
    {
      "commit": "eb223425e38cd9a3da12cd38c8c41e696c6b7e96",
      "tree": "6601e0ea09e4cb1b1efadac484e124a6efb51d07",
      "parents": [
        "94cab389e4f81d454316789fb0a6fbe954080a08",
        "1f7a8a06256907e03405f89108f081289c23e97a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 17:41:41 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 07 17:41:41 2013 -0800"
      },
      "message": "am 1f7a8a06: Merge \"Add a platform library for remote display providers.\" into klp-dev\n\n* commit \u00271f7a8a06256907e03405f89108f081289c23e97a\u0027:\n  Add a platform library for remote display providers.\n"
    },
    {
      "commit": "d40a4d74c623175c96a2e9d865a99826e56d1132",
      "tree": "8fcb8823aab60b909ff4962d5b00fdd5681ad806",
      "parents": [
        "1f7a8a06256907e03405f89108f081289c23e97a",
        "69b07161bebdb2c726e3a826c2268866f1a94517"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 08 01:36:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 08 01:36:55 2013 +0000"
      },
      "message": "Merge \"Add media router service and integrate with remote displays.\" into klp-dev"
    },
    {
      "commit": "1f7a8a06256907e03405f89108f081289c23e97a",
      "tree": "8ef01bc8a8f7b2b7edfa3cb1633dc2c0f2f5b882",
      "parents": [
        "1e45fd78090693c5eff346feb32bab90f31a5e30",
        "f3c99e883f46c56e5e2877e844b902b6eb45545b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 08 01:36:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 08 01:36:41 2013 +0000"
      },
      "message": "Merge \"Add a platform library for remote display providers.\" into klp-dev"
    },
    {
      "commit": "69b07161bebdb2c726e3a826c2268866f1a94517",
      "tree": "8d9c94f32a045a8f5c48ca0f1380abc760eac807",
      "parents": [
        "f3c99e883f46c56e5e2877e844b902b6eb45545b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 00:30:16 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 03:25:37 2013 -0800"
      },
      "message": "Add media router service and integrate with remote displays.\n\nThis change adds a new media router service whose purpose is to track\nglobal state information associated with media routes.  This service\npublishes routes to the media router instance in application processes\nand handles requested state changes such as selecting or unselecting\nglobal routes.  The service also binds to remote display provider\nservices which can offer new remote display routes to the system.\n\nIncludes a test application for manually verifying certain aspects\nof the operation of the media router service.\n\nThe remote display provider interface is essentially a stripped down\nmedia route provider interface as defined in the support library\nmedia router implementation.  For now, it is designed to be used only\nby first parties to publish remote display routes to the system so\nit is not exposed as public API in the SDK.  In the future, the remote\ndisplay provider interface will most likely be deprecated and replaced\nwith a more featureful media route provider interface for third\nparty integration, similar to what is in the support library today.\n\nFurther patch sets integrate these new capabilities into the System UI\nand Settings for connecting remote displays.\n\nBug: 11257292\nChange-Id: I31109f23f17b474d17534d0f5f4503e388b081c2\n"
    },
    {
      "commit": "f3c99e883f46c56e5e2877e844b902b6eb45545b",
      "tree": "0a6ade21b7a25f51a21e15a5fd6776bb15fac977",
      "parents": [
        "170735d46001659e64522f451681a0618685efc6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 05 16:29:21 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 01:58:15 2013 -0800"
      },
      "message": "Add a platform library for remote display providers.\n\nThis interface allows applications to register services that offer\nremote displays to the system.  The system will then provide UI\nto allow user to connect to these displays and enable mirroring.\n\nBug: 11257292\nChange-Id: I34da5b9dfdaf71267bd3450c505bc1b7368d1b40\n"
    },
    {
      "commit": "03ec3428c9bcd8f8a8b58f79c2fc99a65097e1c5",
      "tree": "1f5034c380772f78d163a25948296489a32ba9ce",
      "parents": [
        "4cf4f5213e496b8862aa2d88d00eb0c734598072"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:54:38 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:54:38 2013 -0700"
      },
      "message": "fix build\n\nChange-Id: I9916113fde67afa04789f451355da215f9b015f7\n"
    },
    {
      "commit": "4cf4f5213e496b8862aa2d88d00eb0c734598072",
      "tree": "fb8804922f1eeb32262ca749ffd31a0fce6b31ed",
      "parents": [
        "19f05adbee3c755daf8417d6de4fae831e7cc446"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:52:39 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:53:46 2013 -0700"
      },
      "message": "add storage provider sample to build\n\nChange-Id: I76f1e64f68b9db7c39ab3ec9bbbe0ecdd7729ae6\n"
    },
    {
      "commit": "36265698315f3ec5470d1c61ec6082b230d84674",
      "tree": "799a51d70738c311ac55e8f2d94fa0a2ed33fac4",
      "parents": [
        "790f9183aef321e3b0dc5396e71abf495c72b551"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Oct 30 00:22:16 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 31 16:59:42 2013 +0000"
      },
      "message": "Enable samples browsing in builds.\n\nChange-Id: Ic47ef693dd5b2cd4010e68a600cae3b88d426bd2\n(cherry picked from commit e8b32feb72bf4347c1bd98e6b21b18a506d2c5e3)"
    },
    {
      "commit": "e8b32feb72bf4347c1bd98e6b21b18a506d2c5e3",
      "tree": "143321f0d3fd1aedb7760def3abc14aab489779b",
      "parents": [
        "0e29faacecdb728e2878c799da8532e33539f046"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Oct 30 00:22:16 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Oct 30 23:04:38 2013 -0700"
      },
      "message": "Enable samples browsing in builds.\n\nChange-Id: Ic47ef693dd5b2cd4010e68a600cae3b88d426bd2\n"
    },
    {
      "commit": "c5f168a6942cf43ad53b5f961a575dcb7009a32c",
      "tree": "756a88be2fbedbf6108858444e1562cfa60b24e2",
      "parents": [
        "e5c1208ef9ef7d10b5bae6c82b9eb5a92da1244e"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Oct 29 20:59:20 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Oct 29 20:59:20 2013 -0700"
      },
      "message": "Doc change: add new list of browseable samples and sample groups.\n\nChange-Id: I5f0c6899a34ada9f8dfc492f849c9e03203bc920\n"
    },
    {
      "commit": "858a1850e2e1c4516129d27ecdf54aaeade606ca",
      "tree": "2f5d1c2a61b5e131e842f148dba7bd90d2a7845c",
      "parents": [
        "b346270dde839029f9d4994cf2c3fc670a4249a6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Oct 17 22:20:40 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 18 13:12:06 2013 -0700"
      },
      "message": "Hide the print dialog if the printing activity is destroyed.\n\n1. For an app to print it creates a PrintDocumentAdapter implementation\n   which is passed to the print dialog activity. If the activity that\n   created the adapter is destroyed then the adapter, which may rely on\n   the activity state, may be in an invalid state. For example, an app\n   creates an adapter and calls print resuting in the app activity and\n   the print dialog activity being stacked. Now the user rotates the\n   device which triggers the recreating of the activity stack (assume the\n   app does not handle rotation). The recreated print dialog activity\n   receives the intent that originally created it with containing the\n   adapter that was constructed in the context of the old, now destroyed,\n   app activity instance.\n\n   To handle this we are limiting an app to be able to print only from\n   and activity and when this activity is destroyed we mark the adapter\n   as invalid which will result in hiding the print dialog activity. Note\n   that if the app process is killed we already handle this in the print\n   dialog activiy by registering a death recipient on the adapter binder.\n\n2. In the PrintManager.PrintDocumentAdapterDelegate some of the state is\n   accessed only on the main thread and some from miltiple threads. The\n   code was trying to avoid locking for state that is not accessed by\n   multiple threads but this is error prone and the benefit does not\n   justify the complexity and added fragility. Now grabbing a lock all\n   the time.\n\n3. The PrintJobConfigActivity waits for it to bind to the print spooler\n   service before instantiating its print controller and editor. However,\n   these can be accessed by invoking some of the activity cycle callbacks.\n   This change is adding null checks for the case where the activity\n   callbacks are called before the binding to the spooler is completed.\n\nbug:11242661\n\nChange-Id: Id906b3170e4f0a0553772dfa62686f06fdca0eaf\n"
    },
    {
      "commit": "7bfbbcb04bf4ba8f3069b2df136f708c9849bacf",
      "tree": "da453e5f618eacb7cf63de3ef1344507feeecb0a",
      "parents": [
        "1db8cf12a985425a73d24875d9d308c14c0b4359"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Oct 10 13:36:23 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 11 09:11:24 2013 -0700"
      },
      "message": "Refactor how the print dialog activity is started.\n\n1. Before the print job activity was started asyncronously with\n   respect to the print call on to the print manager. This was\n   creating a situation where the starting activity may finish\n   before the print dialog appears which may lead to an orphaned\n   print document adapter with no data to print (as the UI is\n   is gone), or strange behaviors where the print dialog starts\n   on as a separate task.\n\n   To address this the pending intent for starting the print\n   dialog is not started by the print spooler since we cannot\n   call into it synchronously as we have to start its process\n   and bind to the spooler service which leads to jankyness in\n   the client app. Now the pending intent is created by the\n   print manager service in the synchronous print call so\n   from an app\u0027s perspective calling print starts the activity.\n\n   The side effect of this design is that the print dialog\n   activity may start before the system is bound to the spooler\n   service. In such a case the print activity cannot start\n   poking the print spooler state as the system registers\n   callback to observe the spooler state. To address this\n   the print spooler activity disables the UI and also binds\n   to the spooler service which happenes immediately after it\n   is started. As soon as the print dialog binds to the\n   service it starts the UI.\n\n2. Fixed an bug in the printer adapter of the print dialog that\n   was leading to a crash if the only item in the adater is the\n   all pritners option and it is selected.\n\n3. Piping the package name that started the printing so we can\n   pass it to the storage UI as a hint to open the last location\n   the app used.\n\nbug:11127269\n\nChange-Id: Ia93820bdae0b0e7600a0930b1f10d9708bd86b68\n"
    },
    {
      "commit": "332408f86290bc02090d69f3a4b08ed959d93b62",
      "tree": "2eeed11bad77d3ebf469150ca3bf2d6a6ce777c0",
      "parents": [
        "29268255078f05f2441311de94f903e18747e323"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Oct 04 13:43:26 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Oct 04 16:17:50 2013 -0700"
      },
      "message": "update version number for doc stamp\n\nChange-Id: I881510209a56204a464df082840d2dde56312303\n"
    },
    {
      "commit": "49551ad60b17ab05cb1ab70f528c6fd1dcac1ad1",
      "tree": "d8a248f40777ec47ede07e3ca4dad486991a05fe",
      "parents": [
        "76a5c86df7902870c87ff07ffd0628cb10f32c00"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Oct 03 16:46:53 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Oct 03 16:46:53 2013 -0700"
      },
      "message": "add -since flag for api level 19 to filter javadocs\n\nChange-Id: I96e7e31f93b1e3c3877a342b84fb069bda5d92e3\n"
    },
    {
      "commit": "65cacb3c5174f93debd481c7d573f34bc36f80f4",
      "tree": "6ea8b470578995dcb8974ea62c43c2a35ef72b05",
      "parents": [
        "026dc1432ef70308ef44dafcc28998436e304e75",
        "43e51a3580f0c4b694143e8e4e194a715873bf26"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Mon Sep 30 17:18:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 17:18:51 2013 +0000"
      },
      "message": "Merge \"Add android.provider.Telephony to public API.\" into klp-dev"
    },
    {
      "commit": "704697b6197262678e930daa831a1916ddee4dcf",
      "tree": "9c486dcdc7e3986004147505c8dc7bc2e030bd02",
      "parents": [
        "0d38d0b42fba7dc50454d5c0652cf351c58a9db6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Sep 21 20:30:24 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Sep 25 17:57:07 2013 -0700"
      },
      "message": "Adding hidden APIs for observing the print jobs state.\n\nThis is needed for implementing the print job settigns UI.\n\nbug:10935736\n\nChange-Id: I63b42cbf4ce6a259fa1af47fa368b148ca5621c1\n"
    },
    {
      "commit": "43e51a3580f0c4b694143e8e4e194a715873bf26",
      "tree": "401e0647dea9635597e866705033d0e3348ca9b5",
      "parents": [
        "254f5ffc47fe26d48fe3fd9f3bc513805dd04ac5"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Wed Sep 18 13:18:09 2013 -0700"
      },
      "committer": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Tue Sep 24 15:54:00 2013 -0700"
      },
      "message": "Add android.provider.Telephony to public API.\n\nAdd directory containing android/provider/Telephony.java to build.\nAdd unhidden Telephony fields and classes to api/current.txt.\n\nBug: 10653081\nChange-Id: Ib4ba66e09be5320d35257fcf481db58f840fdc53\n"
    },
    {
      "commit": "312c495f4b8d002264772f61fe1fa3ef87bf3e52",
      "tree": "8508f800432e603ae76330fa3d0c358fe4a85c03",
      "parents": [
        "cac2428da4a22d9526af09e1457a6b644b2c2057",
        "6f8a68f49a7e8cf86104e721a1e8be7568b5f730"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Sep 13 20:31:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 13 20:31:54 2013 +0000"
      },
      "message": "Merge \"Guarantee that PAC Local Proxy owns Port\" into klp-dev"
    },
    {
      "commit": "6f8a68f49a7e8cf86104e721a1e8be7568b5f730",
      "tree": "dbe5e5d7001b191c376d3ba3510cbf6f7f309279",
      "parents": [
        "86d9c457de3285f01552d4046a8a260c7a75147f"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Aug 23 19:21:25 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Sep 13 09:53:26 2013 -0400"
      },
      "message": "Guarantee that PAC Local Proxy owns Port\n\nThis changes the PAC support to not broadcast the Proxy information until\nthe Local Proxy has started up and successfully bound to a port so that\nthe local proxy information can be guaranteed to be owned by the proxy.\n\nBug: 10459877\nChange-Id: I175cd3388c758c55e341115e4a8241884b90d633\n"
    },
    {
      "commit": "16dae5997bb0ff7f03d5a0ccfdc4be94aa35ba51",
      "tree": "03235cf3705470f343adf4645ee649137389a79d",
      "parents": [
        "43c70b0ccface3e7e0730d9bc0a46b90f16c4b17",
        "834ba47485a5fb55c89d8f22b826bdb26049f6d6"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Sep 12 09:28:18 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 12 09:28:18 2013 -0700"
      },
      "message": "am 834ba474: am 4c6cde54: am 89579294: Merge \"Pass whitelist of sample groups to doclava.\" into jb-mr2-docs\n\n* commit \u0027834ba47485a5fb55c89d8f22b826bdb26049f6d6\u0027:\n  Pass whitelist of sample groups to doclava.\n"
    },
    {
      "commit": "834ba47485a5fb55c89d8f22b826bdb26049f6d6",
      "tree": "ab635eb653f5d09f31a39c1dac339aa0be70a70c",
      "parents": [
        "eacfc308344b34d27b7cd2ab8cc0fbdefbcc8167",
        "4c6cde545c5d2e76d9ba8ef926399463369da7e7"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Sep 12 09:22:20 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 12 09:22:20 2013 -0700"
      },
      "message": "am 4c6cde54: am 89579294: Merge \"Pass whitelist of sample groups to doclava.\" into jb-mr2-docs\n\n* commit \u00274c6cde545c5d2e76d9ba8ef926399463369da7e7\u0027:\n  Pass whitelist of sample groups to doclava.\n"
    },
    {
      "commit": "a6c02679e11fddccdae176edb5f8797e267e5131",
      "tree": "98d86d0a7492971c89e658a1f73c208e0c49fb8f",
      "parents": [
        "dd93ae32a8d50147a95a270cc99f9474dbf9ee27"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Sep 11 11:53:35 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Sep 12 00:37:50 2013 -0700"
      },
      "message": "Pass whitelist of sample groups to doclava.\n\nChange-Id: I36f3e3426115cc296531cf41d20ab07a4d429b19\n"
    },
    {
      "commit": "7563d42331ed7df7f026c8921ae990ce2fca9efd",
      "tree": "04ec8a1746321f55edf783bb4bceb6485879dd63",
      "parents": [
        "f702286c94f0df9fc147135c19f12ef34e8594c9",
        "51e95df8f24e9ea30775686b9e324b9a671213dc"
      ],
      "author": {
        "name": "Alexander Ray",
        "email": "aray@google.com",
        "time": "Wed Sep 11 19:05:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 11 19:05:38 2013 +0000"
      },
      "message": "Merge \"Add consumer IR framework\" into klp-dev"
    },
    {
      "commit": "65a6ba347848069b198869a7500d07a419aaf15d",
      "tree": "d90fdc6a2e3041b32cc9c80f2c49f9c032e46b6e",
      "parents": [
        "d9f4e0cf2c2466d9e05f8562e55d342934f7ed0d"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Sep 11 09:48:00 2013 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Wed Sep 11 11:01:13 2013 -0700"
      },
      "message": "Remove HotwordRecognition APIs\n\n- and its usage from Keyguard\n\nBug: 10708010\nChange-Id: Ic4a695a1d0e9312706a3b4ff01e59e2567b6ad9c\n"
    },
    {
      "commit": "51e95df8f24e9ea30775686b9e324b9a671213dc",
      "tree": "15f7e3d722629532c612d10bce41d496729a3c27",
      "parents": [
        "2f1ef77c07da2ed7168f75551dd632026b20f8cc"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Jun 26 11:06:51 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Wed Sep 11 09:52:47 2013 -0700"
      },
      "message": "Add consumer IR framework\n\nChange-Id: I786c00db0cce61ef75e4edc24e90f2cdcba6dbfb\n"
    },
    {
      "commit": "2069b00416c5da60a84ad75a9a9efe56a455e187",
      "tree": "caffd91a159175783fe5c26432c3437751ad7b01",
      "parents": [
        "533e118f5ad37005a77a2a6edc60afc56034d1e9",
        "76fcf6c73e7dda99ec80e6da616bee26c2a088e6"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Sep 04 22:29:02 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 04 22:29:02 2013 -0700"
      },
      "message": "am 76fcf6c7: am 07c9bcc3: am 4ef51c3c: Merge \"Add a few more samples to browser.\" into jb-mr2-docs\n\n* commit \u002776fcf6c73e7dda99ec80e6da616bee26c2a088e6\u0027:\n  Add a few more samples to browser.\n"
    },
    {
      "commit": "76fcf6c73e7dda99ec80e6da616bee26c2a088e6",
      "tree": "8c1a1e7edb53241e89a392fa018f34736be09fd8",
      "parents": [
        "323af8b49df3535977b5aa7f5b31c429d8a50f10",
        "07c9bcc3a60a8860b65aa43badd8ab1f1858522b"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Sep 04 22:26:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 04 22:26:54 2013 -0700"
      },
      "message": "am 07c9bcc3: am 4ef51c3c: Merge \"Add a few more samples to browser.\" into jb-mr2-docs\n\n* commit \u002707c9bcc3a60a8860b65aa43badd8ab1f1858522b\u0027:\n  Add a few more samples to browser.\n"
    },
    {
      "commit": "2826df3f3d4ef1433703c617891f0c871216d380",
      "tree": "73ed2ec2bfe79150933f1d6684cee6d92290b54e",
      "parents": [
        "5e52ee6ecf08b299b433104798e736e2bc3904d5"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Sep 03 15:32:24 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Sep 04 21:55:47 2013 -0700"
      },
      "message": "Add a few more samples to browser.\n\nChange-Id: Iac7acc22a8dd71950b32e2c35c82f53abc34168a\n"
    },
    {
      "commit": "5b1e032ea7c06ab11d778264dd950009fcb93cc5",
      "tree": "69b8691184cde10bbf629921a4a17e0e419f7078",
      "parents": [
        "52c10e94d98e32d977bfd4021136f4c9fa571bd6"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Sep 02 20:38:47 2013 -0700"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Sep 02 20:43:57 2013 -0700"
      },
      "message": "Reader mode NFC API: move to callback model.\n\nUsing intents for reader mode doesn\u0027t work well for 2 reasons:\n1) Intents are used to resolve, but in reader mode we already\n   know where to resolve to. Additionally, dispatching an intent\n   causes additional latency.\n2) Using intents with foreground dispatch was tricky; for every\n   call to onNewIntent() with a new tag, there was a call to\n   onPause(), which effectively disabled reader mode again,\n   causing a discovery loop.\n\nInstead, let the app register a callback, and call that when\nwe discover a new tag. Also, add new flag to disable platform\nsounds, and to change the presence check delay.\n\nBug: 10360259\nChange-Id: I8373543d6cf2f7ca73c9b3e42bb8b51e3ac48cac\n"
    },
    {
      "commit": "b0a17400cbf96ebb179e9125524f52117981d1a9",
      "tree": "33fe40c7426704b34a7fd04c75da335537e76685",
      "parents": [
        "ca915793500c5db9476e21d029e836b78d580863",
        "637cc458096f2f9ad53728dfb9ab0511c08b4837"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Tue Aug 27 00:38:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 27 00:38:40 2013 +0000"
      },
      "message": "Merge \"Add Service API to perform Hotword recognition\" into klp-dev"
    },
    {
      "commit": "637cc458096f2f9ad53728dfb9ab0511c08b4837",
      "tree": "2e3df3f494e4ea5026a70d04e652d5f1a01ad73f",
      "parents": [
        "ff796e5a24481febd8c07b1a6a3c3eda0e3fd88b"
      ],
      "author": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Fri Aug 23 16:40:08 2013 -0700"
      },
      "committer": {
        "name": "Sandeep Siddhartha",
        "email": "sansid@google.com",
        "time": "Mon Aug 26 17:32:16 2013 -0700"
      },
      "message": "Add Service API to perform Hotword recognition\n\nChange-Id: I855330b255a12cce309aa11e0b7cde5b8e061043\n"
    },
    {
      "commit": "44720af55a8fdf991929983dad5d53c02851dd1e",
      "tree": "a8d00a35c432ab3f5fc19afe21e4492d28578645",
      "parents": [
        "4359d56420b114f433ba4187c2d1f341bb35c938"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 16:32:53 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Aug 23 18:36:33 2013 +0000"
      },
      "message": "Print UI bug fixing and printer discovery refactoring.\n\n1. Added support for selecting a printer from the all printers activity\n   that is not in the initial printer selection drop down. The user\n   initially sees a sub set of the printers in the drop down and the\n   last option is to see all printers in a separate activity. Some\n   of the printers in the all printers activity are not shown in the\n   initial drop down.\n\n2. Refactored printer discovery by adding (private for now) printer\n   discovery app facing APIs. These APIs are needed to support multiple\n   printer selection activities (print dialog and all printers activities)\n   and also the settings for showing all printers for a service.\n\n   Now multiple apps can request observing for printers and there is\n   a centralized mediator that ensures the same printer discovery\n   session is used. The mediator dispatches printer discovery specific\n   requests to print services. It also aggregates discovered printers\n   and delivers them to the interested apps. The mediator minimizes\n   printer discovery session creation and starting and stopping discovery\n   by sharing the same discovery session and discovery window with\n   multiple apps. Lastly, the mediator takes care of print services\n   enabled during discovery by bringing them up to the current\n   discovery state (create discovery session and start discovery if\n   needed). The mediator also reports disappearing of the printers\n   of a service removed during discovery and notifies a newly\n   registered observers for the currnet printers if the observers are\n   added during an active printer discovery session.\n\n3. Fixed bugs in the print UI and implemented some UX tweaks.\n\nChange-Id: I4d0b0c5a6c6f1809b2ba5dbc8e9d63ab3d48f1ef\n"
    },
    {
      "commit": "e9a0601e6e518b7a46460045b1bcfe76492ec513",
      "tree": "c4fbf4678a90388c517e4b2b1709653301d800e7",
      "parents": [
        "83e1015d73d80416d514ad40ad871a01f5181eeb",
        "978ec174fbbbda4a844178f645e83365861a0d4c"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Aug 22 10:13:29 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 22 10:13:29 2013 -0700"
      },
      "message": "am 978ec174: am de525b44: am 2a4f71df: Merge \"Temporarily disable sample code html generation in docs builds.\" into jb-mr2-docs\n\n* commit \u0027978ec174fbbbda4a844178f645e83365861a0d4c\u0027:\n  Temporarily disable sample code html generation in docs builds.\n"
    },
    {
      "commit": "978ec174fbbbda4a844178f645e83365861a0d4c",
      "tree": "823c63143d45f5754d5e44c3d3588fee1b3aaa54",
      "parents": [
        "fdc3c0ef90fa4b8c6130714b71b478c1e7a25a91",
        "de525b442f6a0a467074ab216543c3372786139e"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Aug 22 10:10:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 22 10:10:52 2013 -0700"
      },
      "message": "am de525b44: am 2a4f71df: Merge \"Temporarily disable sample code html generation in docs builds.\" into jb-mr2-docs\n\n* commit \u0027de525b442f6a0a467074ab216543c3372786139e\u0027:\n  Temporarily disable sample code html generation in docs builds.\n"
    },
    {
      "commit": "a345833acecfef8adc43507a8053bdaa6f637fa9",
      "tree": "6c653b480fbd43e1b6e16ffa8fd335e6c12376c5",
      "parents": [
        "9d237204da9b000c5debfa1f5650d13a545bb7c8"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Aug 21 14:47:12 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Aug 21 14:52:00 2013 -0700"
      },
      "message": "Temporarily disable sample code html generation in docs builds.\n\nChange-Id: Ibcf0e4d5ab63968211528f528cc5bee914d7a556\n"
    },
    {
      "commit": "ff796e5a24481febd8c07b1a6a3c3eda0e3fd88b",
      "tree": "2ee074ef02867deb1bcfc2ac0762f7c49e939ed6",
      "parents": [
        "59bbba7c37f2ce7b7fd00aef87b49d681b4a3a79",
        "9ced3cd9d6ea414523051ec872fffc68f5fdbf08"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 20 23:35:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 20 23:35:26 2013 +0000"
      },
      "message": "Merge \"Change PacProcessor to Android Service\" into klp-dev"
    },
    {
      "commit": "9ced3cd9d6ea414523051ec872fffc68f5fdbf08",
      "tree": "22d49c8bde1a17da9c9ff1588a3af3e176d0173a",
      "parents": [
        "58514937628dfcf3b2949e4cbc45d5526ecb8019"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Mon Aug 12 16:42:38 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Aug 20 17:36:39 2013 -0400"
      },
      "message": "Change PacProcessor to Android Service\n\nThis switches the PacProcessor over to an Android Service.  The service\nis bound and unbound by the PacManager, which also adds it to the\nServiceManager, allowing for Context-Free access by the PacProxySelector\nin all DVMs.\n\nbug:10182711\nChange-Id: Id1ff7660be56e8976cdcccd76e041feb47a17a61\n"
    },
    {
      "commit": "d30921672ca3022107ce63f750b0f35ab224af4b",
      "tree": "ea943a3b1250c9b3b075ea7c6096efd90baa9650",
      "parents": [
        "2365745855ac4725949ebe9bae72fdc0613bb94f",
        "269403b032f965ff3847eb982c2f697229dc5a92"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Aug 20 20:42:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 20 20:42:05 2013 +0000"
      },
      "message": "Merge \"Implemented advanced printer selection and API refactoring.\" into klp-dev"
    },
    {
      "commit": "269403b032f965ff3847eb982c2f697229dc5a92",
      "tree": "96ef6d8d99f7cbd56d78c63bf5e4da78a42831c1",
      "parents": [
        "b93489270d41bbaf513f0018164ab8b6d6ca9519"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Aug 14 17:31:04 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Aug 19 13:24:11 2013 -0700"
      },
      "message": "Implemented advanced printer selection and API refactoring.\n\n1. Added past printer history tracking and merging favorite printers\n   with discovered printers.\n\n2. Added save as PDF support.\n\n3. Added all printers activity with search capability and optional\n   add printers chooser (if any print service provides add printers\n   activity)\n\n4. Refactored the printer discovery session APIs. Now one session\n   can have multiple window discovery windows and the session stores\n   the printers found during past discovery periods.\n\n5. Merged the print spooler and the print spooler service - much\n   simpler and easier to maintain.\n\nChange-Id: I4830b0eb6367e1c748b768a5ea9ea11baf36cfad\n"
    },
    {
      "commit": "cb13399c1b3a0067a6b5b81cd3dc3833a5e9dcd9",
      "tree": "4202f13be328bbbb06e983386634cac78e63da0b",
      "parents": [
        "4d0145add16bccb6b0f4a7d767a0b052f1b6bb04",
        "2d9ee70703cb52a16d726eb177f6f4e0be4f93e2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Aug 19 12:14:17 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 19 12:14:17 2013 -0700"
      },
      "message": "am 2d9ee707: am 364fe3a8: am b6bc020d: doc change: Samples browsing first changes: Samples dir and file starters.\n\n* commit \u00272d9ee70703cb52a16d726eb177f6f4e0be4f93e2\u0027:\n  doc change: Samples browsing first changes: Samples dir and file starters.\n"
    },
    {
      "commit": "2d9ee70703cb52a16d726eb177f6f4e0be4f93e2",
      "tree": "a84bc18735694c0ddc015b489807cf935ee6ccf1",
      "parents": [
        "59616de7ea4719cc3a6f75f8d4ff80d7d735d8c1",
        "364fe3a856e7bd0c0a35724c2f42d381d8616370"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Aug 19 12:12:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 19 12:12:05 2013 -0700"
      },
      "message": "am 364fe3a8: am b6bc020d: doc change: Samples browsing first changes: Samples dir and file starters.\n\n* commit \u0027364fe3a856e7bd0c0a35724c2f42d381d8616370\u0027:\n  doc change: Samples browsing first changes: Samples dir and file starters.\n"
    },
    {
      "commit": "b6bc020d728960dc876a510c9e40cc441a9a9b6b",
      "tree": "017d36b47c93d2bdc5ed03eda0690c563672f46f",
      "parents": [
        "b4f96287285cd0886954d1576157b7a38995af88"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Jul 09 13:18:15 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Aug 19 11:19:38 2013 -0700"
      },
      "message": "doc change: Samples browsing first changes: Samples dir and file starters.\n\nChange-Id: I6cc8c03bf4c2bcc771d4531619db5b3acd62601f\n"
    },
    {
      "commit": "5c7e64609c4de93cd70c2cbe238a5fc3ff3c6078",
      "tree": "5601c7e6ce5320f7bd197ef1bcb9833ee8a632e4",
      "parents": [
        "7a8d9d6fecb31124ad1ec349944659a2f5672776",
        "0682809ad08db284d7110aab44108d5e9c310e6b"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Tue Aug 13 23:56:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 23:56:31 2013 +0000"
      },
      "message": "Merge \"Add support in the platform for Flp Geofencing.\" into klp-dev"
    },
    {
      "commit": "7a8d9d6fecb31124ad1ec349944659a2f5672776",
      "tree": "7c11702e6c0b7fa30a63e80bca9d463dfae3e579",
      "parents": [
        "ba5e533eda951a7e97b4471db2be1954f6c21276",
        "0451d59ba2d768e7653752028910f00a6c96e64e"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 13 23:22:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 23:22:52 2013 +0000"
      },
      "message": "Merge \"Add support for batched wifi scans.\" into klp-dev"
    },
    {
      "commit": "0682809ad08db284d7110aab44108d5e9c310e6b",
      "tree": "2aa38602adac05aa16f829f995b21d239ba2494c",
      "parents": [
        "f464511a7be2e381f508b5b2b937f19c98d800c2"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Mon Aug 12 18:50:30 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Tue Aug 13 16:00:04 2013 -0700"
      },
      "message": "Add support in the platform for Flp Geofencing.\n\nChange-Id: I0fb0e276d3a06322697bb5d46323779aca1f78c5\n"
    },
    {
      "commit": "0451d59ba2d768e7653752028910f00a6c96e64e",
      "tree": "e9ca4d4d77074b6223ddf07d761fcd679bc1fa6c",
      "parents": [
        "7a605df3137ee571dec855761c0cb15b28513d26"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Aug 01 18:24:13 2013 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Aug 13 14:37:37 2013 -0700"
      },
      "message": "Add support for batched wifi scans.\n\nbug:9301872\n\nChange-Id: I5a7edfdbd2b78a65119d11acad491eae350c0870\n"
    },
    {
      "commit": "c7c4d6dd4df2b177d0b6e382fdcde9bf2032baea",
      "tree": "16844d8d5e02286f09932469c69aaec9bbd4bb9e",
      "parents": [
        "0dd303cfdbd95e4aa0d4221cf547fdcdbc7c3756",
        "798bed6cc7d273e72b0253288605db9cd2b57740"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 21:42:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 11 21:42:54 2013 +0000"
      },
      "message": "Merge \"Refinement of the print service APIs.\" into klp-dev"
    },
    {
      "commit": "798bed6cc7d273e72b0253288605db9cd2b57740",
      "tree": "b4278847c40cf910b69773c6205395ada02543ed",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 12:29:39 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sun Aug 11 14:40:05 2013 -0700"
      },
      "message": "Refinement of the print service APIs.\n\n1. Factored out the printer discovery APIs of a print service in a\n   dedicated session object that is created by the print service on\n   demand. This ensures that added/removed/updated printers from\n   one session do not interfere with another session.\n\n2. Updated the app facing APIs to pass in a document info along\n   with a printed file. Also exposed the print file adapter so\n   apps that create a temporary file for printing can intercept\n   when it is read by the system so the file can be deleted.\n\n3. Updated the print service documentation.\n\nChange-Id: I3473d586c26d8bda1cf7e2bdacb441aa9df982ed\n"
    },
    {
      "commit": "fe3807a5b23f54f6539436d71aa0cd931a2b76f0",
      "tree": "94ba6e1375140799abb46bcd9561a23ff8d626ad",
      "parents": [
        "5af4edef084f4d3f94af71acca53c68929e82008"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Jul 18 17:31:50 2013 -0700"
      },
      "committer": {
        "name": "Zhihai Xu",
        "email": "zhihaixu@google.com",
        "time": "Fri Aug 09 15:01:07 2013 -0700"
      },
      "message": "Bluetooth MAP profile - sms and mms support initial check-in\n\nbug:10116530\n\nChange-Id: I57d022005bcff5bc3e56438a81ac92566f957744\n"
    },
    {
      "commit": "1af4b0280af406cfc7eb46810f6b76e57b983e11",
      "tree": "1f7f8d5a86c8dcd42cb24474e93b58bb0775071e",
      "parents": [
        "8ffe17ae32e72e5d872a36d5048bf912d28e766f"
      ],
      "author": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Fri Jul 12 15:43:36 2013 -0700"
      },
      "committer": {
        "name": "destradaa",
        "email": "destradaa@google.com",
        "time": "Thu Aug 08 15:27:38 2013 -0700"
      },
      "message": "Add FlpHal layer to support Location Batching.\n\nChange-Id: Ia3a57d869dfb3f067a1b95fa66d54f311ddcfdc3\n"
    },
    {
      "commit": "602b232a06ede86999aa362a12eb28cbc782dc1d",
      "tree": "07a2168ba91425f81bd7ac9c9311adb78114cc13",
      "parents": [
        "55db1e1218971105e68ba9d451b2e0b1e9e5f9fb"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Jul 03 17:04:33 2013 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Aug 07 21:01:39 2013 -0400"
      },
      "message": "Add PAC File support for proxy configuration\n\nPAC (Proxy auto-config) files contain a single javascript function,\nFindProxyForURL(url, host).  It gets called to determine what proxy should be\nused for a specific request.\n\nThis adds PAC support to the system.  The ProxyProperties has been modified\nto hold the PAC file when one is present.  The Proxy method\nsetHttpProxySystemProperty has been modified to insert a PacProxySelector\nas the default ProxySelector when it is required.  This new ProxySelector\nmakes calls to the ConnectivityService to parse the PAC file.\n\nThe ConnectivityService and the WifiConfigStore have been modified to support\nsaving the extra PAC file data.\n\nThe ConnectivityService now has a class attached (PacProxyNative) that\ninterfaces to the native calls for PAC files.  The parsing of the PAC file\nis handled by libpac (which is being added to external/) which utilizes\nlibv8 to parse the javascript.\n\nAs a fallback to applications that don\u0027t use the java ProxySelector,  the proxy\nis setup to point to a local proxy server that will handle the pac parsing.\n\nbug:10182711\nChange-Id: I5eb8df893c632fd3e1b732385cb7720ad646f401\n"
    },
    {
      "commit": "23fb6e84182f325f036b1735b817ecc253e2bd19",
      "tree": "39df98e6c5169bbf68a42f6966663fcb0aa50b22",
      "parents": [
        "57e76b405faf154352e17f0114bf6b23aa9ac0f0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 07 10:08:22 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 07 10:08:22 2013 -0700"
      },
      "message": "Start adding IPC calls to retrieve proc stat data.\n\nAlso fix a bug where we were not correctly unparcelling service\nduration data.\n\nChange-Id: Ie9113b2e3a747622441b1939ffc45edb5803a10f\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": "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": "27dfaf3bb19444cd31c78d4c67d402ffa4368a8f",
      "tree": "b96a0a9cc472e3157a8fa5fd6e0ad24539e50d20",
      "parents": [
        "ecf1834b06471d093f3bd5c92eef2993f33a7b40",
        "30483952528469c612c61c7370e99db9e40b3262"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Jul 30 20:14:47 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 20:14:47 2013 -0700"
      },
      "message": "am 30483952: am 1d7516a7: am ec6f327e: update sizes/sums for tools 22.0.5 release also update platform version number for doc builds\n\n* commit \u002730483952528469c612c61c7370e99db9e40b3262\u0027:\n  update sizes/sums for tools 22.0.5 release also update platform version number for doc builds\n"
    },
    {
      "commit": "30483952528469c612c61c7370e99db9e40b3262",
      "tree": "1ff7580830f9c84ad29c3139aa7199a9bb5ea2bf",
      "parents": [
        "8b4b3de1723de2d03fe5f51ab241804a8e350fd2",
        "1d7516a79883dded43e6c370bf071feb9527971e"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Jul 30 20:09:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 20:09:42 2013 -0700"
      },
      "message": "am 1d7516a7: am ec6f327e: update sizes/sums for tools 22.0.5 release also update platform version number for doc builds\n\n* commit \u00271d7516a79883dded43e6c370bf071feb9527971e\u0027:\n  update sizes/sums for tools 22.0.5 release also update platform version number for doc builds\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": "ec6f327ed092f4ad9d919e4e622a13862e932a43",
      "tree": "071f9e6cf188c70c5021d6ea25cf019a851108c7",
      "parents": [
        "37ec33741c5840ce1ae370aa1279215f94075b3a"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Jul 30 10:09:21 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Jul 30 10:10:22 2013 -0700"
      },
      "message": "update sizes/sums for tools 22.0.5 release\nalso update platform version number for doc builds\n\nChange-Id: Ib3e644c3bfe618137516398aebf3f778ebdd1e81\n"
    },
    {
      "commit": "a9de3462a6f4eaea63e12d82aaa0eb5728b1f812",
      "tree": "d5acf616b014f61b6291df319d68a9f6d94e1a04",
      "parents": [
        "0962ff1bcef455f952e76357a81d8278743fe9b6"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed May 22 18:53:29 2013 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Thu Jul 25 02:13:49 2013 +0000"
      },
      "message": "Add libbatteryservice AIDL and java interfaces\n\nAdd IBatteryPropertiesRegistrar and IBatteryPropertiesListener AIDLs,\nBatteryProperties class.\n\nChange-Id: Ic8e71178c02b04868eca29c3da88e877bc2590ca\n"
    },
    {
      "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": "5aa9064ef3c7f6dccd2ca3ee83376b03db0b0ca8",
      "tree": "5a53041bb048223d3128cfb768b12714dcc7edf1",
      "parents": [
        "209bede6b9edb9171e5bee4077b48e35004a37b4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 17 20:44:57 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 17 21:11:33 2013 -0700"
      },
      "message": "Split framework jar.\n\nChange-Id: Ia4bcae15c029fd0efe01dd4527fa3d5b5367b6c8\n"
    },
    {
      "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": "70725500dcf3b666b43d50563d64705aab58d2d3",
      "tree": "ad2d6206c590e11c4b86e871c138f2aabd822956",
      "parents": [
        "e363fbb2647aeb5ef4c87160d84c6b9ae8d45598"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Jun 25 20:27:06 2013 +0000"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 26 13:19:45 2013 -0700"
      },
      "message": "Initial camera device implementation\n\n* Working streaming preview requests only\n* Almost everything else returns empty objects that don\u0027t do anything\n\nBug: 9213377\nChange-Id: Ie6f02a7c0952b0f5ebc41905425b15cae221f7d3\n"
    },
    {
      "commit": "36483e9622b399ea1368fb84ed0c5a5495f65e42",
      "tree": "d85873251b11f21bd14b6bf323f3c3aa553ace69",
      "parents": [
        "59bc67c732eab53b370b196066e8012d3f6bf09a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Jun 25 05:13:55 2013 +0000"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Jun 25 05:13:55 2013 +0000"
      },
      "message": "Revert \"Initial camera device implementation\"\n\nThis reverts commit 59bc67c732eab53b370b196066e8012d3f6bf09a.\n\nChange-Id: I9e1ce3b9f4af4e2b9b98855c0ca533581c87ea7f\n"
    },
    {
      "commit": "59bc67c732eab53b370b196066e8012d3f6bf09a",
      "tree": "9f2a445f86fd3fe0723728348859f49db41dc7cb",
      "parents": [
        "e473f7d8f96b5682141522378b761913192d8114"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 19 17:47:29 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jun 24 17:41:10 2013 -0700"
      },
      "message": "Initial camera device implementation\n\n* Working streaming preview requests only\n* Almost everything else returns empty objects that don\u0027t do anything\n\nBug: 9213377\nChange-Id: I183dd47ddd737ec2c3c374e5c3461542a97f09b0\n"
    },
    {
      "commit": "fd90651cfcc7e2b75254666fd6861038b72fb4ac",
      "tree": "353b9d16b7a1ca29ba3eff59529f08f822cd941a",
      "parents": [
        "53f57d162b0553102fbd5c4ccdda87dbfce5b763"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 24 09:04:48 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 24 09:05:38 2013 -0700"
      },
      "message": "Print APIs documentation update\n\nChange-Id: I0df438e45ef540cc42c9ee5baafc816ebafa1c7b\n"
    },
    {
      "commit": "4b9a4d16872bbb50712e007b419ac0b35ff1582d",
      "tree": "5799cec302adb4db9311bd7a9a889cbd217553a5",
      "parents": [
        "142dd91583f429db43017ada2497d0ecfdc2b392"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jun 11 15:20:06 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Jun 21 18:43:17 2013 -0700"
      },
      "message": "Print - platform  APIs\n\nRelated changes:\n    Skia (inlcude PDF APIs): https://googleplex-android-review.googlesource.com/#/c/305814/\n    Canvas to PDF: https://googleplex-android-review.googlesource.com/#/c/319367/\n    Settings (initial version): https://googleplex-android-review.googlesource.com/#/c/306077/\n    Build: https://googleplex-android-review.googlesource.com/#/c/292437/\n    Sample print services: https://googleplex-android-review.googlesource.com/#/c/281785/\n\nChange-Id: I104d12efd12577f05c7b9b2a5e5e49125c0f09da\n"
    },
    {
      "commit": "4491d684f47fcf1e05652f910587a930be8a4135",
      "tree": "9692bbe442682bf876bad7f2554ddfcc13ae1851",
      "parents": [
        "4f057ffa2a9bed82d97c1889dc95d6b2bed8ff8d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri May 31 16:43:48 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Jun 11 11:36:38 2013 -0700"
      },
      "message": "camera: Add Java binder proxies for some existing binder interfaces\n\nNote that anything not in the AIDL interfaces, will NOT be magically\ncompatible if you just add it there. It probably requires a change in\nframeworks/av/camera as well.\n\nBug: 9213377\nChange-Id: I91d3efb755ed2e3ace139f83573f86efdccccd06\n"
    },
    {
      "commit": "2d66a4182a4712f60b0c63d854751fe13e44be0b",
      "tree": "c263c5a079f24a54916641f673a9cf10e35205c4",
      "parents": [
        "5404f9f1dcf9f0f6f4553a060e4b32645fc37b56",
        "6c5b979917b8189d7de75f9d622899ba1fb9e6d1"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 22 18:03:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 22 18:03:01 2013 -0700"
      },
      "message": "am 6c5b9799: am 1fa3cdf0: Merge \"Move offline-pdk to where the source is.\" into jb-mr2-dev\n\n* commit \u00276c5b979917b8189d7de75f9d622899ba1fb9e6d1\u0027:\n  Move offline-pdk to where the source is.\n"
    },
    {
      "commit": "6c5b979917b8189d7de75f9d622899ba1fb9e6d1",
      "tree": "d12ba52a62536fc4bce6616b9eeb3a0df37811f6",
      "parents": [
        "13a4f1a23d91ff8a3f6a446413a7b467cb5d509d",
        "1fa3cdf0cbc9bc788a313eda5d3ca3e2ad77fcc4"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 22 18:00:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 22 18:00:28 2013 -0700"
      },
      "message": "am 1fa3cdf0: Merge \"Move offline-pdk to where the source is.\" into jb-mr2-dev\n\n* commit \u00271fa3cdf0cbc9bc788a313eda5d3ca3e2ad77fcc4\u0027:\n  Move offline-pdk to where the source is.\n"
    },
    {
      "commit": "06acbf0e890ac74a659981c2b0759ccce9ef24c3",
      "tree": "9e4f2e6f22c6f82ca1ce21c4023edf8f1c540ecf",
      "parents": [
        "3c1ad55fcfa54c2c30073d07917da699d156dc58"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 21 18:03:29 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue May 21 18:03:29 2013 -0700"
      },
      "message": "Move offline-pdk to where the source is.\n\nChange-Id: I10b05c28954a27f11482751e14287ec21422dce2\n"
    },
    {
      "commit": "5b48229b7406b2d80c189a978d71eda877ef36fc",
      "tree": "cbf2209f114e49eb78743f0e597b7356904da75d",
      "parents": [
        "5ffb7a8b9924ca44639fdb8d094bf162f99200a1",
        "9da9947d4c7a2195bf440f0af8370f0667af90bf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 13 17:38:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 13 17:38:34 2013 -0700"
      },
      "message": "am 9da9947d: am 05002977: Merge \"Include support library resource modules when building docs.\" into jb-mr2-dev\n\n* commit \u00279da9947d4c7a2195bf440f0af8370f0667af90bf\u0027:\n  Include support library resource modules when building docs.\n"
    },
    {
      "commit": "9da9947d4c7a2195bf440f0af8370f0667af90bf",
      "tree": "15d3ef3135b1c0b3b568f0267cacfa43a0f609bb",
      "parents": [
        "bbb2b8d4474ac5de157fed37f09f1955559fc8e4",
        "0500297714a26c744304a323267d5d642f351326"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 13 17:35:21 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 13 17:35:21 2013 -0700"
      },
      "message": "am 05002977: Merge \"Include support library resource modules when building docs.\" into jb-mr2-dev\n\n* commit \u00270500297714a26c744304a323267d5d642f351326\u0027:\n  Include support library resource modules when building docs.\n"
    },
    {
      "commit": "ae1d6f2fd3869ff66cfad45547d166abefcd4319",
      "tree": "5f23e68b227836b41100bb2016224d5928120b80",
      "parents": [
        "9e2632037d3a683d2513e5e38437e00102a3076d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 10 20:37:12 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 10 20:37:12 2013 -0700"
      },
      "message": "Include support library resource modules when building docs.\n\nBug: 8175766\nChange-Id: I0f0739d9f71386bae6c4ad23a2eb33e38d6a2d87\n"
    },
    {
      "commit": "81d45178ec9a0b0234103898fc5d515c7fe5564c",
      "tree": "9565f81b475a413c071813c40db704ddbd9aef80",
      "parents": [
        "961d8d0e95b8bdb53b27b71d1269e1653b6ec042",
        "2ff5a47999c5a6801e2e0530fbe1bf80ed25e8f1"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue May 07 10:25:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 07 10:25:15 2013 -0700"
      },
      "message": "am 2ff5a479: am a6303d8a: am 67430e8e: am 2e52e815: am 6b6fd9d1: am 36aa2759: am b582c678: Doc change: delete legacy intl dir and update toc\\\u0027s for devsite-compatible lang strings.\n\n* commit \u00272ff5a47999c5a6801e2e0530fbe1bf80ed25e8f1\u0027:\n  Doc change: delete legacy intl dir and update toc\u0027s for devsite-compatible lang strings.\n"
    },
    {
      "commit": "2ff5a47999c5a6801e2e0530fbe1bf80ed25e8f1",
      "tree": "daed64cecf0abd7c7eb3079ca3e72345066f7504",
      "parents": [
        "c1966dc6a0a350e8d1002217f3f0fde39ef823cd",
        "a6303d8a211543a8e1f5fd2425024a1c4d0f88ff"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon May 06 18:51:11 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 06 18:51:11 2013 -0700"
      },
      "message": "am a6303d8a: am 67430e8e: am 2e52e815: am 6b6fd9d1: am 36aa2759: am b582c678: Doc change: delete legacy intl dir and update toc\\\u0027s for devsite-compatible lang strings.\n\n* commit \u0027a6303d8a211543a8e1f5fd2425024a1c4d0f88ff\u0027:\n  Doc change: delete legacy intl dir and update toc\u0027s for devsite-compatible lang strings.\n"
    },
    {
      "commit": "a6303d8a211543a8e1f5fd2425024a1c4d0f88ff",
      "tree": "f52c98a11423691a9aead7e50d1d4c128ef88ceb",
      "parents": [
        "a4d7214dbebfbab151023bea52b5dfe166b058e0",
        "67430e8ec735c83f1f3304da7037e518aef6128a"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon May 06 18:49:14 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 06 18:49:14 2013 -0700"
      },
      "message": "am 67430e8e: am 2e52e815: am 6b6fd9d1: am 36aa2759: am b582c678: Doc change: delete legacy intl dir and update toc\\\u0027s for devsite-compatible lang strings.\n\n* commit \u002767430e8ec735c83f1f3304da7037e518aef6128a\u0027:\n  Doc change: delete legacy intl dir and update toc\u0027s for devsite-compatible lang strings.\n"
    },
    {
      "commit": "b582c678c88df2848023b7f27f4bc0ab2249e1e1",
      "tree": "9e27da7c24d2834a2e54d32170372104b52df568",
      "parents": [
        "1cd65b30904b07ae4226a6e438647ee3b63d7950"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat May 04 10:54:52 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon May 06 18:38:24 2013 -0700"
      },
      "message": "Doc change: delete legacy intl dir and update toc\u0027s for devsite-compatible lang strings.\n\nChange-Id: Ie390d2bbd8abc0d063c1f313797e8c3d21d27490\n"
    },
    {
      "commit": "3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9",
      "tree": "ea104e727beba793c10952f5b328478020859599",
      "parents": [
        "dd424cf079d2677e9333d89466f93166787e61c8"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Apr 17 18:54:38 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 02 13:32:09 2013 -0700"
      },
      "message": "Pack preloaded framework assets in a texture atlas\n\nWhen the Android runtime starts, the system preloads a series of assets\nin the Zygote process. These assets are shared across all processes.\nUnfortunately, each one of these assets is later uploaded in its own\nOpenGL texture, once per process. This wastes memory and generates\nunnecessary OpenGL state changes.\n\nThis CL introduces an asset server that provides an atlas to all processes.\n\nNote: bitmaps used by skia shaders are *not* sampled from the atlas.\nIt\u0027s an uncommon use case and would require extra texture transforms\nin the GL shaders.\n\nWHAT IS THE ASSETS ATLAS\n\nThe \"assets atlas\" is a single, shareable graphic buffer that contains\nall the system\u0027s preloaded bitmap drawables (this includes 9-patches.)\nThe atlas is made of two distinct objects: the graphic buffer that\ncontains the actual pixels and the map which indicates where each\npreloaded bitmap can be found in the atlas (essentially a pair of\nx and y coordinates.)\n\nHOW IS THE ASSETS ATLAS GENERATED\n\nBecause we need to support a wide variety of devices and because it\nis easy to change the list of preloaded drawables, the atlas is\ngenerated at runtime, during the startup phase of the system process.\n\nThere are several steps that lead to the atlas generation:\n\n1. If the device is booting for the first time, or if the device was\nupdated, we need to find the best atlas configuration. To do so,\nthe atlas service tries a number of width, height and algorithm\nvariations that allows us to pack as many assets as possible while\nusing as little memory as possible. Once a best configuration is found,\nit gets written to disk in /data/system/framework_atlas\n\n2. Given a best configuration (algorithm variant, dimensions and\nnumber of bitmaps that can be packed in the atlas), the atlas service\npacks all the preloaded bitmaps into a single graphic buffer object.\n\n3. The packing is done using Skia in a temporary native bitmap. The\nSkia bitmap is then copied into the graphic buffer using OpenGL ES\nto benefit from texture swizzling.\n\nHOW PROCESSES USE THE ATLAS\n\nWhenever a process\u0027 hardware renderer initializes its EGL context,\nit queries the atlas service for the graphic buffer and the map.\n\nIt is important to remember that both the context and the map will\nbe valid for the lifetime of the hardware renderer (if the system\nprocess goes down, all apps get killed as well.)\n\nEvery time the hardware renderer needs to render a bitmap, it first\nchecks whether the bitmap can be found in the assets atlas. When\nthe bitmap is part of the atlas, texture coordinates are remapped\nappropriately before rendering.\n\nChange-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0\n"
    }
  ],
  "next": "178e8bbf25b6d211439133ec8525b7bab52f7796"
}
