OSDN Git Service

Fixes for FlashlightTile lifecycle
authorJason Monk <jmonk@google.com>
Wed, 11 Jan 2017 14:41:05 +0000 (09:41 -0500)
committerJason Monk <jmonk@google.com>
Wed, 11 Jan 2017 14:41:05 +0000 (09:41 -0500)
Change-Id: I690440465ef5312d77a279e73eaa22ccbdfbcd53
Fixes: 33861261
Test: runtest systemui

packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java
packages/SystemUI/src/com/android/systemui/statusbar/policy/FlashlightControllerImpl.java

index d86aebf..416c7ce 100644 (file)
@@ -47,13 +47,11 @@ public class FlashlightTile extends QSTile<QSTile.BooleanState> implements
     public FlashlightTile(Host host) {
         super(host);
         mFlashlightController = host.getFlashlightController();
-        mFlashlightController.addCallback(this);
     }
 
     @Override
     protected void handleDestroy() {
         super.handleDestroy();
-        mFlashlightController.removeCallback(this);
     }
 
     @Override
@@ -63,6 +61,11 @@ public class FlashlightTile extends QSTile<QSTile.BooleanState> implements
 
     @Override
     public void setListening(boolean listening) {
+        if (listening) {
+            mFlashlightController.addCallback(this);
+        } else {
+            mFlashlightController.removeCallback(this);
+        }
     }
 
     @Override
index 008d837..f0cfa2c 100644 (file)
@@ -121,6 +121,8 @@ public class FlashlightControllerImpl implements FlashlightController {
             }
             cleanUpListenersLocked(l);
             mListeners.add(new WeakReference<>(l));
+            l.onFlashlightAvailabilityChanged(mTorchAvailable);
+            l.onFlashlightChanged(mFlashlightEnabled);
         }
     }