diff options
| author | 2022-04-13 12:20:25 +0200 | |
|---|---|---|
| committer | 2022-04-13 12:21:14 +0200 | |
| commit | aef1de8f85b8daa879d047a6c93f01036bfee4ef (patch) | |
| tree | 5ddd2e1a8e512070069c2206a05bb3c32c1aff4f | |
| parent | cd2ba6097813090c5189e86a0f268dbfb97d80c0 (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.java | 5 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java | 18 |
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); |