Make StatusBar optional in GlobalScreenshot.

Bug: 143911461
Test: Builds on targets that don't provide StatusBar, e.g. ARC++.
Change-Id: I9b2e80e6bf83c1cd0ac8ccfadd8b3c847664a66f
This commit is contained in:
Garfield Tan
2019-11-04 17:40:26 -08:00
parent 998a7f9a16
commit a224239723

View File

@@ -93,6 +93,7 @@ import java.io.OutputStream;
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;
@@ -100,6 +101,7 @@ import java.util.concurrent.TimeoutException;
import javax.inject.Inject;
import javax.inject.Singleton;
import dagger.Lazy;
/**
* POD used in the AsyncTask which saves an image in the background.
@@ -921,8 +923,9 @@ public class GlobalScreenshot {
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
@@ -947,8 +950,13 @@ public class GlobalScreenshot {
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();
}
}
}