aboutsummaryrefslogtreecommitdiff
path: root/src/com
diff options
context:
space:
mode:
authorKevin Jin <kjin@google.com>2013-07-16 13:31:50 -0700
committerKevin Jin <kjin@google.com>2013-07-16 13:31:50 -0700
commitb18bb64ed9513bedf8222e6915abb5164e9108f9 (patch)
tree4b2652558c6b7e657fed28f3c94c0605cbf2c742 /src/com
parentcc1da1e03a08227d8180cbe3f79271fbab048fc7 (diff)
downloaddroiddriver-b18bb64ed9513bedf8222e6915abb5164e9108f9.tar.gz
add ActivityUtils.setRunningActivitySupplier
This is compatible with other potential runners, such as G3ITR Change-Id: I02379376c9c4a67452cf67cda5be9bc273fbc3c6
Diffstat (limited to 'src/com')
-rw-r--r--src/com/google/android/droiddriver/runner/TestRunner.java14
-rw-r--r--src/com/google/android/droiddriver/util/ActivityUtils.java21
2 files changed, 24 insertions, 11 deletions
diff --git a/src/com/google/android/droiddriver/runner/TestRunner.java b/src/com/google/android/droiddriver/runner/TestRunner.java
index 1588f8a..4474894 100644
--- a/src/com/google/android/droiddriver/runner/TestRunner.java
+++ b/src/com/google/android/droiddriver/runner/TestRunner.java
@@ -27,6 +27,7 @@ import android.util.Log;
import com.android.internal.util.Predicate;
import com.google.android.droiddriver.util.ActivityUtils;
import com.google.android.droiddriver.util.Logs;
+import com.google.common.base.Supplier;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@@ -45,6 +46,7 @@ import java.util.Set;
public class TestRunner extends InstrumentationTestRunner {
private final Set<Activity> activities = Sets.newIdentityHashSet();
private final AndroidTestRunner androidTestRunner = new AndroidTestRunner();
+ private Activity runningActivity;
/**
* Returns an {@link AndroidTestRunner} that is shared by this and super, such
@@ -94,6 +96,14 @@ public class TestRunner extends InstrumentationTestRunner {
@Override
public void startTest(Test arg0) {}
});
+
+ ActivityUtils.setRunningActivitySupplier(new Supplier<Activity>() {
+ @Override
+ public Activity get() {
+ return runningActivity;
+ }
+ });
+
super.onStart();
}
@@ -146,14 +156,14 @@ public class TestRunner extends InstrumentationTestRunner {
@Override
public void callActivityOnResume(Activity activity) {
super.callActivityOnResume(activity);
- ActivityUtils.setRunningActivity(activity);
+ runningActivity = activity;
}
@Override
public void callActivityOnPause(Activity activity) {
super.callActivityOnPause(activity);
if (activity == ActivityUtils.getRunningActivity()) {
- ActivityUtils.setRunningActivity(null);
+ runningActivity = null;
}
}
}
diff --git a/src/com/google/android/droiddriver/util/ActivityUtils.java b/src/com/google/android/droiddriver/util/ActivityUtils.java
index fad23d1..466caf9 100644
--- a/src/com/google/android/droiddriver/util/ActivityUtils.java
+++ b/src/com/google/android/droiddriver/util/ActivityUtils.java
@@ -18,29 +18,32 @@ package com.google.android.droiddriver.util;
import android.app.Activity;
+import com.google.android.droiddriver.instrumentation.InstrumentationDriver;
+import com.google.common.base.Supplier;
+
/**
* Static helper methods for retrieving activities.
*/
public class ActivityUtils {
- private static Activity runningActivity;
+ private static Supplier<Activity> runningActivitySupplier;
/**
- * Sets the running (a.k.a. resumed or foreground) activity. Called from
- * {@link com.google.android.droiddriver.runner.TestRunner}. If a custom
- * runner is used, it must call this method at appropriate time, otherwise
- * {@link com.google.android.droiddriver.instrumentation.InstrumentationDriver}
- * won't work.
+ * Sets the Supplier for the running (a.k.a. resumed or foreground) activity.
+ * Called from {@link com.google.android.droiddriver.runner.TestRunner}. If a
+ * custom runner is used, this method must be called appropriately, otherwise
+ * {@link #getRunningActivity} won't work.
*/
- public static synchronized void setRunningActivity(Activity activity) {
- runningActivity = activity;
+ public static synchronized void setRunningActivitySupplier(Supplier<Activity> activitySupplier) {
+ runningActivitySupplier = activitySupplier;
}
/**
* Gets the running (a.k.a. resumed or foreground) activity.
+ * {@link InstrumentationDriver} depends on this.
*
* @return the currently running activity, or null if no activity has focus.
*/
public static synchronized Activity getRunningActivity() {
- return runningActivity;
+ return runningActivitySupplier.get();
}
}