注意:这个工具是用来导入到中国区节点的
依赖: gevent、requests
Ubuntu 可以
# apt-get install python-gevent python-requests
| # (42f63b0de7318fe1 is a device id) | |
| adb -s 075d0cdb0ae533b1 shell setprop log.tag.Volley VERBOSE |
| private class HttpInterceptor implements Interceptor { | |
| @Override | |
| public Response intercept(Chain chain) throws IOException { | |
| Request request = chain.request(); | |
| //Build new request | |
| Request.Builder builder = request.newBuilder(); | |
| builder.header("Accept", "application/json"); //if necessary, say to consume JSON | |
| emailChangeObservable = RxTextView.textChangeEvents(email); | |
| passwordChangeObservable = RxTextView.textChangeEvents(password); | |
| // force-disable the button | |
| submitButton.setEnabled(false); | |
| Observable.combineLatest(emailChangeObservable, passwordChangeObservable, | |
| (emailObservable, passwordObservable) -> { | |
| boolean emailCheck = emailObservable.text().length() >= 3; | |
| boolean passwordCheck = passwordObservable.text().length() >= 3; |
| /* basic usage */ | |
| ViewGroup root = (ViewGroup) findViewById(android.R.id.content); | |
| LayoutTraverser.build(new LayoutTraverser.Processor() { | |
| @Override | |
| public void process(View view) { | |
| // do stuff with the view | |
| } | |
| }).traverse(root); |
| package aa.rx; | |
| import io.reactivex.Observable; | |
| import io.reactivex.ObservableTransformer; | |
| import io.reactivex.Scheduler; | |
| import java.util.List; | |
| import java.util.concurrent.TimeUnit; | |
| /** | |
| * <a href="https://stackoverflow.com/a/49866518/4068957">Inspired</a> |