diff options
Diffstat (limited to 'tests/input/src/com/android/tv/testinput/TestTvInputService.java')
-rw-r--r-- | tests/input/src/com/android/tv/testinput/TestTvInputService.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/tests/input/src/com/android/tv/testinput/TestTvInputService.java b/tests/input/src/com/android/tv/testinput/TestTvInputService.java index 659b341f..621ceacb 100644 --- a/tests/input/src/com/android/tv/testinput/TestTvInputService.java +++ b/tests/input/src/com/android/tv/testinput/TestTvInputService.java @@ -326,11 +326,16 @@ public class TestTvInputService extends TvInputService { if (currentSurface != null) { String now = new Date(mCurrentPositionMs).toString(); String name = currentChannel == null ? "Null" : currentChannel.name; - Canvas c = currentSurface.lockCanvas(null); - c.drawColor(0xFF888888); - c.drawText(name, 100f, 200f, mTextPaint); - c.drawText(now, 100f, 400f, mTextPaint); - currentSurface.unlockCanvasAndPost(c); + try { + Canvas c = currentSurface.lockCanvas(null); + c.drawColor(0xFF888888); + c.drawText(name, 100f, 200f, mTextPaint); + c.drawText(now, 100f, 400f, mTextPaint); + // Assuming c.drawXXX will never fail. + currentSurface.unlockCanvasAndPost(c); + } catch (IllegalArgumentException e) { + // The surface might have been abandoned. Ignore the exception. + } if (DEBUG) { Log.v(TAG, "Post to canvas"); } |