From 841fa8ad94c27794846905be3804ccc1f356bed6 Mon Sep 17 00:00:00 2001 From: Sid Soundararajan Date: Tue, 26 Apr 2016 11:19:17 -0700 Subject: Add a null check for the thumbnail image for transition This is needed since apps will send a null thumbnail for when some content they do not want screenshotted is playing. BUG: 28343440 Change-Id: Ie1edc78bf16c8ea014a982a115faf9395c9ccab3 --- .../tv/views/RecentsTvTransitionHelper.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/views/RecentsTvTransitionHelper.java b/packages/SystemUI/src/com/android/systemui/recents/tv/views/RecentsTvTransitionHelper.java index 812bff1b84a7..482115ed9b94 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/views/RecentsTvTransitionHelper.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/views/RecentsTvTransitionHelper.java @@ -103,6 +103,16 @@ public class RecentsTvTransitionHelper { EventBus.getDefault().send(new LaunchTaskFailedEvent()); } + Rect taskRect = taskView.getFocusedThumbnailRect(); + // Check both the rect and the thumbnail for null. The rect can be null if the user + // decides to disallow animations, so automatic scrolling does not happen properly. + + // The thumbnail can be null if the app was partially launched on TV. In this case + // we do not override the transition. + if (taskRect == null || task.thumbnail == null) { + return; + } + IRemoteCallback.Stub callback = null; if (animStartedListener != null) { callback = new IRemoteCallback.Stub() { @@ -120,14 +130,11 @@ public class RecentsTvTransitionHelper { }; } try { - Rect taskRect = taskView.getFocusedThumbnailRect(); - if (taskRect != null) { - Bitmap thumbnail = Bitmap.createScaledBitmap(task.thumbnail, taskRect.width(), - taskRect.height(), false); - WindowManagerGlobal.getWindowManagerService() - .overridePendingAppTransitionAspectScaledThumb(thumbnail, taskRect.left, - taskRect.top, taskRect.width(), taskRect.height(), callback, true); - } + Bitmap thumbnail = Bitmap.createScaledBitmap(task.thumbnail, taskRect.width(), + taskRect.height(), false); + WindowManagerGlobal.getWindowManagerService() + .overridePendingAppTransitionAspectScaledThumb(thumbnail, taskRect.left, + taskRect.top, taskRect.width(), taskRect.height(), callback, true); } catch (RemoteException e) { Log.w(TAG, "Failed to override transition: " + e); } -- cgit v1.2.3-59-g8ed1b