summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGalia Peycheva <galinap@google.com>2021-07-28 13:36:55 +0000
committerGalia Peycheva <galinap@google.com>2021-08-02 10:04:31 +0000
commit3686bac8c3d3cde73542f5faf4241f332430b773 (patch)
tree2357a0901a10a4258ebb9e1bd017995e1d61eabb
parent0a878cabbe8464c89fdb5654b6afd90ce1c661ff (diff)
downloadBasic-3686bac8c3d3cde73542f5faf4241f332430b773.tar.gz
Fix Colors crashing on rotation
This CL makes the Colors dream service create a new SurfaceView and render thread on every onAttachedToWindow. onAttachedToWindow is called every time on a screen rotation. Bug: 160375160 Test: verify Colors is rendered properly and doesn't crash on rotation Change-Id: I5e76ff5c723b840503bbee113a1c6b3dff0e25dc
-rw-r--r--src/com/android/dreams/basic/Colors.java16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/com/android/dreams/basic/Colors.java b/src/com/android/dreams/basic/Colors.java
index d30c174..5bff87b 100644
--- a/src/com/android/dreams/basic/Colors.java
+++ b/src/com/android/dreams/basic/Colors.java
@@ -53,14 +53,6 @@ public class Colors extends DreamService implements SurfaceHolder.Callback {
setInteractive(false);
- mSurfaceView = new SurfaceView(this);
- mSurfaceView.getHolder().addCallback(this);
-
- if (mRendererHandlerThread == null) {
- mRendererHandlerThread = new HandlerThread(TAG);
- mRendererHandlerThread.start();
- mRendererHandler = new Handler(mRendererHandlerThread.getLooper());
- }
}
@Override
@@ -68,6 +60,10 @@ public class Colors extends DreamService implements SurfaceHolder.Callback {
super.onAttachedToWindow();
setInteractive(false);
setFullscreen(true);
+
+ mSurfaceView = new SurfaceView(this);
+ mSurfaceView.getHolder().addCallback(this);
+
setContentView(mSurfaceView);
}
@@ -76,6 +72,10 @@ public class Colors extends DreamService implements SurfaceHolder.Callback {
LOG("surfaceCreated(%s, %d, %d)", holder.getSurface(),
holder.getSurfaceFrame().width(), holder.getSurfaceFrame().height());
+ mRendererHandlerThread = new HandlerThread(TAG);
+ mRendererHandlerThread.start();
+ mRendererHandler = new Handler(mRendererHandlerThread.getLooper());
+
mRendererHandler.post(new Runnable() {
@Override
public void run() {