Merge "Make StatusBar optional in GlobalScreenshot."
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
index 264d644..4635884 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
@@ -101,6 +101,7 @@
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
@@ -109,6 +110,7 @@
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
+import dagger.Lazy;
 
 /**
  * POD used in the AsyncTask which saves an image in the background.
@@ -1041,8 +1043,9 @@
         private final StatusBar mStatusBar;
 
         @Inject
-        public ActionProxyReceiver(StatusBar statusBar) {
-            mStatusBar = statusBar;
+        public ActionProxyReceiver(Optional<Lazy<StatusBar>> statusBarLazy) {
+            Lazy<StatusBar> statusBar = statusBarLazy.orElse(null);
+            mStatusBar = statusBar != null ? statusBar.get() : null;
         }
 
         @Override
@@ -1067,8 +1070,13 @@
                 context.startActivityAsUser(actionIntent, opts.toBundle(), UserHandle.CURRENT);
             };
 
-            mStatusBar.executeRunnableDismissingKeyguard(startActivityRunnable, null,
-                    true /* dismissShade */, true /* afterKeyguardGone */, true /* deferred */);
+            if (mStatusBar != null) {
+                mStatusBar.executeRunnableDismissingKeyguard(startActivityRunnable, null,
+                        true /* dismissShade */, true /* afterKeyguardGone */,
+                        true /* deferred */);
+            } else {
+                startActivityRunnable.run();
+            }
         }
     }