Caching result of call to ActivityManager.isRunningInTestHarness()
It's likely not a big issue as it's retrieved from SystemProperties but
because it's just for changing test behaviour and happens every time QS
is fully open - let's cache it.
Bug: 295643272
Test: Just caching value which maaaybe improves performance metrics
Change-Id: I4b0f513a7a674a18ea74be02d1137ebc5eeec2f0
diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java
index ddd9463..1843823 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java
@@ -78,6 +78,14 @@
private int mMinRows = 1;
private int mMaxColumns = TileLayout.NO_MAX_COLUMNS;
+ /**
+ * it's fine to read this value when class is initialized because SysUI is always restarted
+ * when running tests in test harness, see SysUiTestIsolationRule. This check is done quite
+ * often - with every shade open action - so we don't want to potentially make it less
+ * performant only for test use case
+ */
+ private boolean mRunningInTestHarness = ActivityManager.isRunningInTestHarness();
+
public PagedTileLayout(Context context, AttributeSet attrs) {
super(context, attrs);
mScroller = new Scroller(context, SCROLL_CUBIC);
@@ -590,11 +598,11 @@
private boolean shouldNotRunAnimation(Set<String> tilesToReveal) {
boolean noAnimationNeeded = tilesToReveal.isEmpty() || mPages.size() < 2;
boolean scrollingInProgress = getScrollX() != 0 || !beginFakeDrag();
- // isRunningInTestHarness() to disable animation in functional testing as it caused
+ // checking mRunningInTestHarness to disable animation in functional testing as it caused
// flakiness and is not needed there. Alternative solutions were more complex and would
// still be either potentially flaky or modify internal data.
// For more info see b/253493927 and b/293234595
- return noAnimationNeeded || scrollingInProgress || ActivityManager.isRunningInTestHarness();
+ return noAnimationNeeded || scrollingInProgress || mRunningInTestHarness;
}
private int sanitizePageAction(int action) {