Java 类android.support.test.espresso.core.deps.guava.collect.Iterables 实例源码

项目:material-activity-chooser    文件:ActivityUtils.java   
/**
 * Gets an instance of the currently active (displayed) activity.
 * @param activityTestRule test rule
 * @param <T> activity class
 * @return activity instance
 */
public static  <T extends Activity> T getCurrentActivity(@NonNull ActivityTestRule activityTestRule) {
    getInstrumentation().waitForIdleSync();
    final Activity[] activity = new Activity[1];
    try {
        activityTestRule.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                java.util.Collection<Activity> activites = ActivityLifecycleMonitorRegistry.getInstance().getActivitiesInStage(Stage.RESUMED);
                activity[0] = Iterables.getOnlyElement(activites);
            }});
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }
    //noinspection unchecked
    return (T) activity[0];
}
项目:americano    文件:RelativeMatcher.java   
@Override
public boolean matchesSafely(final View testView) {
    if (!mTargetPredicate.apply(testView))
        return false;

    Predicate<View> pred = new Predicate<View>() {
        @Override
        public boolean apply(@Nullable View targetView) {
            return mPredicate.apply(testView, targetView);
        }
    };
    Iterable<View> traversal = Iterables.filter(breadthFirstViewTraversal(testView.getRootView()), new Predicate<View>() {
        @Override
        public boolean apply(@Nullable View input) {
            return input != testView && mTargetPredicate.apply(input);
        }
    });
    if (Iterables.isEmpty(traversal)) {
        throw new NoMatchingViewException.Builder().withViewMatcher(mTarget).build(); // TODO: build an actual err msg
    }
    switch (mType) {
        case ANY:   return Iterables.any(traversal, pred);
        case ALL:   return Iterables.all(traversal, pred);
        case NONE:  return !Iterables.any(traversal, pred);
        default:    throw new IllegalStateException("impossible mType");
    }
}