Fix NavigationBarController NPE
SystemUI would crash if NavigationBarFragment wasn't available
yet.
Test: mp sysuig # boots
Test: atest NavigationBarControllerTest
Fixes: 139609145
Change-Id: I1e099c5cc3c23c05140d550dd870722f57055013
(cherry picked from commit 6c1b804105599a98ca03fe32c05f36b1089fbbf3)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java
index 09f8045..16cdfaa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java
@@ -237,6 +237,7 @@
/** @return {@link AssistHandleViewController} (only on the default display). */
public AssistHandleViewController getAssistHandlerViewController() {
- return getDefaultNavigationBarFragment().getAssistHandlerViewController();
+ NavigationBarFragment navBar = getDefaultNavigationBarFragment();
+ return navBar == null ? null : navBar.getAssistHandlerViewController();
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java
index 7d2ccdc..618272c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NavigationBarControllerTest.java
@@ -28,6 +28,7 @@
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -240,4 +241,10 @@
verify(mSecondaryNavBar).disableAnimationsDuringHide(eq(500L));
}
+
+ @Test
+ public void testGetAssistHandlerViewController_noCrash() {
+ reset(mNavigationBarController.mNavigationBars);
+ mNavigationBarController.getAssistHandlerViewController();
+ }
}