Code Monkey home page Code Monkey logo

chipslibrary's Introduction

Note: this is deprecated. Google made better solution for it in its Material-design SDK:


ChipsLibrary

This is a fork of Google's chips library shown here, and can be downloaded from here

screenshot

What's different from the original library :

  1. It's easy to import and build on Eclipse. :)

  2. Removed buggy dragging feature and the classes it uses.

  3. fixed setOnItemClickListener (for clicking on chips) so that it will use both the chips library's logic AND your code.

  4. Removed T9 searching for phones, and instead you can search for either phone numbers or names, by exactly what you type. Of course, you can always revert back to what Google has done, if you wish.

  5. Added features :

  6. getRecipients - query all recipients (should usually be done on a background thread)

  7. addRecipient , removeRecipient - adds/removes a recipient. also, ability to control if you wish to be notified about chips added/removed when you are the one who triggered it.

  8. setChipListener - sets a listener that'll notify you when the number of chips has changed.

  9. setFocusBehavior - ability to choose what to do when focus removed/received.

  10. New CTOR for the BaseRecipientAdapter, which allows to choose which recipients to use . Note that this is only for demonstrations

  11. setChosenRecipients - ability to set all chosen recipients.

  12. removeAllRecipients - removes all of the chosen recipients

  13. getChosenRecipients - returns all of the chosen recipients

IMPORTANT: you can only safely call the recipients' operations after the view got its size feagured out. You can use the function "runJustBeforeBeingDrawn" as I've written on some StackOverflow posts (like here), in case you need to use those operations as soon as possible.

In order to make it easy for you to find the code for those added features, I've put them all at the end of "RecipientEditTextView.java" file.

  1. Made the code a bit more readable. Not enough, but still... :)

Notes :

  • on some devices (like Galaxy S2 and Galaxy S3) , pressing backspace after the chip will sometimes show its number instead of removing the chip (and its data) completely. There might be some other weird behaviors on those devices, which are caused due to changes on the default behavior of MultiAutoCompleteTextView

  • It seems the original library has a lot of "TODO"s and even some that say to fix issues. Not sure how important they are though

  • I've tried to balance the changes I've made vs the code that is available, so that I won't create more bugs. If you've noticed a bug, please write about it, especially if you know how to fix it.

  • Like the original library, this one's minimal API is 11 .

  • Be sure to check the sample. It's a bit messy, but it shows what can be done.

  • There is also a "demo" for those who don't wish to use it to show real contacts. It lacks some of the features of the original one (showing contacts images, showing alternative contacts, and maybe others), but you can customize it to your needs and also add the missing features.

chipslibrary's People

Contributors

androiddeveloperlb avatar

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.