diff options
author | Kevin Jin <kjin@google.com> | 2013-07-16 13:31:50 -0700 |
---|---|---|
committer | Kevin Jin <kjin@google.com> | 2013-07-16 13:31:50 -0700 |
commit | b18bb64ed9513bedf8222e6915abb5164e9108f9 (patch) | |
tree | 4b2652558c6b7e657fed28f3c94c0605cbf2c742 /src/com | |
parent | cc1da1e03a08227d8180cbe3f79271fbab048fc7 (diff) | |
download | droiddriver-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.java | 14 | ||||
-rw-r--r-- | src/com/google/android/droiddriver/util/ActivityUtils.java | 21 |
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(); } } |