)]}'
{
  "log": [
    {
      "commit": "2d11e57c1533f779aa5c6962a26118c70b072a7a",
      "tree": "cf34c3c5094749918a0e4a84eb02ff5d05f366af",
      "parents": [
        "794a0f9895754a392da88395d597fd39954d59e2"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:32:08 2017 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:32:08 2017 +0100"
      },
      "message": "Improve Gradle\u0027s configuration time\n\nBy deferring dependency resolution to execution time, as intended by\nGradle.\n\nChange-Id: I099a5f9fa8e454c9d8e3d0e63cf012e4ec133127\n"
    },
    {
      "commit": "794a0f9895754a392da88395d597fd39954d59e2",
      "tree": "87c3a0225e58dfaada2d2d30d3d4898feeab7225",
      "parents": [
        "17248b68816d42c8739ddda10ef6779010e890fe"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:27:11 2017 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:27:11 2017 +0100"
      },
      "message": "Upgrade to Android Gradle plugin 2.3.0\n\nThis mainly brings performance improvements in conjunction with newer\nGradle version.\n\nChange-Id: I8bbcb7b3fa59b483d5f679732d7ee8f0e24168cd\n"
    },
    {
      "commit": "17248b68816d42c8739ddda10ef6779010e890fe",
      "tree": "11035d40269da3c7dabee063f0b1d511d4270ce6",
      "parents": [
        "107fdad1e6d5a13c60d3fbb7fb16d6bbeb6e4bd4"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:25:58 2017 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:25:58 2017 +0100"
      },
      "message": "Upgrade build tools to version 25.0.2\n\nBuild tools 25 is a requirement for newer Android Gradle plugins.\n\nChange-Id: Ifb3400d2d22fdde900a7cfb85739a60b4a9a20e5\n"
    },
    {
      "commit": "107fdad1e6d5a13c60d3fbb7fb16d6bbeb6e4bd4",
      "tree": "4b7cecc5da1643069cf6a6ee7fcc559f894fce52",
      "parents": [
        "54dfec1339871e1a9c9e454ed61f2301dde66116"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:25:11 2017 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sat Mar 04 13:25:11 2017 +0100"
      },
      "message": "Upgrade to Gradle 3.4.1\n\nThis mainly brings performance improvements.\n\nChange-Id: I7e354555d9eebc3e2663242ed78094ee628bee87\n"
    },
    {
      "commit": "54dfec1339871e1a9c9e454ed61f2301dde66116",
      "tree": "fb3b029aa9a7552dcb1d16c88d627975aa4f57ec",
      "parents": [
        "2711bf867e89803c240e3075cebb8c9783714fe0"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Nov 29 16:53:59 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Nov 29 16:53:59 2016 +0100"
      },
      "message": "AvatarTask: Fix NPE, handle null bitmap\n\nChange-Id: I209efa059c98e74a634bd309ce63f62969e11bec\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "2711bf867e89803c240e3075cebb8c9783714fe0",
      "tree": "1a5852e4e9a6e9875d44e3509102ba1ada2c90b3",
      "parents": [
        "7175312e0f41c9d56cb1222e8bc68d468978cb89"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Nov 29 16:52:23 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Nov 29 16:52:23 2016 +0100"
      },
      "message": "ReviewChangesFragment: Fix setting color scheme on swipeRefreshLayout\n\nThe color ID must be resolved to a resource ID.\n\nChange-Id: I14b99c71ebdf2aaf59bad7989b96ede8fafdacca\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "7175312e0f41c9d56cb1222e8bc68d468978cb89",
      "tree": "8ba2acc7f7eb91fe5b1bb6bc130c77c4ad0b1ae4",
      "parents": [
        "0dcb2714f1a955219527f892c11290f26170d072"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:10:45 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:31:52 2016 +0100"
      },
      "message": "Upgrade guava and gson to their latest versions\n\nChange-Id: I60c5315078db02af64c9063c91bfd8905d53f375\n"
    },
    {
      "commit": "0dcb2714f1a955219527f892c11290f26170d072",
      "tree": "ac3b08717621c7c4bad0ab849c357be925949ccc",
      "parents": [
        "d911c01649d612e2d615c5f0872e687bd07fde7e"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:09:01 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:31:52 2016 +0100"
      },
      "message": "Upgrade Android support libraries to the latest version\n\nWhile at it, extract the common version to a constant.\n\nChange-Id: Ifac7ba0ee16d6978f1432faea9206891ff65ed1a\n"
    },
    {
      "commit": "d911c01649d612e2d615c5f0872e687bd07fde7e",
      "tree": "04079cd4b505602182a7f8e6ca88a5e286c7a31a",
      "parents": [
        "bb3acf3e495bf5a92cb1c27b669d0e2f4c4e861e"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:03:05 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:31:52 2016 +0100"
      },
      "message": "Upgrade gerrit-rest-java-client to the latest httpclient-android commit\n\nSee\n\nhttps://github.com/uwolfer/gerrit-rest-java-client/compare/a7f5d5c...dd4837b\n\nChange-Id: Ice529fb165efbc945070bc229cbf9fff088ed94a\n"
    },
    {
      "commit": "bb3acf3e495bf5a92cb1c27b669d0e2f4c4e861e",
      "tree": "f401b3b3b84e36969cf01765b5dafe25887929e9",
      "parents": [
        "4b7dd24466b6a04b3a7abb7f8a86a28ca1d9fd10"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 10:57:38 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:31:52 2016 +0100"
      },
      "message": "Gradle: Upgrade the gradle-versions-plugin to the latest version\n\nSee https://github.com/ben-manes/gradle-versions-plugin/releases\n\nChange-Id: Ifad3fa3b75671abb5d6256f2fb5deee243804261\n"
    },
    {
      "commit": "4b7dd24466b6a04b3a7abb7f8a86a28ca1d9fd10",
      "tree": "2d631404ddd889790d2273e2d3a11cbb0b64449d",
      "parents": [
        "e17a6d43a2c0f3e450ad928fa7f34f50f07f0e19"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 10:52:15 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:31:32 2016 +0100"
      },
      "message": "Gradle: Make the wrapper use the latest version\n\nThis comes with the usual bug fixes and performance improvements. For\ndetails see\n\nhttps://docs.gradle.org/current/release-notes\n\nChange-Id: Ic68b2e468f3dce3964312c001586b487126db816\n"
    },
    {
      "commit": "e17a6d43a2c0f3e450ad928fa7f34f50f07f0e19",
      "tree": "9b47a1f33f125c84b39c018495d80217034ae23b",
      "parents": [
        "7c36c2ab8166b1bc3b2cc20ad0b625e574eda9ac"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 10:47:19 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Nov 25 11:30:45 2016 +0100"
      },
      "message": "Gradle: Upgrade to the latest Android plugin\n\nVersion 2.2.0 has built-in support for bootstrapping the SDK, so we can\ndrop Jake Wharton\u0027s deprecated sdk-manager-plugin.\n\nChange-Id: I7194977e0c09b13d616c046dd08e6b99d1712e8d\n"
    },
    {
      "commit": "7c36c2ab8166b1bc3b2cc20ad0b625e574eda9ac",
      "tree": "b1dedf3ab14eae76c8ab77eb6a2018c7da310342",
      "parents": [
        "7512c58556e28fc1144bf35a7edcde48ad05c897"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 27 17:19:01 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 27 17:19:01 2016 +0200"
      },
      "message": "Show file numbers as \u0027n / N\u0027 in unified diff view\n\nChange-Id: Ifd1399ef3744646fbcf220c31932a298563753b8\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "7512c58556e28fc1144bf35a7edcde48ad05c897",
      "tree": "f233eec3df4648e7a2207b0ff3e7b12885f081a7",
      "parents": [
        "d43022420d796e9f089947f91bcce171f1eed2e1"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 27 14:16:54 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 27 14:16:54 2016 +0200"
      },
      "message": "Use toasts to provide feedback on successful user actions\n\nChange-Id: Ic35629e1eda68e27414f6fd244dd61263b4a8719\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "d43022420d796e9f089947f91bcce171f1eed2e1",
      "tree": "14f827a71b6582a5ae06917b4dab83e7eb5a6019",
      "parents": [
        "fc4eec42b909743fc41f5375175978786355da1b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Apr 26 15:48:11 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Apr 26 15:52:48 2016 +0200"
      },
      "message": "Include app name and version into User-Agent header\n\nThe User-Agent header that the client sends is included in the HTTP\nrequest log on server side. Having the app name and the version\nincluded in the User-Agent header allows us to see from the logs how\nmuch the app is used.\n\nTo modify the User-Agent header we need a dependency to the Apache\nHTTP client. According to [1] we must add org.apache.http.legacy as\nused library since the app has sdk 23 as target.\n\n[1] http://stackoverflow.com/questions/26024908/apache-httpclient-android-gradle\n\nChange-Id: Ie2f4dccfa1876986a98f3e985ab3624153db7ad5\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "fc4eec42b909743fc41f5375175978786355da1b",
      "tree": "11f00317ebd47e46f35f6605a39b36a34f5bfb33",
      "parents": [
        "cd545a86282750c23140e71da60375420c0a6825"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Apr 22 16:11:22 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Apr 22 16:11:22 2016 +0200"
      },
      "message": "Paged unified diff view: Fix formatting of headers\n\nWhen displaying the diff for each file in an own view and then paging\nthrough the diffs, the header for the next diff was not shown if the\ncurrent diff was not fully scrolled to the top. This was caused by an\nunexpected order of layout callbacks, due to reusing the\nScrollWithHeadingsView for all diffs. Fix this by not reusing the\nScrollWithHeadingsView, but instead create a new instance of it\nwhenever the user navigates to the next/previous diff.\n\nChange-Id: Ic76461a7eb3cd1a547bc39eb4b4e0ea17a67fd8f\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "cd545a86282750c23140e71da60375420c0a6825",
      "tree": "a808c9ee33856929574bdaa7550d5782d1207d7e",
      "parents": [
        "1e9d3fc1b895564807f5e1869237d89be5469aad"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 14 23:09:53 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 14 23:09:53 2016 +0200"
      },
      "message": "Paged change details: Show CC\u0027s on approvals tab separately\n\nChange-Id: Ic6deeb03d9c6a94e2c6d5ca84cd0b711d909a4a1\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "1e9d3fc1b895564807f5e1869237d89be5469aad",
      "tree": "9b758074b9813b08f3a4ac357d435e2f0f4fe432",
      "parents": [
        "a9f53310043c671fcd14e925f7291aa9a311891a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 14 09:11:52 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 14 21:59:30 2016 +0200"
      },
      "message": "Paged change details: Rename \u0027Commit Message\u0027 tab to \u0027Commit\u0027\n\nThis saves space in the tab strip. Also it is planned to add other\ncommit information to this tab.\n\nChange-Id: I941ac15b91d75c5602d4ba95c10c3c6bbed31430\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "a9f53310043c671fcd14e925f7291aa9a311891a",
      "tree": "97f8c3fe82bb9fd6eb2d5d5418b1d7b93a781bb4",
      "parents": [
        "1f6a4e9373829dbad4f2b89d57a5a5067d15cd81"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 14 09:09:41 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 14 21:59:15 2016 +0200"
      },
      "message": "Paged change details: Add approvals tab\n\nChange-Id: If19a95b17d061683dddeff502576f840fc28cc31\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "1f6a4e9373829dbad4f2b89d57a5a5067d15cd81",
      "tree": "75845fb92d5a89120c4a1850bcd708ac87b638bd",
      "parents": [
        "01eea24c2ccd209d870cc1de41b3cfb8197031f1"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 19:54:21 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 19:54:21 2016 +0200"
      },
      "message": "Remove unneeded view from file entry layout\n\nChange-Id: I6cec79e28cb9cf35b20318ecff2f1871f2803108\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "01eea24c2ccd209d870cc1de41b3cfb8197031f1",
      "tree": "e1f0b4bff57edd749a4a9f289654775a0030c613",
      "parents": [
        "d77271419866ea43ecbdaa5bf81dbde47ffe506a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 19:43:36 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 19:43:36 2016 +0200"
      },
      "message": "Refactor: Extract code to parse approvals into a class\n\nThis way the code gets reusable.\n\nChange-Id: I7de37045176e656aa928298ed3f84428e4ab2772\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "d77271419866ea43ecbdaa5bf81dbde47ffe506a",
      "tree": "2193271e652e78e8378cebc5fe023a527cb161b1",
      "parents": [
        "0a31d50bc7a0047d43216346bbd9e58a90336494"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 19:27:19 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 19:27:19 2016 +0200"
      },
      "message": "ApprovalsView: Add spacing between label columns\n\nChange-Id: Ie31bd0f3750b40c20a54c9c32ae3c5face0ca542\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "0a31d50bc7a0047d43216346bbd9e58a90336494",
      "tree": "9b10401d1b38e395a94c0180a6a69027cc47ff86",
      "parents": [
        "80ef12c07cbc41bcfa28d1e20c10fa029c6406ba"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 13:05:53 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 13:09:34 2016 +0200"
      },
      "message": "Fix warning in menu files: Use \u0027ifRoom\u0027 instead of \u0027always\u0027\n\nAlso assign a lower orderInCategory for the star and ignore actions so\nthat they are displayed first.\n\nChange-Id: I2e4ae41b7783cd0f3163d9bf222d03b882a59d3a\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "80ef12c07cbc41bcfa28d1e20c10fa029c6406ba",
      "tree": "b32b6b13b10575fd5e52f2653a82b6f025c6d10e",
      "parents": [
        "085bac4b19eb50dab772384af7ae69087a8e7686"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 12:53:56 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 13:09:28 2016 +0200"
      },
      "message": "Add popup menu to paged change details and offer abandon/restore\n\nThe paged change details fragment hides the default support action\nbar. To offer additional actions, add a custom popup menu. For now\nabandon/restore are available from this menu (more action will come\nlater).\n\nChange-Id: I3528539efd8a501b3202dc8d7d345d6d2a8b54eb\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "085bac4b19eb50dab772384af7ae69087a8e7686",
      "tree": "3f43de42b910723fbe045936d7b589fa551eb0a2",
      "parents": [
        "e12965237de38eb787054f280885ff7b74772eaf"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 11:18:46 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 11:18:46 2016 +0200"
      },
      "message": "When saving query go to where the user was last (sorting or reviewing)\n\nChange-Id: Ib7c1283b0759dfa84ee22dbc1b16239682b01bfe\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "e12965237de38eb787054f280885ff7b74772eaf",
      "tree": "96a1eb8f2fac241a63f82cd6301341f7afb503ea",
      "parents": [
        "410f88c3816d757fa78f0d37cf0ec310d65a7a9e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 11:07:02 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 11:09:25 2016 +0200"
      },
      "message": "Fix NPE when trying to view file diff for closed change\n\nSupport for closed changes is still bad (e.g. the Code-Review buttons\nshould not be displayed at all), but at least the app is now no longer\ncrashing for closed changes.\n\nChange-Id: Ide729d1b7a6fdd5c7b78e9678d5dbeada953828f\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "410f88c3816d757fa78f0d37cf0ec310d65a7a9e",
      "tree": "0e2a4562b7fe3f3829b7feaf62f5b5092183f0be",
      "parents": [
        "f3ae410ef4e97a9788ee8198c939ad8eb4d10798"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 10:48:00 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 10:56:28 2016 +0200"
      },
      "message": "Paged change details fragment: Add tab to reply\n\nThe PostReviewView already implements the controls for replying to a\nchange, however for displaying it in a tab the layout needs to be a\nbit different (e.g. the panel with the publish buttons should be shown\nat the bottom and not at the top). In addition when it is displayed in\na tab there is no need to show the commit message and the approvals as\nthere are extra tabs for this and it\u0027s easy to switch back and forth\nbetween tabs. To support both layouts PostReviewView now provides 2\nvariants of itself.\n\nChange-Id: Id99e18a5503e3707758d49dc18c868d5a3250576\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "f3ae410ef4e97a9788ee8198c939ad8eb4d10798",
      "tree": "00534a2aeb8814908071f7f8d3329f32ca4ea288",
      "parents": [
        "9ca2a682c488d11e11e19e373dac395c4ca6c48c"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 22:38:44 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 10:56:28 2016 +0200"
      },
      "message": "Sort labels on PostReviewVote\n\nChange-Id: Id526442a0482a1ea2a136d9b7602afc5a0893b0f\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "9ca2a682c488d11e11e19e373dac395c4ca6c48c",
      "tree": "8055e9b1a9af28ddfeb972b5babe65e39fb52c9c",
      "parents": [
        "8035342a8301aa0b005c194fd922d59e2538755b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 22:14:14 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 13 10:56:00 2016 +0200"
      },
      "message": "Refactor: Create a view for posting a review\n\nThis makes the code reusable.\n\nChange-Id: I4f32d9c20d32e275b4e5a8f9684110d74ef4ecdd\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "8035342a8301aa0b005c194fd922d59e2538755b",
      "tree": "5034d8e39a00211814f534d4c793f136093fc4a4",
      "parents": [
        "74d9fe799e2cba556a9f723a826fd6e0c9f3679e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 21:42:22 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 21:42:22 2016 +0200"
      },
      "message": "Rename PostReviewView to SelectCodeReviewView\n\nThis view is not posting review, but only selecting a Code-Review\nvote.\n\nChange-Id: If903e1bf3d94fadccdbf5256ddbcdb2e2208d2b1\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "74d9fe799e2cba556a9f723a826fd6e0c9f3679e",
      "tree": "dbf21f254892586ecb97a3e0d712bd63269452d2",
      "parents": [
        "8b48c935b453e59633b6a92abf065ee1680c7644"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 17:45:04 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 17:45:04 2016 +0200"
      },
      "message": "Fix back navigation from initial fragment\n\nClicking on the hardware back button while the initial fragment was\nshown resulted in showing an empty screen and only on a second click\nthe app was moved to the background.\n\nThis was because the initial fragment was wrongly added to the back\nstack.\n\nChange-Id: I482842b8a578c715ce5ee0d1396b3e683d098b16\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "8b48c935b453e59633b6a92abf065ee1680c7644",
      "tree": "08e7bab388a195743e9c3012edc49c36e671b016",
      "parents": [
        "e9e50791c3b9a6874c3ebfc4bf3073650695a1ca"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 17:10:49 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 17:10:49 2016 +0200"
      },
      "message": "Scroll down when showing next page progress in change list\n\nWhen scrolling down to the end of the change list it automatically\nloads the next page. While the next page is loaded a progress is\nshown. However to see this progress the user had the scroll down once\nagain.\n\nChange-Id: I9b92071d72270177c72a80bb11e89e28fb6ce120\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "e9e50791c3b9a6874c3ebfc4bf3073650695a1ca",
      "tree": "fc32bd34d63c48016e49c7495b2c7506d9d8bf0c",
      "parents": [
        "8e67edd8407e4978ee6cd30de5694780d01ce7f6"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 16:48:08 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 16:48:08 2016 +0200"
      },
      "message": "Rename ObservableAsynTask to ObservableAsyncTask\n\nThis class extends AsyncTask, so it should be named\nObservableAsyncTask.\n\nChange-Id: I48ed4fc6d64ec5902f61bafcd1cc4ec80a3e978d\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "8e67edd8407e4978ee6cd30de5694780d01ce7f6",
      "tree": "635234108f101f2119e37b2bf960e83f5021e720",
      "parents": [
        "e67f34cbe8e35cde7ecdafdcb29296932926e72c"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 16:40:31 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 16:40:31 2016 +0200"
      },
      "message": "Fix NPE\u0027s when accessing ReviewItApp from activity\n\ngetActivity() in Fragment may return null when the fragment is not\nadded to an activity. This leads to NPE\u0027s when trying to get the\nReviewItApp from the activity from a callback that may be executed\nafter the fragment was removed from the activity. Use isAdded() to\nskip the callback code when the fragment is not added to an activity.\n\nChange-Id: I4f28660987730ff866cc12dbb76920e34b13a658\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "e67f34cbe8e35cde7ecdafdcb29296932926e72c",
      "tree": "427a49bd2687053819d536c7a8d61fae8b5fed03",
      "parents": [
        "8e59e09f3cb013cd1d04f6e6388d7762efa3a39d"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 15:26:25 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 16:11:41 2016 +0200"
      },
      "message": "Make SlidingTabLayout fully stylable\n\nMake the tabs look the same as they looked when we used the\nPagerTabStrip.\n\nChange-Id: I3180f943aaf8d14b5802d158eec7294d171abb1f\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "8e59e09f3cb013cd1d04f6e6388d7762efa3a39d",
      "tree": "5a6939379432db8fe186a4c00f8fe12608f72e15",
      "parents": [
        "182b25e8e66a1882063cc9fc494a54cffbf9ed35"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 15:15:53 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Apr 11 15:28:24 2016 +0200"
      },
      "message": "Use SlidingTabLayout for tab strip on PagedChangeDetailsFragment\n\nSlidingTabLayout layouts all tabs next to each other while\nPagerTabStrip centers the selected tab and shows the previous/next tab\nleft/right aligned at the border of the screen. This means with\nPagerTabStrip not all tabs are shown, e.g. if there are 3 tabs and the\nfirst tab is selected the third tab is not shown. In addition long tab\ntitles, like \u0027Commit Message\u0027 may be truncated when they are shown as\nprevious/next tab. Because of this using SlidingTabLayout is better.\n\nThe classes SlidingTabLayout and SlidingTabStrip are copied from the\nSlidingTabsBasic example project that was published by Google [1].\nBoth classes are available under the Apache 2 license so that we can\njust use them.\n\nAs they are, SlidingTabLayout and SlidingTabStrip, cannot be styled to\nlook exactly the same way as the PagerTabStrip that we used so far.\nThe styling will be fix in the follow-up commit, so that this commit\ncontains the unmodified SlidingTabLayout and SlidingTabStrip classes.\n\n[1] http://developer.android.com/samples/SlidingTabsBasic/project.html\n\nChange-Id: I5d8d5ff89403717af8e6fd6669ac65ce6f98e9fc\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "182b25e8e66a1882063cc9fc494a54cffbf9ed35",
      "tree": "3799851ffd084e42663f20e9e8f0532911c15061",
      "parents": [
        "f0e0d7edddb5f2e32edc6cb1cd5c1f3317fcc2ae"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 11:04:44 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "Show a ViewPager with change details on click on change in list\n\nFor now the ViewPager only contains tabs for the commit message and\nthe file list. More tabs will be added in follow-up changes.\n\nChange-Id: I7747f33191f97e9edfe27af9c975e1b20f3432d3\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "f0e0d7edddb5f2e32edc6cb1cd5c1f3317fcc2ae",
      "tree": "8367fe054f53c993b1ddb23bc9016dc632c85d82",
      "parents": [
        "319fdcc8152a329b4778aa764920c2e126268286"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Apr 05 22:32:43 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "Set minSdkVersion to 17 (Android 4.2)\n\nAndroid 4.2 supports nested fragments [1]. This will allow us to use a\nViewPager within a Fragment.\n\nAt the moment 10% of the Android devices run with an SDK version \u003e\u003d 14\nand \u003c\u003d 17 [2]. Considering that the app is only used by developers and\ndevelopers tend to have new devices with latest updates it should be\nOK to increase the minSdkVersion to 17 and thus removing support for\nthis 10% of Android devices.\n\n[1] http://developer.android.com/about/versions/android-4.2.html#NestedFragments\n[2] http://developer.android.com/about/dashboards/index.html#Platform\n\nChange-Id: Ic08b5761ec961ec6cbb92901908067f64a149d01\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "319fdcc8152a329b4778aa764920c2e126268286",
      "tree": "0f5beec0a33618fe894298d3a8a1dec42fcc9eae",
      "parents": [
        "7f5e78cac585ab053cdbce7ececc852786487d64"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 21:19:02 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "Extract code to linkify commit message into own class\n\nThis way the code can be reused.\n\nChange-Id: I62b40fcf212c374d4573891b2731dcd7352dd7d2\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "7f5e78cac585ab053cdbce7ececc852786487d64",
      "tree": "5e3b12eb2028e7aedcc921b47f6d898ce710ceaa",
      "parents": [
        "3a4180616641d7e19db30a43422c1327da667836"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:11:01 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "Set start screen depending on what the user last did (sort or review)\n\nWhen the app is started it now shows the sorting screen or the review\nscreen depending on what the user last did.\n\nChange-Id: I9b63af33feea3f2c941828c39378cae0abf63158\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "3a4180616641d7e19db30a43422c1327da667836",
      "tree": "5836482934b5505eea6644ea5830b61b989b3aba",
      "parents": [
        "bee3b80aed553baab35dd3358f869c4a4b4a5cc5"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 17:11:59 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "Change List: Do not load another page each time the list is shown\n\nLoad the first page when the change list is shown for the first time,\nelse just show the changes which have already been loaded.\n\nChange-Id: I45dae639bd2b93e25d152a708c4414258d7fd3d6\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "bee3b80aed553baab35dd3358f869c4a4b4a5cc5",
      "tree": "4f08d84140946ea34a3c39c305fbeb5d039a6ffe",
      "parents": [
        "b518d000f2c4b3ae81e57bab421ad43d91406469"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 17:18:41 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "ReviewChangesFragment: Set title\n\nOtherwise it shows the wrong title when coming to this fragment by\nusing the back button.\n\nChange-Id: Ib2a3cb5d4be820fb31cf8f7064e3c140f16866e2\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "b518d000f2c4b3ae81e57bab421ad43d91406469",
      "tree": "0925052a31ebf8075ea09c823027fa1076395be3",
      "parents": [
        "7ddcb129fb9d956700daf22998d3f1e83e53f3b0"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 11:17:46 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:48:01 2016 +0200"
      },
      "message": "Fix potential IndexOutOfBoundsException in QueryHandler\n\nChange-Id: I3e0ddbb2f072914292e52ccf11dc6d22020e6a5a\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "7ddcb129fb9d956700daf22998d3f1e83e53f3b0",
      "tree": "9c66a7b170f122181c962e23ea0eb13bf33984f5",
      "parents": [
        "d47fe1e55bac07aa00abeee2d0e27b4e7171acf0"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 17:34:12 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Apr 07 11:47:40 2016 +0200"
      },
      "message": "Fix inconsistent formatting\n\nChange-Id: Ifb59b98c480e34430caa59f5ee75f93cd5364c32\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "d47fe1e55bac07aa00abeee2d0e27b4e7171acf0",
      "tree": "6535ed903a590e042c5f96cefee678d9d814e2eb",
      "parents": [
        "16561ab3d48b5632698a6620f19443a945c5b84e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 11:16:07 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 17:20:38 2016 +0200"
      },
      "message": "VerifiedVotes: Fix variable name\n\nChange-Id: I3348daeb4b618cb829d3bc37468e40bbce82f75d\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "16561ab3d48b5632698a6620f19443a945c5b84e",
      "tree": "c278dca15786f1d68059e3f9f9dca50027300924",
      "parents": [
        "edea12c1613838882605b83aa4ae11b732d60aed"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 11:15:20 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Apr 06 17:20:38 2016 +0200"
      },
      "message": "Ignore aprrovals with null value\n\nChange-Id: Ic0e4fdf2a48a9078953359d92c8500cd7f420c67\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "edea12c1613838882605b83aa4ae11b732d60aed",
      "tree": "3584920fa1f3bfb922614b9b3ef8c93580e418f8",
      "parents": [
        "4ccbb88d426180c1ac30efd987daaca8252300d4"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 28 18:02:23 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Apr 05 16:42:30 2016 +0200"
      },
      "message": "Refresh detailed change view on vertical swipe gesture\n\nChange-Id: I1e4cd9464b7828197565a08e413b040f5dfcec1b\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "4ccbb88d426180c1ac30efd987daaca8252300d4",
      "tree": "6c49983ac12dccc9fa65bd2100470f94d575b70b",
      "parents": [
        "25d09f87f136ca365df15d401021919e7085899b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Mar 11 17:01:27 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Apr 05 16:41:08 2016 +0200"
      },
      "message": "Refactor file box into an own view\n\nHave the common info box functionality, like an action button in the\ntitle and expanding by pages, in an abstract base class, so that this\nfunctionality can be reused for other info boxes.\n\nChange-Id: Ibcfec07cef5b8d2951bb3288a12923a4b0ef5fd8\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "25d09f87f136ca365df15d401021919e7085899b",
      "tree": "e095d4908eeff742cc90aa6ce8698b34a499fdab",
      "parents": [
        "7d131e718a1646c5d560160a0558be286d6ec6e1"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 28 17:40:29 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 28 17:40:29 2016 +0200"
      },
      "message": "Reload change list on vertical swipe gesture\n\nChange-Id: Ifccebd0492c01dde5120fa8b192060f07f53295d\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "7d131e718a1646c5d560160a0558be286d6ec6e1",
      "tree": "c2b371bf5518c191bff5065859b2f3cba2135e15",
      "parents": [
        "f92bbb1b5d64046a91dbc19ab4018125cc963b45"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 28 16:43:22 2016 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 28 16:49:02 2016 +0200"
      },
      "message": "Load next set of changes on scroll to bottom of change list\n\nWhen the user scrolls to the bottom of the change list, the next set\nof changes is automatically loaded and added to the change list.\n\nChange-Id: I057ddc39590b24dbc2fed394a0b0c4ce32e46801\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "f92bbb1b5d64046a91dbc19ab4018125cc963b45",
      "tree": "5d0cd23f9c06475234caca51babc85e83e1bda7b",
      "parents": [
        "57138ef794fda462050695f38877cefaf1b4c346"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Sat Mar 26 22:28:26 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Sat Mar 26 22:28:26 2016 +0100"
      },
      "message": "Review Changes: Show only initial progress bar on initial load\n\nShow the progress bar for background tasks only after the initial\nloading has been done. Having 2 different progress bars at the same\ntime looks confusing.\n\nChange-Id: I2075d00ef04095e58019d87b6b33d543f3e63752\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "57138ef794fda462050695f38877cefaf1b4c346",
      "tree": "2e4a5d7cbf7d48de9294f0d893d242d6cdcfaa40",
      "parents": [
        "5cb1a9399073a09602895cfa9f7a4f209c28da32"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Sat Mar 26 16:07:40 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Sat Mar 26 16:45:37 2016 +0100"
      },
      "message": "Show Verified votes in change list\n\nIf a change has several Verified votes with different values, only the\nvote with the lowest value is shown in the change list.\n\nChange-Id: I02b3ac529e46feedf2118dec51784d9d6ef43880\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "5cb1a9399073a09602895cfa9f7a4f209c28da32",
      "tree": "30ba746cc992240006710b9d28228b9c09375db6",
      "parents": [
        "81d7651e2f5e64ba795f076c88b59f47c3332b2d"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Mar 25 18:30:47 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Sat Mar 26 16:11:07 2016 +0100"
      },
      "message": "Show Code-Review votes in change list\n\nIf a change has several Code-Review votes with different values, icons\nfor all occurring values are shown in the change list.\n\nChange-Id: Ic6454f974025f5fcb7e7d0be002c7bfebf253242\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "81d7651e2f5e64ba795f076c88b59f47c3332b2d",
      "tree": "65e5da2f29a40d050c5b9d0bf79fd15249d30ae1",
      "parents": [
        "3503a194501b100752793820fd55de99d1a57c07",
        "65e4c08c4fe6ee9f52cd9574bef1eb421cfcccaa"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 24 19:58:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 24 19:58:31 2016 +0000"
      },
      "message": "Merge changes I36bf7b37,Id835f12d,I2861135e,If0ad7302,I91ce3d1e, ...\n\n* changes:\n  Implement change list for reviewing changes\n  Make avatar size and text size of UserView configurable\n  Refactor: Implement avatar/user control as view\n  Refactor: Implement project/branch/topic/age control as view\n  Add expandable commit message to abandon and restore screens\n  Refactor: Implement expandable commit message as view\n"
    },
    {
      "commit": "3503a194501b100752793820fd55de99d1a57c07",
      "tree": "4681cbdbe957af0d47a6379e3bb665b4febe6157",
      "parents": [
        "345f2e169e31bd43a123e354b55b6921e9f8bf77"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 21 13:40:39 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 24 20:51:53 2016 +0100"
      },
      "message": "Use JitPack also for gerrit-rest-java-client artifacts\n\nOur required httpclient-android branch usually is not published as an\nartifact, so use JitPack to build it on demand. This way we can get rid of\nthe committed library JAR, and remove the legacy build system code to look\nfor JARs in the \"libs\" directory.\n\nChange-Id: I7aecd0ccc64b0dd1a2eff93f7bec1719de521883\n"
    },
    {
      "commit": "345f2e169e31bd43a123e354b55b6921e9f8bf77",
      "tree": "6fc3334a272f319270e640cc6b6e8bd902daef8c",
      "parents": [
        "ce0141ea7858c8618216d1a381390d0f6433deef"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Sun Mar 20 09:46:32 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 21 13:34:57 2016 +0100"
      },
      "message": "Use the sdk-manager-plugin for Gradle to bootstrap the Android SDK\n\nThis uses an unreleased version of the sdk-manager-plugin built from\nsources via JitPack to get some required fixes.\n\nChange-Id: Ia847cb68e28fd753ec64396e90a9b83c5e5fed01\n"
    },
    {
      "commit": "65e4c08c4fe6ee9f52cd9574bef1eb421cfcccaa",
      "tree": "5ebfeb49ec473cf5f2cd4a840c4fb9890cdfa10f",
      "parents": [
        "a7433d59437a9ce0c3b86032e15bce11677cd67c"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Mar 16 13:07:53 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 17 16:49:02 2016 +0100"
      },
      "message": "Implement change list for reviewing changes\n\nThis is a first step to provide a change list from which the user can\nselect changes for review. This change only implements a basic version\nof the change list that is not fully implemented yet:\n- Selecting a change does not trigger any action yet.\n- It only shows the first page of changes, it is not possible yet to\n  load further pages.\n- The entry for a change does not yet display all information that we\n  would like to show here (e.g. current votes are missing).\n\nChange-Id: I36bf7b3737240b8434475590c13c47e0afa01a3a\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "a7433d59437a9ce0c3b86032e15bce11677cd67c",
      "tree": "12155e6adc6cc225182ab8adf2a184941a4d3c6b",
      "parents": [
        "a12f153faa284b70788c6d9328c50bfdd9ded70f"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Mar 16 09:56:36 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 17 16:49:02 2016 +0100"
      },
      "message": "Make avatar size and text size of UserView configurable\n\nChange-Id: Id835f12dfda6aee79cd967488d7301329cd30594\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "a12f153faa284b70788c6d9328c50bfdd9ded70f",
      "tree": "b2922235cde2f9f4f0fac4457463ff2f72d9696a",
      "parents": [
        "8ff0819cc595f69f2868bf65e251c8360d5beefa"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Mar 15 09:42:15 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 17 16:49:02 2016 +0100"
      },
      "message": "Refactor: Implement avatar/user control as view\n\nThis way it can be reused in other places.\n\nChange-Id: I2861135e6ca3fa8d209ce5db0b9574b4c7855be6\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "8ff0819cc595f69f2868bf65e251c8360d5beefa",
      "tree": "8cdec924a6e5e67b1d2a5653206f40d050cc69ff",
      "parents": [
        "92312d6c10472f6a96298bb9464b6883f25d4b21"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Mar 15 09:30:09 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 17 16:49:02 2016 +0100"
      },
      "message": "Refactor: Implement project/branch/topic/age control as view\n\nThis way it can be reused in other places.\n\nChange-Id: If0ad73022c2237500cdc10c5330e26ffc2c582e9\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "92312d6c10472f6a96298bb9464b6883f25d4b21",
      "tree": "6ebf95c9a91c990b985d738eee67c3285f259562",
      "parents": [
        "fafe5345acaf847bd87c4feee8dde1cd0a374f5a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 14 16:13:16 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 17 16:49:02 2016 +0100"
      },
      "message": "Add expandable commit message to abandon and restore screens\n\nThis way one can double-check that abandon/restore is done on the\ncorrect change.\n\nChange-Id: I91ce3d1e9f662b1b6e01946c64c820059bc46a72\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "fafe5345acaf847bd87c4feee8dde1cd0a374f5a",
      "tree": "3a0673d365fb0d8f39ba8393ddc15afa266b6fb9",
      "parents": [
        "ce0141ea7858c8618216d1a381390d0f6433deef"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Mar 14 15:43:23 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 17 16:49:02 2016 +0100"
      },
      "message": "Refactor: Implement expandable commit message as view\n\nThe post review screen shows an expandable commit message. We want to\nuse the same widget on the abandon and restore screens. If the\nexpandable commit message is implemented as view we can easily reuse\nit.\n\nChange-Id: Id13188a520782ff8404e4fcb822befeccffb7229\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "ce0141ea7858c8618216d1a381390d0f6433deef",
      "tree": "2e8720c04936fff2adf8ff180e0ecc9aba18cc2b",
      "parents": [
        "e36863626ba3c4f9ff96426ac7f9ade760abb396"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 17 10:05:31 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 17 10:05:31 2016 +0100"
      },
      "message": "Rename RestoreActivity to RestoreFragment as it is a Fragment\n\nChange-Id: I8a4f413c0dfa94101487268ea47245177049ae86\n"
    },
    {
      "commit": "e36863626ba3c4f9ff96426ac7f9ade760abb396",
      "tree": "a75f9083fa3a31a1ea4a7b25de509ca1295c22be",
      "parents": [
        "c6a1b34658e41054af5a213d294b13be8b1f61bd",
        "093aefede8ab59a0cd53541b2d9bf29da777e87e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Mar 16 12:26:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 16 12:26:28 2016 +0000"
      },
      "message": "Merge \"Fix spelling mistake\""
    },
    {
      "commit": "093aefede8ab59a0cd53541b2d9bf29da777e87e",
      "tree": "f33536679df667b400c196c6cd02fa0464b4f81a",
      "parents": [
        "58b083f603fb47e2ad6ad9203ad5bfd9d9e6206f"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Mar 16 13:16:23 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Mar 16 13:16:23 2016 +0100"
      },
      "message": "Fix spelling mistake\n\nChange-Id: I628028a01b48e11b72bc6a30d4e89d471dbc146b\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "c6a1b34658e41054af5a213d294b13be8b1f61bd",
      "tree": "93989d8b556b04d1ec300fbc622623b7a96a8770",
      "parents": [
        "58b083f603fb47e2ad6ad9203ad5bfd9d9e6206f"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 16:05:40 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Tue Mar 15 10:59:44 2016 +0100"
      },
      "message": "Use a higher-resolution ReviewIt logo\n\nThe PNG was rastered with Gimp from diffymute.svg [1]. It also removes the\napp\u0027s name from the logo, but that is probably fine as it still was the\nold \"Review It!?\" name, and rendering the correct \"app_name\" text to a\nbackground drawable is quite a bit of work.\n\n[1] https://groups.google.com/d/msg/repo-discuss/nLCvwG2POpM/ENLsQX3ldugJ\n\nChange-Id: I5d973452e17e9e68992b406d33417c63d5cf9233\n"
    },
    {
      "commit": "58b083f603fb47e2ad6ad9203ad5bfd9d9e6206f",
      "tree": "0402da0ba330adb8cd5b16f82be538998fb285c2",
      "parents": [
        "6930208aa17df8850f64e4a62c6197469a35bf94"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 13:44:36 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 13:44:36 2016 +0100"
      },
      "message": "Remove unused mipmap drawables\n\nChange-Id: I545d9e3750db1c3a38433123640ae372f0131cea\n"
    },
    {
      "commit": "6930208aa17df8850f64e4a62c6197469a35bf94",
      "tree": "7b3025b78b7370ee8956d84c626d697fe43ed2b0",
      "parents": [
        "e6c9820f42430fb855dbf28b1e0ad4ec825382e6"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 13:14:20 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 13:15:26 2016 +0100"
      },
      "message": "Remove nested \"drawable-{h,xh}dpi\" directories with unused icons\n\nChange-Id: Ic31c03cf2c512aab076d7f577b96b024af62ef96\n"
    },
    {
      "commit": "e6c9820f42430fb855dbf28b1e0ad4ec825382e6",
      "tree": "c30a81e816f4ca3c217274a9ae2f084a596f753e",
      "parents": [
        "38b07d0add66c25a4f55e0ab617c21766c104f8e"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 13:07:15 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 13:07:15 2016 +0100"
      },
      "message": "Consistently call the app \"ReviewIt\"\n\nDo not use spaces or special characters for simplicity, but use\ncamel-case.\n\nChange-Id: I63ee57164f1f9007abb172b60e26a97dee67cfb3\n"
    },
    {
      "commit": "38b07d0add66c25a4f55e0ab617c21766c104f8e",
      "tree": "b8a71d06f2c960a4b845c6c34fd48d7d1a6136fc",
      "parents": [
        "9a9dea79a68a40019a9eb0aaecdb047872af7f3d"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 12:58:41 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 12:58:41 2016 +0100"
      },
      "message": "README: Remove the note about the GitHub mirror as there is none\n\nChange-Id: I857820438939beea56fa60f3beb045039c765a82\n"
    },
    {
      "commit": "9a9dea79a68a40019a9eb0aaecdb047872af7f3d",
      "tree": "5a4fbde1b86fb6668b0545821890697ea9d54a5f",
      "parents": [
        "2b3a0ad83e8c93deb84015548a1a94414bc5f870"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 12:48:04 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Mon Mar 14 12:48:04 2016 +0100"
      },
      "message": "Rename to README.md as it is a Markdown file\n\nChange-Id: I54c6977e15c4d7977fc14ead0882689b86809c49\n"
    },
    {
      "commit": "2b3a0ad83e8c93deb84015548a1a94414bc5f870",
      "tree": "7cbcad701f77acc87e4e7fe6b629b64f8e33c5b3",
      "parents": [
        "cbda6b05c4af6c38f741c2f52362ea0be39ce335"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 12:01:38 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 12:24:37 2016 +0100"
      },
      "message": "Lint: Simplify an expression\n\nChange-Id: I99e0af127cf3eae8d5030ba055e3488677727eda\n"
    },
    {
      "commit": "cbda6b05c4af6c38f741c2f52362ea0be39ce335",
      "tree": "ffffa75d1caf2e490fbffbda492641cd9568ca83",
      "parents": [
        "7954dbeffedc47902c8f831b41aee856d129be12"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 11:57:00 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 12:24:36 2016 +0100"
      },
      "message": "Lint: Remove unused imports\n\nChange-Id: I59529ae4dd9351bb4a6881be97752f4a013df1eb\n"
    },
    {
      "commit": "7954dbeffedc47902c8f831b41aee856d129be12",
      "tree": "81ad064aad7c8ccf48e54731a2d2bf9ee5e284e9",
      "parents": [
        "47714aa7dfc98ed849586087492fd1b7b393de8b"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 11:53:49 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 12:24:35 2016 +0100"
      },
      "message": "Lint: Remove explicit array creation\n\nChange-Id: Ib081acebebd0d6aa58d9cd54b798e3c377d975c6\n"
    },
    {
      "commit": "47714aa7dfc98ed849586087492fd1b7b393de8b",
      "tree": "3603e0392f542c021c8af2e92e6bc286bb7ac4e3",
      "parents": [
        "2ca150dbb1a045101d7bb221df2f38050363a5f0"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 12:19:39 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Fri Mar 11 12:24:34 2016 +0100"
      },
      "message": "ConfigManager: Do not default to the \"gerrit\" project\n\nFor people trying out the app on their own Gerrit server it is confusing\nif they do not see any changes at first because of this default.\n\nChange-Id: I67c4256e31931f1377dfe5f83bd1bb57f5826ff6\n"
    },
    {
      "commit": "2ca150dbb1a045101d7bb221df2f38050363a5f0",
      "tree": "7ba4dc137b94824abd487bc3396767595364cc5c",
      "parents": [
        "9f795cc310572bcf25f38f278e934a11409cb2fd"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:14:35 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 15:48:10 2016 +0100"
      },
      "message": "Move the gerrit-rest-java-client to replace the link\n\nGit for Windows does not properly support symbolic links out of the box,\nso avoid using them and move the real file to the libs/ directory.\n\nChange-Id: Ic9e7de6619197ab5b8f4eeb2604ff1f78df20b34\n"
    },
    {
      "commit": "9f795cc310572bcf25f38f278e934a11409cb2fd",
      "tree": "a62baa24f00fdfcdf7aec8341ea449ac15cf7ddf",
      "parents": [
        "88b6aae79f4b9ab9535e12d25df36784ac4d0306"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:46:36 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 15:48:09 2016 +0100"
      },
      "message": "Upgrade dependencies to latest versions\n\nAs reported by the gradle-versions-plugin.\n\nChange-Id: I2a9bda3464c82b37cbc7af89dbfb4425213a08e1\n"
    },
    {
      "commit": "88b6aae79f4b9ab9535e12d25df36784ac4d0306",
      "tree": "636a4c1f74bdf78dd7191e416bc5c4ea4ef73c6a",
      "parents": [
        "1ff283a7cc7f149eaf07f36e81aa887ad2f526a9"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:43:58 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 15:48:08 2016 +0100"
      },
      "message": "Use the gradle-versions-plugin to determine outdated dependencies\n\nRun it like\n\n    $ ./gradlew dependencyUpdates\n\nFor more details see https://github.com/ben-manes/gradle-versions-plugin.\n\nChange-Id: I6094bfbc3ee3cc2c5fe21c59fdb2fc6a0b9330ae\n"
    },
    {
      "commit": "1ff283a7cc7f149eaf07f36e81aa887ad2f526a9",
      "tree": "c9174dc6eb9d0c37b4b9fef345f01a27d9a0539a",
      "parents": [
        "3f001b7701e257c899b09268805cf73fac629815"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:06:25 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:17:56 2016 +0100"
      },
      "message": "Retrieve httpclient-android from JCenter instead of committing it\n\nChange-Id: I6f06a98a2307f650da531d7769239aece650ca5d\n"
    },
    {
      "commit": "3f001b7701e257c899b09268805cf73fac629815",
      "tree": "8e7bbf2b9bc82ed7a0a453ba29580c83b3f858be",
      "parents": [
        "d8cc9cfca00a9e17769633c154afcfda5c8bad42"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 09:54:04 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:17:55 2016 +0100"
      },
      "message": "Retrieve guava from JCenter instead of committing it\n\nChange-Id: Ibc097d6450fd6bb43b24dde4c531278a2fa41cbd\n"
    },
    {
      "commit": "d8cc9cfca00a9e17769633c154afcfda5c8bad42",
      "tree": "9e0ea959ebc8752e20e60d1c14ba7eeb121aacde",
      "parents": [
        "a0e2740c693ce4f228648fb7890d2bac31050ac5"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 09:50:50 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:17:54 2016 +0100"
      },
      "message": "Retrieve gson from JCenter instead of committing it\n\nChange-Id: I7f2a55f36c5822d15eef4e81ca143a72a37c213f\n"
    },
    {
      "commit": "a0e2740c693ce4f228648fb7890d2bac31050ac5",
      "tree": "3ba07298b4d8a951d266253f27e79601a797d011",
      "parents": [
        "01f24396b337ad8dbd7ceb2771e390b824d60d63"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 09:46:45 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:17:53 2016 +0100"
      },
      "message": "Consistently use single quotes if no variable interpolation is required\n\nChange-Id: I8319629778d0e99eab80ff99894623ab8ebfa9c1\n"
    },
    {
      "commit": "01f24396b337ad8dbd7ceb2771e390b824d60d63",
      "tree": "f1254471df6a157b9c6f92ea68e52d9243d9eb30",
      "parents": [
        "1b817a8b170ee20ab9c98649444980d28ef8a487"
      ],
      "author": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 09:41:42 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Schuberth",
        "email": "sschuberth@gmail.com",
        "time": "Thu Mar 10 11:17:47 2016 +0100"
      },
      "message": "Upgrade Gradle to version 2.11\n\nChange-Id: Ib11743f964975f03800c21929276d2fd39b0c6e9\n"
    },
    {
      "commit": "1b817a8b170ee20ab9c98649444980d28ef8a487",
      "tree": "d3d9378e31578afc9e2215e0ff247e26e73601f9",
      "parents": [],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Jan 08 13:18:01 2016 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Mar 10 08:34:55 2016 +0100"
      },
      "message": "Android app for sorting and reviewing changes\n\nThe \u0027Review It!?\u0027 app is an Android application for Gerrit that allows\nsorting of incoming changes and review of small/trivial changes.\n\nThere is a drawer menu that allows switching between the sorting and\nthe review mode of the app.\n\nSorting of incoming changes\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nWhen working with Gerrit it is a common workflow that reviewers are\nnot always explicitly assigned, but that committers and contributors\nwatch the incoming changes and choose those changes for review that\nare interesting to them.\n\nWatching incoming changes can be done in different ways, e.g\n- manually go through the list of open changes\n- register project watches to get email notifications about new\n  changes\n\nThese approaches have some problems in common when the number of\nincoming changes gets too high:\n- some changes of interest are not noticed (e.g. get lost in the mail\n  inbox)\n- at the time of notification there may be no time for immediate\n  review, and at the moment when there is time to review, some of the\n  interesting changes have been forgotten\n- changes that are not interesting popup again and again whenever they\n  are updated\n\nThe \u0027ReviewIt!?\u0027 Android app tries to solve these problems by offering\na simple way to sort incoming changes:\n- mark interesting changes to review them later (by putting a labeled\n  star on them)\n- mark non-interesting changes as ignored\n\nThe actual review of the changes may be done in the Gerrit web UI on a\nlarge screen or directly in the app by using its review functionality\n(see below).\n\nThe idea of the sorting is that it allows you to stay updated about\nyour project while you are not in office (see new changes and sort\nthem), but the code review is done only later, e.g. because the small\ndisplay of a phone is not supporting reviews very well.\n\nThe changes that have been starred are accessible by a change query or\na Gerrit dashboard, and hence they can be easily found when there is\ntime to do reviews. The app should configure a \u0027My\u0027 menu entry for\nthis dashboard automatically (not implemented yet).\n\nUpdates for ignored changes will be filtered out so that the noise is\nreduced.\n\nIn addition to starring/ignoring a change, the app also offers to skip\nchanges. Skipping a change means that the user is asked about this\nchange once more when it was updated.\n\nWithin the app you can define a change query for the incoming changes.\nThe results are then presented one by one. For each change a decision\n(star, ignore or skip) has to be made to go to the next change.\nStarring/ignoring a change can be done by swiping the change to the\nright/left side. In addition there are buttons to trigger starring,\nignoring and skipping a change.\n\nThe main sorting screen provides the information that is most relevant\nto deciding whether a change is interesting:\n- subject + commit message\n- project, branch, topic\n- age (when was the change last updated)\n- owner\n- patch set number\n- number of positive and negative Code-Review votes\n- number of comments\n- number of reviewers\n- positive/negative Verified votes\n- whether the change is mergable\n- change status if merged/abandoned\n\nThis information is presented in a very compressed way and the focus\nis on the subject and the commit message.\n\nBy clicking on the bottom of the change one can also go to a detailed\nchange view where more information is presented, e.g. the change\nnumber, the change link, the approvals and the list of files. This\ndetailed change view is zoomable.\n\nThe file diff can be seen in a unified diff view with intraline diff\nhighlighting. If wanted one can start reviewing the change here (see\nmore about review below).\n\nAll actions (star, ignore and skip) are undoable by clicking on the\nundo action in the menu, so that mistakes in sorting can be easily\ncorrected.\n\nSometimes when watching a change one knows another person that is\nwell suited to review this change. This is why there is an add\nreviewer action in the menu that allows to add another person as\nreviewer. Reviewer names are auto-completed on typing.\n\nThere are also menu entries to abandon/restore and reload the current\nchange.\n\nReview changes\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nIt is envisioned to present the user a change list from which he can\nselect a change and start reviewing it (not implemented yet).\n\nThe files are shown as unified diff with intraline diff highlighting.\nYou can see the unified diff for all files in a single scroll view or\npage through the change file by file. While scrolling the file name is\nsticky at the top of the screen.\n\nContext lines are collapsed and can be expanded as needed.\n\nAt the bottom of the unified diff view there is an expandable panel\nthat presents quick-voting buttons for the Code-Review label.\n\nPressing on a quick-voting button leads to a publish screen where a\nsummary message can be provided and voting on other labels is\npossible. By clicking on the \u0027Publish\u0027 button the review is sent to\nthe server. If Code-Review+2 is selected a \u0027Publish and Submit\u0027 button\nappears that allows to submit the change right away.\n\nInline commenting is not implemented yet.\n\nThe goal is to allow review of small/trivial changes, but not to\nsupport review of arbitrary large changes.\n\nSettings\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nA setting screens allows to configure the change query for the\nincoming changes, the star label and the server configuration.\n\nThe star label will be used to mark changes as interesting or as\nskipped.\n\nIt is possible to configure multiple servers, each with URL, user and\npassword.\n\nFor googlesource.com servers there is support to easily import the\nuser credentials by copy and paste.\n\nThe configuration is stored in the app preferences and the\nconfiguration values are encrypted.\n\nWhen starting the app for the first time there is a short introduction\nthat explains the basic functions and asks for the server connection.\n\nLicenses\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThe \u0027Review It!?\u0027 app is licensed under the Apache License 2.0.\nExecutable distributions also include other software components that\nare provided under additional licenses.\n\nTo connect to the Gerrit server the app uses the\ngerrit-rest-java-client [1] by Urs Wolfer which is available under the\nApache License, Version 2.0.\n\nThe used icons are taken from the Material icons set [2].\n\nThe Diffy logo was created by Sara Owens (http://inkylabs.com/).\n\nDisclaimer\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThis app is still a prototype and not fully functional. E.g. the\nignore, skip and star actions are not implemented yet and don\u0027t have\nany effect.\n\nThe ignore, skip and star functionality requires a server that\nsupports labeled stars and runs notedb.\n\nHere some things that were not done for this initial version:\n- implement change list for starting reviews\n- implement ignore/skip/star\n- more info on the detailed change screen\n  * summary comments\n  * hashtags\n  * related changes\n- implement paging for approvals on detailed change screen similar to\n  how it is done for the files (implement a custom widget for the\n  paging functionality that can be reused)\n- allow to display more details as icons in change box\n  * number of files\n  * change size\n  * number of changes in the same topic\n  * icon for other labels (abbreviated label name overlayed with small\n    thumb up/down icon in lower right corner), e.g. for Verified\n- when swiping change box to left/right, in addition to changing the\n  color of the change box, show an overlayed star/ignore image\n  (relying on coloring only is bad for color blind people)\n- add commit message to file list\n- make bottom panel in unified diff pullable\n- show commit message in Abandon/Restore fragments (as it is already\n  done in PostReviewFragment)\n- the configuration should allow to store multiple query\n  configurations + the user should be able to switch between them\n  quickly\n- make buttons in setting screens blue\n- allow to expand the one sentence help text describing the app to get\n  a detailed description of the app (basically provide more info from\n  what is contained in this commit message)\n- the user should be able to configure favourite reviewers that can be\n  added by a single click\n- in the configuration there should be a button to create/update a My\n  menu entry on the server that opens a query that shows all the\n  changes starred by the app\n- feedback button\n- automatically check whether the server version is compatible with\n  the app\n- notifications when there are new query results\n- implement proper build without committing the used libraries\n- support anonymous try-out mode that only allows to page through the\n  changes without any actions\n- remember missing avatars and don\u0027t try to download them again and\n  again (e.g. if avatars are disabled on the server)\n\n[1] https://github.com/uwolfer/gerrit-rest-java-client\n[2] https://design.google.com/icons/\n\nChange-Id: I6a85bb2f3c80c0a47a448474b47a977151823a95\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    }
  ]
}
