)]}'
{
  "commit": "5e6c273cdf57cc43d1833977d81920443e62cdc9",
  "tree": "594b26179a25bad6a0751f248eb79b89f6864462",
  "parents": [
    "a9573379e273b36e3cb89da822d3e4e987c457fd"
  ],
  "author": {
    "name": "wilsonshih",
    "email": "wilsonshih@google.com",
    "time": "Fri Oct 15 10:57:48 2021 +0800"
  },
  "committer": {
    "name": "Issei Suzuki",
    "email": "issei@google.com",
    "time": "Wed Oct 20 14:43:26 2021 +0200"
  },
  "message": "Prevent the occlusion state mismatch between WM and SystemUI.\n\nThe mismatch condition could happen due to the race condition from\nkeyguard unlock animation and the execute of AppTransition.\n\nPre-condition: keyguard is locked and showing a showWhenLocked activity\non top of device, while starting another activity B without\nshowWhenLocked. The issue sequence is:\n\n1. Start Activity B and it is no occluded, update\nPWM#onKeyguardOccludedChangedLw(occluded \u003d false), because keyguard is\nshowing so set mKeyguardOccludedChanged to true.\n2. Because device was occluded, there will attach showWhenLocked flag\nto the starting window of Activity B, when this starting window added\nto WM, the occluded state chage to true and overwrite the\nmPendingKeyguardOccluded again.\n3. Keyguard unlock animation finish, WM receive keyguard showing become\nfalse.\n4. Starting window removed so occluded state change to false, because\nthe keyguard is hidden, PWM will update the occluded value to SystemUI\ndirectly.\n5. App Transition start, PWM#applyKeyguardOcclusionChange with the\nmPendingKeyguardOccluded value, which was true, thus the occluded state\nbecome mismatch.\nIf the timing between 3, 4, 5 has slightly change, then this issue won\u0027t\nhappen.\nAnyway, an easy fix is to ensure the updated value on PWM should\nalways be the latest value from KeyguardController.\n\nBug: 201328381\nTest: atest KeyguardTests KeyguardTransitionTests KeyguardLockedTests\nChange-Id: I69e9cbb6238a19cf75ac0c9cb16adb2310399876\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a9a2827dad061459ccad7d6573af0d6a015fc12",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/policy/PhoneWindowManager.java",
      "new_id": "cda7407dc98c07da8b36a80445b8f9fccc318b55",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/policy/PhoneWindowManager.java"
    }
  ]
}
