diff --git a/quickstep/src/com/android/launcher3/model/AppEventProducer.java b/quickstep/src/com/android/launcher3/model/AppEventProducer.java index 9f3be69a01..0dde1bd943 100644 --- a/quickstep/src/com/android/launcher3/model/AppEventProducer.java +++ b/quickstep/src/com/android/launcher3/model/AppEventProducer.java @@ -118,7 +118,7 @@ public class AppEventProducer implements StatsLogConsumer { private void sendEvent(AppTarget target, LauncherAtom.ItemInfo locationInfo, int eventId, int targetPredictor) { // TODO: remove the running test check when b/231648228 is fixed. - if (target != null && !Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (target != null && !Utilities.isRunningInTestHarness()) { AppTargetEvent event = new AppTargetEvent.Builder(target, eventId) .setLaunchLocation(getContainer(locationInfo)) .build(); diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index b00c4cbc98..375ed7835a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -280,7 +280,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController { * Returns {@code true} if a Taskbar education should be shown on application launch. */ public boolean shouldShowEduOnAppLaunch() { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { return false; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 2fa22f1663..2864ac7d3c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -24,7 +24,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE; -import static com.android.launcher3.Utilities.IS_RUNNING_IN_TEST_HARNESS; +import static com.android.launcher3.Utilities.isRunningInTestHarness; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING; import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_FULLSCREEN; @@ -337,8 +337,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { int windowFlags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_SLIPPERY | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH; - if (DisplayController.isTransientTaskbar(this) - && !IS_RUNNING_IN_TEST_HARNESS) { + if (DisplayController.isTransientTaskbar(this) && !isRunningInTestHarness()) { windowFlags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt index 00dfaf25c2..bc582e2b65 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarEduTooltipController.kt @@ -28,7 +28,6 @@ import com.airbnb.lottie.LottieProperty.COLOR_FILTER import com.airbnb.lottie.model.KeyPath import com.android.launcher3.R import com.android.launcher3.Utilities -import com.android.launcher3.Utilities.IS_RUNNING_IN_TEST_HARNESS import com.android.launcher3.config.FeatureFlags.ENABLE_TASKBAR_EDU_TOOLTIP import com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_EDU_OPEN import com.android.launcher3.taskbar.TaskbarControllers.LoggableTaskbarController @@ -56,7 +55,8 @@ annotation class TaskbarEduTooltipStep class TaskbarEduTooltipController(val activityContext: TaskbarActivityContext) : LoggableTaskbarController { - private val isTooltipEnabled = !IS_RUNNING_IN_TEST_HARNESS && ENABLE_TASKBAR_EDU_TOOLTIP.get() + private val isTooltipEnabled: Boolean + get() = !Utilities.isRunningInTestHarness() && ENABLE_TASKBAR_EDU_TOOLTIP.get() private val isOpen: Boolean get() = tooltip?.isOpen ?: false diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index b586487f33..7456c8e91f 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -460,7 +460,7 @@ import java.util.StringJoiner; updateIconAlphaForHome(taskbarWillBeVisible ? 1 : 0); // Sync the first frame where we swap taskbar and hotseat. - if (firstFrameVisChanged && mCanSyncViews && !Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (firstFrameVisChanged && mCanSyncViews && !Utilities.isRunningInTestHarness()) { ViewRootSync.synchronizeNextDraw(mLauncher.getHotseat(), mControllers.taskbarActivityContext.getDragLayer(), () -> {}); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 115db25b52..babafd5dd9 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -297,7 +297,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba } return supportsVisualStashing() && isInApp() - && (!Utilities.IS_RUNNING_IN_TEST_HARNESS || mEnableManualStashingDuringTests) + && (!Utilities.isRunningInTestHarness() || mEnableManualStashingDuringTests) && !DisplayController.isTransientTaskbar(mActivity); } diff --git a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java index 07fcf48a07..f16b43df5e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java @@ -91,7 +91,7 @@ public final class RecentsViewStateController extends builder.addOnFrameCallback(() -> mRecentsView.loadVisibleTaskData(FLAG_UPDATE_ALL)); mRecentsView.updateEmptyMessage(); // TODO(b/246283207): Remove logging once root cause of flake detected. - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { Log.d("b/246283207", "RecentsView#setStateWithAnimationInternal getCurrentPage(): " + mRecentsView.getCurrentPage() + ", getScrollForPage(getCurrentPage())): " diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 0a155cbd47..4690d94175 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -139,7 +139,7 @@ public class StatsLogCompatManager extends StatsLogManager { if (IS_VERBOSE) { Log.d(TAG, String.format("\nwriteSnapshot(%d):\n%s", instanceId.getId(), info)); } - if (!Utilities.ATLEAST_R || Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (!Utilities.ATLEAST_R || Utilities.isRunningInTestHarness()) { return; } SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, @@ -438,7 +438,7 @@ public class StatsLogCompatManager extends StatsLogManager { } // TODO: remove this when b/231648228 is fixed. - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { return; } int cardinality = mCardinality.orElseGet(() -> getCardinality(atomInfo)); @@ -636,7 +636,7 @@ public class StatsLogCompatManager extends StatsLogManager { } private static int getCardinality(LauncherAtom.ItemInfo info) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { return 0; } switch (info.getContainerInfo().getContainerCase()) { @@ -758,7 +758,7 @@ public class StatsLogCompatManager extends StatsLogManager { } private static int getHierarchy(LauncherAtom.ItemInfo info) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { return 0; } if (info.getContainerInfo().getContainerCase() == FOLDER) { @@ -801,7 +801,7 @@ public class StatsLogCompatManager extends StatsLogManager { } private static int getSearchAttributes(LauncherAtom.ItemInfo info) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { return 0; } ContainerInfo containerInfo = info.getContainerInfo(); diff --git a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java index 69ed2f8028..4bc41bc4ca 100644 --- a/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java +++ b/quickstep/src/com/android/quickstep/util/MotionPauseDetector.java @@ -129,7 +129,7 @@ public class MotionPauseDetector { * @param pointerIndex Index for the pointer being tracked in the motion event */ public void addPosition(MotionEvent ev, int pointerIndex) { - long timeoutMs = Utilities.IS_RUNNING_IN_TEST_HARNESS + long timeoutMs = Utilities.isRunningInTestHarness() ? TEST_HARNESS_TRIGGER_TIMEOUT : mMakePauseHarderToTrigger ? HARDER_TRIGGER_TIMEOUT @@ -195,7 +195,7 @@ public class MotionPauseDetector { if (mIsPaused != isPaused) { mIsPaused = isPaused; String logString = "onMotionPauseChanged, paused=" + mIsPaused + " reason=" + reason; - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { Log.d(TAG, logString); } ActiveGestureLog.INSTANCE.addLog(logString); diff --git a/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java b/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java index e928b27751..cf07e6e687 100644 --- a/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java +++ b/quickstep/src/com/android/quickstep/util/QuickstepOnboardingPrefs.java @@ -64,7 +64,7 @@ public class QuickstepOnboardingPrefs extends OnboardingPrefs }); } - if (!Utilities.IS_RUNNING_IN_TEST_HARNESS + if (!Utilities.isRunningInTestHarness() && !hasReachedMaxCount(HOTSEAT_DISCOVERY_TIP_COUNT)) { stateManager.addStateListener(new StateListener() { boolean mFromAllApps = false; diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 16935c13e1..659de37eb5 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -1718,7 +1718,7 @@ public abstract class RecentsView { // TODO(b/246283207): Remove logging once root cause of flake detected. - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { Log.d("b/246283207", "RecentsView#applyLoadPlan() -> " + "previousCurrentPage: " + previousCurrentPage + ", targetPage: " + finalTargetPage diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java index 94b8cd8c71..bc4a5c343f 100644 --- a/src/com/android/launcher3/AppWidgetResizeFrame.java +++ b/src/com/android/launcher3/AppWidgetResizeFrame.java @@ -827,6 +827,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O private boolean hasSeenReconfigurableWidgetEducationTip() { return mLauncher.getSharedPrefs() .getBoolean(KEY_RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN, false) - || Utilities.IS_RUNNING_IN_TEST_HARNESS; + || Utilities.isRunningInTestHarness(); } } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index de60d05b3f..22b07ef66b 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1647,7 +1647,7 @@ public class Launcher extends StatefulActivity @Override protected void onNewIntent(Intent intent) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { Log.d(TestProtocol.PERMANENT_DIAG_TAG, "Launcher.onNewIntent: " + intent); } Object traceToken = TraceHelper.INSTANCE.beginSection(ON_NEW_INTENT_EVT); @@ -3172,7 +3172,7 @@ public class Launcher extends StatefulActivity // Setting the touch point to (-1, -1) will show the options popup in the center of // the screen. - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { Log.d(TestProtocol.PERMANENT_DIAG_TAG, "Opening options popup on key up"); } showDefaultOptions(-1, -1); diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index c3d8a534db..c7431edb5b 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -773,7 +773,7 @@ public abstract class PagedView extends ViewGrou if (mScroller.isFinished() && pageScrollChanged) { // TODO(b/246283207): Remove logging once root cause of flake detected. - if (Utilities.IS_RUNNING_IN_TEST_HARNESS && !(this instanceof Workspace)) { + if (Utilities.isRunningInTestHarness() && !(this instanceof Workspace)) { Log.d("b/246283207", this.getClass().getSimpleName() + "#onLayout() -> " + "if(mScroller.isFinished() && pageScrollChanged) -> getNextPage(): " + getNextPage() + ", getScrollForPage(getNextPage()): " @@ -1713,7 +1713,7 @@ public abstract class PagedView extends ViewGrou return false; } - if (FeatureFlags.IS_STUDIO_BUILD && !Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (FeatureFlags.IS_STUDIO_BUILD && !Utilities.isRunningInTestHarness()) { duration *= Settings.Global.getFloat(getContext().getContentResolver(), Settings.Global.WINDOW_ANIMATION_SCALE, 1); } diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index 7d01f7baf7..59327dc936 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -150,11 +150,14 @@ public final class Utilities { Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; } - public static boolean IS_RUNNING_IN_TEST_HARNESS = - ActivityManager.isRunningInTestHarness(); + private static boolean sIsRunningInTestHarness = ActivityManager.isRunningInTestHarness(); + + public static boolean isRunningInTestHarness() { + return sIsRunningInTestHarness; + } public static void enableRunningInTestHarnessForTests() { - IS_RUNNING_IN_TEST_HARNESS = true; + sIsRunningInTestHarness = true; } public static boolean isPropertyEnabled(String propertyName) { diff --git a/src/com/android/launcher3/allapps/DiscoveryBounce.java b/src/com/android/launcher3/allapps/DiscoveryBounce.java index 0188a476d6..df22425379 100644 --- a/src/com/android/launcher3/allapps/DiscoveryBounce.java +++ b/src/com/android/launcher3/allapps/DiscoveryBounce.java @@ -127,7 +127,7 @@ public class DiscoveryBounce extends AbstractFloatingView { || onboardingPrefs.getBoolean(OnboardingPrefs.HOME_BOUNCE_SEEN) || AbstractFloatingView.getTopOpenView(launcher) != null || launcher.getSystemService(UserManager.class).isDemoUser() - || Utilities.IS_RUNNING_IN_TEST_HARNESS) { + || Utilities.isRunningInTestHarness()) { return; } diff --git a/src/com/android/launcher3/compat/AccessibilityManagerCompat.java b/src/com/android/launcher3/compat/AccessibilityManagerCompat.java index 770e93178e..24cc0acca4 100644 --- a/src/com/android/launcher3/compat/AccessibilityManagerCompat.java +++ b/src/com/android/launcher3/compat/AccessibilityManagerCompat.java @@ -127,7 +127,7 @@ public class AccessibilityManagerCompat { */ private static AccessibilityManager getAccessibilityManagerForTest(Context context) { // If not running in a test harness, don't participate in test exchanges. - if (!Utilities.IS_RUNNING_IN_TEST_HARNESS) return null; + if (!Utilities.isRunningInTestHarness()) return null; final AccessibilityManager accessibilityManager = getManager(context); if (!accessibilityManager.isEnabled()) return null; diff --git a/src/com/android/launcher3/dragndrop/SpringLoadedDragController.java b/src/com/android/launcher3/dragndrop/SpringLoadedDragController.java index 08e50dd96d..0e76bbbb2a 100644 --- a/src/com/android/launcher3/dragndrop/SpringLoadedDragController.java +++ b/src/com/android/launcher3/dragndrop/SpringLoadedDragController.java @@ -43,7 +43,7 @@ public class SpringLoadedDragController implements OnAlarmListener { private long getEnterSpringLoadHoverTime() { // Some TAPL tests are flaky on Cuttlefish with a low waiting time - return Utilities.IS_RUNNING_IN_TEST_HARNESS + return Utilities.isRunningInTestHarness() ? ENTER_SPRING_LOAD_HOVER_TIME_IN_TEST : ENTER_SPRING_LOAD_HOVER_TIME; } diff --git a/src/com/android/launcher3/testing/TestInformationProvider.java b/src/com/android/launcher3/testing/TestInformationProvider.java index 5444d928bf..17b472a473 100644 --- a/src/com/android/launcher3/testing/TestInformationProvider.java +++ b/src/com/android/launcher3/testing/TestInformationProvider.java @@ -61,7 +61,7 @@ public class TestInformationProvider extends ContentProvider { @Override public Bundle call(String method, String arg, Bundle extras) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { TestInformationHandler handler = TestInformationHandler.newInstance(getContext()); handler.init(getContext()); diff --git a/src/com/android/launcher3/testing/TestLogging.java b/src/com/android/launcher3/testing/TestLogging.java index c1516065fc..f95548db2f 100644 --- a/src/com/android/launcher3/testing/TestLogging.java +++ b/src/com/android/launcher3/testing/TestLogging.java @@ -39,13 +39,13 @@ public final class TestLogging { } public static void recordEvent(String sequence, String event) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { recordEventSlow(sequence, event); } } public static void recordEvent(String sequence, String message, Object parameter) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { recordEventSlow(sequence, message + ": " + parameter); } } @@ -58,14 +58,14 @@ public final class TestLogging { } public static void recordKeyEvent(String sequence, String message, KeyEvent event) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + if (Utilities.isRunningInTestHarness()) { recordEventSlow(sequence, message + ": " + event); registerEventNotFromTest(event); } } public static void recordMotionEvent(String sequence, String message, MotionEvent event) { - if (Utilities.IS_RUNNING_IN_TEST_HARNESS && event.getAction() != MotionEvent.ACTION_MOVE) { + if (Utilities.isRunningInTestHarness() && event.getAction() != MotionEvent.ACTION_MOVE) { recordEventSlow(sequence, message + ": " + event); registerEventNotFromTest(event); } diff --git a/src/com/android/launcher3/util/DisplayController.java b/src/com/android/launcher3/util/DisplayController.java index 9ed6700959..3d455d8509 100644 --- a/src/com/android/launcher3/util/DisplayController.java +++ b/src/com/android/launcher3/util/DisplayController.java @@ -139,11 +139,11 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable { // TODO(b/258604917): When running in test harness, use !sTransientTaskbarStatusForTests // once tests are updated to expect new persistent behavior such as not allowing long press // to stash. - if (!Utilities.IS_RUNNING_IN_TEST_HARNESS && FORCE_PERSISTENT_TASKBAR.get()) { + if (!Utilities.isRunningInTestHarness() && FORCE_PERSISTENT_TASKBAR.get()) { return false; } return getInfo().navigationMode == NavigationMode.NO_BUTTON - && (Utilities.IS_RUNNING_IN_TEST_HARNESS + && (Utilities.isRunningInTestHarness() ? sTransientTaskbarStatusForTests : ENABLE_TRANSIENT_TASKBAR.get()); } diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index 2ac1e9481b..68ece039e9 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -341,7 +341,7 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView /** Returns {@code true} if tip has previously been shown on any of {@link BaseWidgetSheet}. */ protected boolean hasSeenEducationTip() { return mActivityContext.getSharedPrefs().getBoolean(KEY_WIDGETS_EDUCATION_TIP_SEEN, false) - || Utilities.IS_RUNNING_IN_TEST_HARNESS; + || Utilities.isRunningInTestHarness(); } @Override diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 77781bd967..f4d6749095 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -939,7 +939,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet protected boolean hasSeenEducationDialog() { return mActivityContext.getSharedPrefs() .getBoolean(KEY_WIDGETS_EDUCATION_DIALOG_SEEN, false) - || Utilities.IS_RUNNING_IN_TEST_HARNESS; + || Utilities.isRunningInTestHarness(); } private void setUpEducationViewsIfNeeded() {