Disable lockscreen window anim when launching camera.

Prevent the exit animation from running when exiting the lockscreen
due to launching the camera from the camera widget.

Bug:7429770
Change-Id: I2a0148d84158fca11dda4c4a563fe5ab3236be81
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java b/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java
index b38a9ed..66b8c7f 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java
@@ -27,6 +27,7 @@
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.ImageView.ScaleType;
@@ -47,6 +48,7 @@
     private final Handler mHandler = new Handler();
     private final KeyguardActivityLauncher mActivityLauncher;
     private final Callbacks mCallbacks;
+    private final WindowManager mWindowManager;
 
     private View mWidgetView;
     private long mLaunchCameraStart;
@@ -81,6 +83,7 @@
 
         mCallbacks = callbacks;
         mActivityLauncher = activityLauncher;
+        mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
     }
 
     public static CameraWidgetFrame create(Context context, Callbacks callbacks,
@@ -200,6 +203,7 @@
                 scaleX, scaleY,
                 startCenter, finishCenter));
 
+        enableWindowExitAnimation(false);
         animate()
             .scaleX(scale)
             .scaleY(scale)
@@ -305,6 +309,7 @@
         setScaleX(1);
         setScaleY(1);
         setTranslationY(0);
+        enableWindowExitAnimation(true);
     }
 
     @Override
@@ -312,4 +317,14 @@
         super.onAttachedToWindow();
         mHandler.post(mRenderRunnable);
     }
+
+    private void enableWindowExitAnimation(boolean isEnabled) {
+        View root = getRootView();
+        WindowManager.LayoutParams lp = (WindowManager.LayoutParams) root.getLayoutParams();
+        int newWindowAnimations = isEnabled ? com.android.internal.R.style.Animation_LockScreen : 0;
+        if (newWindowAnimations != lp.windowAnimations) {
+            lp.windowAnimations = newWindowAnimations;
+            mWindowManager.updateViewLayout(root, lp);
+        }
+    }
 }