summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Christian Göllner <chrisgollner@google.com> 2022-04-13 12:20:25 +0200
committer Christian Göllner <chrisgollner@google.com> 2022-04-13 12:21:14 +0200
commitaef1de8f85b8daa879d047a6c93f01036bfee4ef (patch)
tree5ddd2e1a8e512070069c2206a05bb3c32c1aff4f
parentcd2ba6097813090c5189e86a0f268dbfb97d80c0 (diff)
QSFragment: fix NPE in setOverScrollAmount
Sometimes this method can be called before the fragment view has been created. Adds a null check as a fix. Test: QSFragmentTest Fixes: 228991399 Change-Id: I950997fc35230196f855fd54fe23e0fb37ee9b9e
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSFragment.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java18
2 files changed, 22 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
index f87f81e40e2c..cca94a64fdf9 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
@@ -519,7 +519,10 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
@Override
public void setOverScrollAmount(int overScrollAmount) {
mOverScrolling = overScrollAmount != 0;
- getView().setTranslationY(overScrollAmount);
+ View view = getView();
+ if (view != null) {
+ view.setTranslationY(overScrollAmount);
+ }
}
@Override
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
index 829445eb92be..40e43cba9273 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
@@ -315,6 +315,24 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
verify(mQuickQSPanelController).setCollapseExpandAction(action);
}
+ @Test
+ public void setOverScrollAmount_setsTranslationOnView() {
+ QSFragment fragment = resumeAndGetFragment();
+
+ fragment.setOverScrollAmount(123);
+
+ assertThat(mQsFragmentView.getTranslationY()).isEqualTo(123);
+ }
+
+ @Test
+ public void setOverScrollAmount_beforeViewCreated_translationIsNotSet() {
+ QSFragment fragment = getFragment();
+
+ fragment.setOverScrollAmount(123);
+
+ assertThat(mQsFragmentView.getTranslationY()).isEqualTo(0);
+ }
+
@Override
protected Fragment instantiate(Context context, String className, Bundle arguments) {
MockitoAnnotations.initMocks(this);