Giter VIP home page Giter VIP logo

Comments (3)

zsxwing avatar zsxwing commented on May 13, 2024

delay(delay, unit, AndroidSchedulers.mainThread()) can solve your problem. It will run the work in the UI thread.

from rxandroid.

nsk-mironov avatar nsk-mironov commented on May 13, 2024

It was my mistake to make ViewObservable.input to return Observable<String> instead of Observable<CharSequence> and I agree that it should Observable<CharSequence>. But I don't like the idea that a TextView itself should be emitted. Then reason I made ViewObservable.clicks to return Observable<View> is that there is no any another value to emit when the View is clicked. Of course, it could be Observable<Void> but it seems a bit weird for me.

I think we should change the return type of ViewObservable.input to Observable<CharSequence> (and probably rename to ViewObservable.text) and remove the existing ViewObservable.text method. I know that it's a breaking change, but it shouldn't be difficult to migrate.

from rxandroid.

ronshapiro avatar ronshapiro commented on May 13, 2024

I did a little bit more investigation into this and delay(delay, unit, AndroidSchedulers.mainThread()) did not work either. The Scheduler parameter only schedules the delaying, but the issue is the mutable value being emitted since .getText() can return an Editable.

If you include an extra map to .map(CharSequence::toString() or .map(SpannableString::new) before the .delay(), everything works as intended. I think the best solution is to return a cloned CharSequence via new SpannableString(CharSequence), or to return the instance directly and include a disclaimer that it may be mutable.

from rxandroid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.