)]}'
{
  "commit": "0f47284af35376cf1b1f1e009a930d99be154db7",
  "tree": "126ac0deb6d8ba097908df3ca73af34b70843bb3",
  "parents": [
    "148eba158ca7a7473b46d97793db76315ae76329"
  ],
  "author": {
    "name": "Michael Wachenschwanz",
    "email": "mwachens@google.com",
    "time": "Tue Oct 23 23:02:48 2018 -0700"
  },
  "committer": {
    "name": "Michael Wachenschwanz",
    "email": "mwachens@google.com",
    "time": "Mon Oct 29 16:21:24 2018 -0700"
  },
  "message": "Refactor AppTimeLimitController for Session Observers\n\nIntroducing the concept of Usage Session Observers to UsageStats. A\nsession observer monitors usage within individual \"continuous\" sessions\n(brief gaps of non usage may be allowed in a session and still be\nconsidered continuous)\n\nThe new session observer in AppTimeLimitController are both similar and\ndifferent enough from the current app usage observer to warrant\nrefactoring TimeLimitGroup into an OOP friendly abstract base class.\n\nAdded some Observer App handling to avoid clash between registered\nobservers from multiple apps.\n\nReworded packages to observed and usage entities to accomodate future\nchanges, where usage may come from more than just app usage.\n\nReworded moveToForeground/Background to generic usage and allow multiple\nusage entities to be active at the same time to accomodate future\nchanges, where more than just the foreground app can be considered used.\n\nTest: atest FrameworksServicesTests:AppTimeLimitControllerTests\nBug: 111465038\nChange-Id: I63aebf8b0aa5516111bd6d5e142525d0bee6ef58\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "971352783dcb7b7bdfe5c1636160086d42432da1",
      "old_mode": 33188,
      "old_path": "core/java/android/app/usage/IUsageStatsManager.aidl",
      "new_id": "4d52263c1d78d263abbc0bb05c6eff71e847e879",
      "new_mode": 33188,
      "new_path": "core/java/android/app/usage/IUsageStatsManager.aidl"
    },
    {
      "type": "modify",
      "old_id": "047adddd794db4a3397a054c36b91f194a3a71ec",
      "old_mode": 33188,
      "old_path": "services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java",
      "new_id": "793d6b0639a8ff4e4ed877f313919f470bc08992",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/usage/AppTimeLimitControllerTests.java"
    },
    {
      "type": "modify",
      "old_id": "5916b04c079a3f91f26ccd4bfca98b976961a88a",
      "old_mode": 33188,
      "old_path": "services/usage/java/com/android/server/usage/AppTimeLimitController.java",
      "new_id": "eaaf9b2210db8ec7c03e6a83bd68015e2402f65f",
      "new_mode": 33188,
      "new_path": "services/usage/java/com/android/server/usage/AppTimeLimitController.java"
    },
    {
      "type": "modify",
      "old_id": "dd1ddfaf7342004f2e9c8f68ab0574e328a0482a",
      "old_mode": 33188,
      "old_path": "services/usage/java/com/android/server/usage/UsageStatsService.java",
      "new_id": "262125212c14564ba9f8fc83a32b45a3905447a4",
      "new_mode": 33188,
      "new_path": "services/usage/java/com/android/server/usage/UsageStatsService.java"
    }
  ]
}
