QS in split shade should listen to changes earlier

This makes QS listen to changes and update itself immediately when expansion starts, compared to current state when state is updated only after full expansion is finished.

Bug: 253162395
Test: QSFragmentTest
Test: go to settings -> change brightness -> expand split shade and see brightness is updated immediately, before shade is fully expanded
Change-Id: If1fb81ed3a0d0963fde83e95650c2b3b7663562c
This commit is contained in:
Michal Brzezinski
2022-11-04 17:12:53 +00:00
parent 71bf4aaf9e
commit 773e787742
2 changed files with 18 additions and 1 deletions

View File

@@ -515,7 +515,13 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
public void setExpanded(boolean expanded) {
if (DEBUG) Log.d(TAG, "setExpanded " + expanded);
mQsExpanded = expanded;
updateQsPanelControllerListening();
if (mInSplitShade && mQsExpanded) {
// in split shade QS is expanded immediately when shade expansion starts and then we
// also need to listen to changes - otherwise QS is updated only once its fully expanded
setListening(true);
} else {
updateQsPanelControllerListening();
}
updateQsState();
}

View File

@@ -439,6 +439,17 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
verify(mQSPanelController).setExpanded(false);
}
@Test
public void startsListeningAfterStateChangeToExpanded_inSplitShade() {
QSFragment fragment = resumeAndGetFragment();
enableSplitShade();
fragment.setQsVisible(true);
clearInvocations(mQSPanelController);
fragment.setExpanded(true);
verify(mQSPanelController).setListening(true, true);
}
@Override
protected Fragment instantiate(Context context, String className, Bundle arguments) {
MockitoAnnotations.initMocks(this);