Defer adding surface changed callback until view root is valid

- It appears there are cases where the view root is not valid (in
  which case schedule() returns false and we don't wait to handle
  the callback) which causes an NPE, but in these cases we don't
  need to add the surface changed callback at all.

Bug: 202776119
Bug: 242347940
Bug: 242897135
Test: Launch an app with sharesheet, swipe up and verify that
      screenshot callbacks

Change-Id: Icc3afc604bd925c5d49c693b7de51755f5a8bd42
1 file changed