public static Observable<Irrelevant> close(final DrawerLayout drawer) { return Observable.create(emitter -> { drawer.closeDrawer(GravityCompat.START); DrawerListener listener = new DrawerLayout.SimpleDrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { if (slideOffset < OFFSET_THRESHOLD) { emitter.onNext(Irrelevant.INSTANCE); emitter.onComplete(); drawer.removeDrawerListener(this); } } }; drawer.addDrawerListener(listener); }); }
/** * Returns a {@link ViewAction} that adds an {@link IdlingDrawerListener} as a drawer listener to * the {@link DrawerLayout}. The idling drawer listener wraps any listener that already exists. */ private static ViewAction registerListener() { return new ViewAction() { @Override public Matcher<View> getConstraints() { return isAssignableFrom(DrawerLayout.class); } @Override public String getDescription() { return "register idling drawer listener"; } @Override public void perform(UiController uiController, View view) { DrawerLayout drawer = (DrawerLayout) view; DrawerListener existingListener = getDrawerListener(drawer); if (existingListener instanceof IdlingDrawerListener) { // listener is already registered. No need to assign. return; } drawer.setDrawerListener(IdlingDrawerListener.getInstance(existingListener)); } }; }
private static IdlingDrawerListener getInstance(DrawerListener parentListener) { if (instance == null) { instance = new IdlingDrawerListener(); Espresso.registerIdlingResources(instance); } instance.setParentListener(parentListener); return instance; }
public void setDrawerListener(DrawerListener drawerListener, boolean oneTimeListener) { this.drawerListener = drawerListener; this.oneTimeListener = oneTimeListener; }
public final void setDrawerListener(DrawerLayout.DrawerListener paramDrawerListener) { this.mDrawerListener = paramDrawerListener; }
public void setParentListener(@Nullable DrawerListener parentListener) { this.parentListener = parentListener; }