package com.xiecc.seeWeather.common.utils;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.DrawerLayout.DrawerListener;
import android.view.View;
import com.xiecc.seeWeather.common.Irrelevant;
import io.reactivex.Observable;
/**
* Created by HugoXie on 16/6/25.
*
* Email: Hugo3641@gamil.com
* GitHub: https://github.com/xcc3641
* Info:
*/
public class RxDrawer {
private static final float OFFSET_THRESHOLD = 0.03f;
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);
});
}
}