[Divider] Fix a crash because of null renderer

Because the ending snap animation may take some time, the renderer can
become null during this process, causing NPE. This happens rarely and is
only observed when finishing an activity while dragging animation is
played.

Bug: 355252010
Test: atest DividerPresenterTest
Flag: com.android.window.flags.activity_embedding_interactive_divider_flag
Change-Id: Id32d7a7ce016d928bf409778bfe3f912bb89656f
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/DividerPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/DividerPresenter.java
index 544f0f3..a06a75b 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/DividerPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/DividerPresenter.java
@@ -565,6 +565,7 @@
         return true;
     }
 
+    // Only called by onTouch() and mRenderer is already null-checked.
     @GuardedBy("mLock")
     private void onStartDragging(@NonNull MotionEvent event) {
         mVelocityTracker = VelocityTracker.obtain();
@@ -590,6 +591,7 @@
         });
     }
 
+    // Only called by onTouch() and mRenderer is already null-checked.
     @GuardedBy("mLock")
     private void onDrag(@NonNull MotionEvent event) {
         if (mVelocityTracker != null) {
@@ -660,8 +662,10 @@
 
     @GuardedBy("mLock")
     private void updateDividerPosition(int position) {
-        mRenderer.setDividerPosition(position);
-        mRenderer.updateSurface();
+        if (mRenderer != null) {
+            mRenderer.setDividerPosition(position);
+            mRenderer.updateSurface();
+        }
     }
 
     @GuardedBy("mLock")
@@ -669,7 +673,10 @@
         // Veil visibility change should be applied together with the surface boost transaction in
         // the wct.
         final SurfaceControl.Transaction t = new SurfaceControl.Transaction();
-        mRenderer.hideVeils(t);
+
+        if (mRenderer != null) {
+            mRenderer.hideVeils(t);
+        }
 
         // Callbacks must be executed on the executor to release mLock and prevent deadlocks.
         // mDecorSurfaceOwner may change between here and when the callback is executed,
@@ -684,8 +691,10 @@
                         }
                     });
         });
-        mRenderer.mIsDragging = false;
-        mRenderer.mDragHandle.setPressed(mRenderer.mIsDragging);
+        if (mRenderer != null) {
+            mRenderer.mIsDragging = false;
+            mRenderer.mDragHandle.setPressed(mRenderer.mIsDragging);
+        }
     }
 
     /**