• Home
  • History
  • Annotate
  • only in /frameworks/opt/chips/src/com/android/ex/chips/
History log of /frameworks/opt/chips/src/com/android/ex/chips/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5ed1bde332751ccc19c38be592b041ac7c86a0f2 11-Feb-2015 Scott Kennedy <skennedy@google.com> am 6f86e3b4: Allow setting the divider start margin in the chips dropdown

* commit '6f86e3b4ab4137d43769d78abd9a45ed84e6e50d':
Allow setting the divider start margin in the chips dropdown
6f86e3b4ab4137d43769d78abd9a45ed84e6e50d 11-Feb-2015 Scott Kennedy <skennedy@google.com> Allow setting the divider start margin in the chips dropdown

Change-Id: I1c25bbadb1a697e8e69fc6b881c5935bdac97a24
ropdownChipLayouter.java
5d0d7457d7424d5802af5d6d54ea1764995d358c 11-Feb-2015 Scott Kennedy <skennedy@google.com> am e5d17d57: Highlight the text that matches the constraint

* commit 'e5d17d57be3b89a6adb7d429a4cb3cb1fbb422ff':
Highlight the text that matches the constraint
e5d17d57be3b89a6adb7d429a4cb3cb1fbb422ff 11-Feb-2015 Scott Kennedy <skennedy@google.com> Highlight the text that matches the constraint

The name and email will now be the same color, and the first instance
of text that matches the query will be highlighted a darker grey.

This code was copied from Inbox.

Change-Id: Ia7857bc31880259db0e7876eb50617f764fc3ceb
ropdownChipLayouter.java
08c72ba331d181efa0153964292ebf08ef3e261d 30-Jan-2015 Scott Kennedy <skennedy@google.com> am 5037dea4: Check if accessibility is enabled before each use

* commit '5037dea4aa3f04ff1878ddbdbd7cf4d215c426e3':
Check if accessibility is enabled before each use
5037dea4aa3f04ff1878ddbdbd7cf4d215c426e3 30-Jan-2015 Scott Kennedy <skennedy@google.com> Check if accessibility is enabled before each use

The enabled status can change between layout calls.

Bug: 19180194
Change-Id: Ia7acbd7f432a85f20b9a344d4c76756407abf8b1
ecipientEditTextView.java
f31cc76c99f547799a43aee36ab901929fd0cd53 22-Jan-2015 Jin Cao <jinyan@google.com> am 6c3f99e2: Add content description to the chips delete icon

* commit '6c3f99e2e9f0f1ada622c7ab25876b69fa82b146':
Add content description to the chips delete icon
6c3f99e2e9f0f1ada622c7ab25876b69fa82b146 22-Jan-2015 Jin Cao <jinyan@google.com> Add content description to the chips delete icon

b/19102218

Change-Id: I94f6cc642a12793dc7ee38afad6589d52f262d1a
ropdownChipLayouter.java
696941803b049304a28a2b074899b98a8b5ca629 16-Dec-2014 Jin Cao <jinyan@google.com> resolved conflicts for merge of ffc0111f to master

Change-Id: I92bcf75bdb01503aa652890859c589441d0a1a0f
ffc0111fa742c72f2457cecc1116e4ea3c6c8c6e 16-Dec-2014 Jin Cao <jinyan@google.com> Clean up chips

- Don't reset selection when we manually change selection due
to selecting a chip. We need this selection index to make
backspace properly delete the correct chip.
- Remove selected chips code because we now use the popup for
selected indicator.
- Fix accessibility SDK (didn't crash previously because with
SDK < 16 mIsAccessibilityOn is always false anyway).
- Clean up various warnings throughout RecipientEditTextView.

b/18682890

Change-Id: Ided53c0ea29532262c1f592798381ed9bc704fc0
ropdownChipLayouter.java
ecipientEditTextView.java
ef862b79ffd6a272ccadf2872c977dd7d16da199 12-Dec-2014 Scott Kennedy <skennedy@google.com> am 654c967e: Prevent infinite posting of Runnables

* commit '654c967e9560ccb40a465a78e3296980f530ed55':
Prevent infinite posting of Runnables
654c967e9560ccb40a465a78e3296980f530ed55 12-Dec-2014 Scott Kennedy <skennedy@google.com> Prevent infinite posting of Runnables

If shrink() is called when the View's width is 0, and it's GONE, its
width will never be greater than 0, so it just keeps posting the
Runnable forever.

Bug: 18613863
Change-Id: I1b2fa598826b6fa47996597c835533de3a4af220
ecipientEditTextView.java
bf01ce471e52042bb4c072c4f8e5abb05f4b60f3 09-Dec-2014 Kaikai Wang <kaikai@google.com> am cb11fced: Adding customized chip color support

* commit 'cb11fced23f3a08ad68ea61719d7f0fdeb0f7279':
Adding customized chip color support
cb11fced23f3a08ad68ea61719d7f0fdeb0f7279 09-Dec-2014 Kaikai Wang <kaikai@google.com> Adding customized chip color support

Adding customized chip color attributes to selected and unselected states, so that
chip consumers can use their own colors for the chips to better serve their UX
requirements. Without specifying these colors, the chips UI will keep the current
default color scheme

Bug: 18293881
Change-Id: I269c478df312ea634f90bd1c97a7a08c3d14d9d7
ecipientEditTextView.java
2633ca91b7e5bcec29b2aaf80afa28451770aede 03-Dec-2014 Kevin Lin <linkevin@google.com> am 494bec8d: Override setDropDownAnchor in RecipientEditTextView to update its cached anchor view if clients use setDropDownAnchor instead of declaring the anchor in the xml file.

* commit '494bec8daac55c76707e140c71fb8783fb3a9323':
Override setDropDownAnchor in RecipientEditTextView to update its cached anchor view if clients use setDropDownAnchor instead of declaring the anchor in the xml file.
494bec8daac55c76707e140c71fb8783fb3a9323 03-Dec-2014 Kevin Lin <linkevin@google.com> Override setDropDownAnchor in RecipientEditTextView to update its cached anchor view if clients use setDropDownAnchor instead of declaring the anchor in the xml file.

Change-Id: Ibd3127768c903be3645b02584bfe49090cf2520e
ecipientEditTextView.java
87eed3cfd0064739def068aabe9e911ba27de84b 10-Nov-2014 Jin Cao <jinyan@google.com> am 18eefa52: Merge "Auto dismiss popups when touches happen outside the popup window" into ub-chips-cranbrook

* commit '18eefa523611ccd2165e6d79621f50ed038bb45d':
Auto dismiss popups when touches happen outside the popup window
18eefa523611ccd2165e6d79621f50ed038bb45d 10-Nov-2014 Jin Cao <jinyan@google.com> Merge "Auto dismiss popups when touches happen outside the popup window" into ub-chips-cranbrook
939f5f1fb5b2d851a5b36fc9908c2c6420b193ae 10-Nov-2014 Jin Cao <jinyan@google.com> Auto dismiss popups when touches happen outside the popup window

b/18218445

Change-Id: I9f5d0b2bfbc023c1f77967cf14de45e769bdd543
ecipientEditTextView.java
6f673fc74c7ca3c964cd384bd596ae031dbd3e1c 07-Nov-2014 Jin Cao <jinyan@google.com> am 662ccbe4: Merge "Make clearSelectedChip public" into ub-chips-cranbrook

* commit '662ccbe4c86f59c734d6e523760806bbd6d4fbcc':
Make clearSelectedChip public
662ccbe4c86f59c734d6e523760806bbd6d4fbcc 07-Nov-2014 Jin Cao <jinyan@google.com> Merge "Make clearSelectedChip public" into ub-chips-cranbrook
49744b029d48dd9082bc02cb1c00dc34d1619c85 07-Nov-2014 Jin Cao <jinyan@google.com> Make clearSelectedChip public

b/18218445

Change-Id: I56ba4367ce45cc4ce0ec934825fe021d60775c5e
ecipientEditTextView.java
d083f8656589bdfd7174749ed50cccdec425593b 07-Nov-2014 Jin Cao <jinyan@google.com> am 732fe3e7: Take vertical offset into account for dropdown height

* commit '732fe3e7a78c23c17dab039b9b6540199a6352b7':
Take vertical offset into account for dropdown height
732fe3e7a78c23c17dab039b9b6540199a6352b7 06-Nov-2014 Jin Cao <jinyan@google.com> Take vertical offset into account for dropdown height

Change-Id: Ie3d5110d27a1868f5afedd336416fca346e5a31c
ecipientEditTextView.java
bae3fba541f49eac5a397a9cef309391d9a37fe5 29-Oct-2014 Kaikai Wang <kaikai@google.com> Switching to LOLLIPOP version code after L's SDK change

Change-Id: I61450e20822315aeace9b8009c6622b0b7bed728
ecipientEditTextView.java
8f4326a7a29664a49c92292e2466975924e77d1e 18-Oct-2014 Nick Kralevich <nnk@google.com> fix build

Change-Id: I3ded33c09e1b393d1a62cc6738474704e0d3141e
ecipientEditTextView.java
41507c1f2454467439696bb8c1892425f37bdefd 18-Oct-2014 Andrew Sapperstein <asapperstein@google.com> am 0437e862: Close directoryCursor. b/17949234

* commit '0437e862005912a1e5bf054769f23ed9cc69f811':
Close directoryCursor. b/17949234
0437e862005912a1e5bf054769f23ed9cc69f811 18-Oct-2014 Andrew Sapperstein <asapperstein@google.com> Close directoryCursor. b/17949234

Fixes b/18039002.

Change-Id: I88c23adb63ba64ca9f638086ad1c29a7fb839868
aseRecipientAdapter.java
19cc5d6a2a1fa0f95e4113ee2ff3443996989b6d 13-Oct-2014 Jin Cao <jinyan@google.com> am f6ddb754: Don\'t rely on action bar height

* commit 'f6ddb7541feb5e415f9750fb403814dbbc9068be':
Don't rely on action bar height
f6ddb7541feb5e415f9750fb403814dbbc9068be 13-Oct-2014 Jin Cao <jinyan@google.com> Don't rely on action bar height

When computing the scroll offset to scroll the edittext's bottom
line into view (to maximize the space for the dropdown), don't
rely on the statis status bar + action bar height calculation
because action bar's height changes depending on platform version
and orientation. Instead, use the scroll view's location in window
as the "top" of the visible display frame.

b/17824127

Change-Id: I35fd04201a11e5ba47de84eb4a1c5d309e08c203
ecipientEditTextView.java
4d804a892d8067c2f71766eb2960b776da5047fe 08-Oct-2014 Jin Cao <jinyan@google.com> am fcaf9868: Make rect and coords instance variables to avoid reallocation

* commit 'fcaf9868ae2b549f1b95465e4e7877482403398d':
Make rect and coords instance variables to avoid reallocation
fcaf9868ae2b549f1b95465e4e7877482403398d 08-Oct-2014 Jin Cao <jinyan@google.com> Make rect and coords instance variables to avoid reallocation

Change-Id: I6aeae98d682ec7d3b88f1c321f79690b1bcc4b08
ecipientEditTextView.java
0c0d9e12a71450ec04be14c1692ec0d049599211 07-Oct-2014 Jin Cao <jinyan@google.com> am 93d69f40: Use dropdown anchor to compute dropdown height

* commit '93d69f407e258e42705c4cc706d6705f45d48761':
Use dropdown anchor to compute dropdown height
93d69f407e258e42705c4cc706d6705f45d48761 07-Oct-2014 Jin Cao <jinyan@google.com> Use dropdown anchor to compute dropdown height

In case the dropdown anchor is not set to itself, use
the anchor to properly compute the remaining height
from the bottom of the view to bottom of the screen.

b/17824127

Change-Id: Ic588f4ad6cede7ed22074ff7ed91843dca00a689
ecipientEditTextView.java
ce2449a76afa3396248fd844044f503faf66b134 23-Sep-2014 Jin Cao <jinyan@google.com> am 04f06ea7: Don\'t use announceForAccessibility

* commit '04f06ea723b0445428d3f563334d653299a73a74':
Don't use announceForAccessibility
04f06ea723b0445428d3f563334d653299a73a74 22-Sep-2014 Jin Cao <jinyan@google.com> Don't use announceForAccessibility

announceForAccessibility is API 16+. It's just a convenience
method for sending accessibility event, so I copied the code
into a helper function.

b/17606966

Change-Id: I99e7de645409168a79030c7645672eb93ca8773d
ecipientEditTextView.java
b2f2f59143a46f6b0c526cde9ba7129a80c569ea 19-Sep-2014 Kaikai Wang <kaikai@google.com> am fe686ee3: Merge "Bug: 17517371: Stop using custom action label in chips" into ub-chips-cranbrook

* commit 'fe686ee34d9d881a13a5f958583abeb66ba4c47c':
Bug: 17517371: Stop using custom action label in chips
fe686ee34d9d881a13a5f958583abeb66ba4c47c 19-Sep-2014 Kaikai Wang <kaikai@google.com> Merge "Bug: 17517371: Stop using custom action label in chips" into ub-chips-cranbrook
b0567d4a8ae688ca05bf5f335f3200431108543e 19-Sep-2014 Jin Cao <jinyan@google.com> am 15a5ebc2: Remove leading space when editing invalid address

* commit '15a5ebc25941143d5fb65498ebc835d79351d3ad':
Remove leading space when editing invalid address
a5461b72d228191efda5ef084455f3066d5648ae 19-Sep-2014 Kaikai Wang <kaikai@google.com> Bug: 17517371: Stop using custom action label in chips

Change-Id: If913b67028acf400327401116e7d65f9634d6a75
ecipientEditTextView.java
15a5ebc25941143d5fb65498ebc835d79351d3ad 19-Sep-2014 Jin Cao <jinyan@google.com> Remove leading space when editing invalid address

It looks like we add a trailing space after each chip to
separate them. When we edit an invalid chip, remove that trailing
space if it's the only chip.

b/17292684

Change-Id: I320fe959142b3ec47f820b6ceef854afc5c00de1
ecipientEditTextView.java
ef086f5d8cb0d3fd260a62d78f62c19aa0b18331 17-Sep-2014 Jin Cao <jinyan@google.com> am b1aeb7b6: Announce chips dropdown for accessibility

* commit 'b1aeb7b6e08b0b8dd548c4f0e5ac55844fd7f55d':
Announce chips dropdown for accessibility
b1aeb7b6e08b0b8dd548c4f0e5ac55844fd7f55d 02-Sep-2014 Jin Cao <jinyan@google.com> Announce chips dropdown for accessibility

Announce when chip's dropdown opens.

b/17262070

Change-Id: Ic99ee22f4a4f41e0f0d468496992822f8b60dbdd
ecipientEditTextView.java
46b38b7ffe4a3c7d05a993470229e0dd0301fc4e 13-Sep-2014 Jin Cao <jinyan@google.com> am 569fbc00: Merge "Set dropdown height so dropdowns wont be on top" into ub-chips-cranbrook

* commit '569fbc00c666bc7df6e7259e88447945d46ddcae':
Set dropdown height so dropdowns wont be on top
569fbc00c666bc7df6e7259e88447945d46ddcae 13-Sep-2014 Jin Cao <jinyan@google.com> Merge "Set dropdown height so dropdowns wont be on top" into ub-chips-cranbrook
bd312313f352424415b103dd05d281f8ac47d547 13-Sep-2014 Jin Cao <jinyan@google.com> Set dropdown height so dropdowns wont be on top

Always set the dropdown height to be the remaining space from
the bottom of the edittext to the bottom of visible screen.
This also greatly helps the illusion of "inlined" suggestions.

b/17482147

Change-Id: I6124ff4c6c1646ef987d897059b3c024d002dfdc
ecipientEditTextView.java
066a2608a922e1fc67a24589bf2c7dc61fe56eb5 12-Sep-2014 Jin Cao <jinyan@google.com> am e3267bcc: Merge "Change workpaint to protected static so child classes can use it" into ub-chips-cranbrook

* commit 'e3267bcc4f39498ddb25f4014edf3c3b3725eae8':
Change workpaint to protected static so child classes can use it
e3267bcc4f39498ddb25f4014edf3c3b3725eae8 12-Sep-2014 Jin Cao <jinyan@google.com> Merge "Change workpaint to protected static so child classes can use it" into ub-chips-cranbrook
2a48e87b2d4e8a17ccd733d6a576b74b08085383 12-Sep-2014 Jin Cao <jinyan@google.com> Change workpaint to protected static so child classes can use it

b/17471973

Change-Id: I8804b429477b2d606ec760b9617eed5b4c0c0c17
ecipientchip/ReplacementDrawableSpan.java
6c14173cdd14c5ceca9c5f6511f516c0597829b2 12-Sep-2014 Scott Kennedy <skennedy@google.com> am eed6943e: am 2a87fbfb: FilterListener#onFilterComplete(count) was returning the incorrect count of 1 always, rather than how many entries exist.

* commit 'eed6943eb5a1c7b8d68efc38f1150ee6f891688b':
FilterListener#onFilterComplete(count) was returning the incorrect count of 1 always, rather than how many entries exist.
eed6943eb5a1c7b8d68efc38f1150ee6f891688b 12-Sep-2014 Scott Kennedy <skennedy@google.com> am 2a87fbfb: FilterListener#onFilterComplete(count) was returning the incorrect count of 1 always, rather than how many entries exist.

* commit '2a87fbfbbee4279c399980cba42de1d361a8ad56':
FilterListener#onFilterComplete(count) was returning the incorrect count of 1 always, rather than how many entries exist.
2a87fbfbbee4279c399980cba42de1d361a8ad56 12-Sep-2014 Scott Kennedy <skennedy@google.com> FilterListener#onFilterComplete(count) was returning the incorrect count of 1 always, rather than how many entries exist.

This wasn't a problem in Gmail, because they never looked at FilterListener#onFilterComplete to get the final count

Change from jonchui@.

Change-Id: Ia80c412d41296c373c64702acc52f8d24ecf04e9
aseRecipientAdapter.java
d3ba2e4da9f12482441c3d37b0d33bb7f712e542 10-Sep-2014 Jin Cao <jinyan@google.com> am 14efc579: Take status bar height into account when computing scroll

* commit '14efc5795c38120de239fad3d44b1b8b81045043':
Take status bar height into account when computing scroll
14efc5795c38120de239fad3d44b1b8b81045043 10-Sep-2014 Jin Cao <jinyan@google.com> Take status bar height into account when computing scroll

When computing how much to scroll so that the bottom of the
edittext is visible (to maximize the amount of screen space
for displaying recipient dropdown), take status bar height
into account.

b/17441950

Change-Id: I51d96eebfc3cd75c918a42b6dc379ffb8336b3b7
ecipientEditTextView.java
2946d500edeb1ce361da03984314a2cd19dea167 08-Sep-2014 Jin Cao <jinyan@google.com> am 31c33ef8: Only cache current selection if there are pending searches

* commit '31c33ef87cb0612250b812233ffbc0c46e88a371':
Only cache current selection if there are pending searches
31c33ef87cb0612250b812233ffbc0c46e88a371 08-Sep-2014 Jin Cao <jinyan@google.com> Only cache current selection if there are pending searches

If the current result is empty, only cache the current list
if there are pending searches (e.g. directory). Don't cache
it if there are no alternate searches.

b/17376740

Change-Id: I8a54b845ebc76dbbe651835b31446f05fd210565
aseRecipientAdapter.java
cca5b95f419c3e04632768965ac71ade636e3c91 24-Aug-2014 Jin Cao <jinyan@google.com> am c6eee84a: Revert "Dismiss popups in onDetach to prevent view leak"

* commit 'c6eee84a4d34b4c6b7d38a0dc3a5a3fd83b4f3c8':
Revert "Dismiss popups in onDetach to prevent view leak"
808d713a9a2ae38960cd720c75ea276053c4399e 24-Aug-2014 Jin Cao <jinyan@google.com> DO NOT MERGE prevent popup view leaks

When the RecipientEditTextView is detached from the window,
make sure that we also dismiss any remaining popup to prevent
the view from being leaked.

Change-Id: I98028fcfc68b4114ee5c76d0b7797784434a42a7
ecipientEditTextView.java
c6eee84a4d34b4c6b7d38a0dc3a5a3fd83b4f3c8 24-Aug-2014 Jin Cao <jinyan@google.com> Revert "Dismiss popups in onDetach to prevent view leak"

This reverts commit 37a4572ee57188906a534efd10bce1bfbf8db610.

Change-Id: I9246ee3a5a039f8e6eafe49d62e3857e3fb23787
ecipientEditTextView.java
ee108fb817292daa4034ea67ff5c532dd0ce9e9d 24-Aug-2014 Jin Cao <jinyan@google.com> am 37a4572e: Dismiss popups in onDetach to prevent view leak

* commit '37a4572ee57188906a534efd10bce1bfbf8db610':
Dismiss popups in onDetach to prevent view leak
37a4572ee57188906a534efd10bce1bfbf8db610 24-Aug-2014 Jin Cao <jinyan@google.com> Dismiss popups in onDetach to prevent view leak

When the RecipientEditTextView is detached from the window,
make sure that we also dismiss any remaining popup to prevent
the view from being leaked.

Change-Id: I5ba9a50c372774b33ebcde0b705dea98c63e3788
ecipientEditTextView.java
568fb229f9e17ab882cedaa9ee17c9f78a97ba9f 19-Aug-2014 Jin Cao <jinyan@google.com> Properly dismiss popup when chip loses focus

Dismiss both single and alternates popups when
unselectChip is called.

Also use anti-alias for drawing the chip background.

b/17136873

Change-Id: Ia2f480b22c4de689432def6e01f75abb4904dbf4
ecipientEditTextView.java
049af326764fafc35a837a38ee29879a89d2e446 19-Aug-2014 Jin Cao <jinyan@google.com> Remove unnecessary font metrics call

Change-Id: Ie36a3a29b81d3e0024e0f1c29aec98a36e74dec9
ecipientchip/ReplacementDrawableSpan.java
6c2a016fb00482339dc66b93822042f9f9e2424f 18-Aug-2014 Jin Cao <jinyan@google.com> [Quantum chips] change chips into ReplacementSpan

There seems to be an issue with ImageSpan where it
sets the default text cursor size to the height of
the ImageSpan. In this CL I changed the chips to
extend ReplacementSpan and simply draw the chip
ourselves by overriding the draw method.

b/16700424

Change-Id: I66a8bf3068e24a669121c7323323fd03138ca7b3
ecipientEditTextView.java
ecipientchip/ReplacementDrawableSpan.java
ecipientchip/VisibleRecipientChip.java
219cbfbd7806b17ce10ba2cfb3f0cd45d167d46c 04-Jun-2014 Régis Décamps <regisd@google.com> Allow to paste text or html into a chip

Allows to paste into a chip HTML mime content, as long as
it can be represented by text.

This resolves the inability to paste email addresses copied from
a web page, with content text/html.

Also, fix an IndexOutfOfBounds bug when there is no selection.

Bug: 13361722 users cannot paste html content in chip
Change-Id: I31434105e4326d78e99df338f81d9e56fc5b83c5

Conflicts:
src/com/android/ex/chips/RecipientEditTextView.java
ecipientEditTextView.java
a21fd887528a3b985f71decb2a19c917c2fcbd55 10-Aug-2014 Jin Cao <jinyan@google.com> [Quantum chips] code cleanup and restyling

Cleaned up the variable placements in RecipientEditTextView
and removed some outdated functionality.

Updated the style for alternate/single recipient dropdown
to redline.

b/16851158

Change-Id: I0829be08cbf6d603c4b029aec820937379c5dad2
ecipientEditTextView.java
9b166209d723ed996243de5d89b489f3992daf0e 08-Aug-2014 Jin Cao <jinyan@google.com> More chip dropdown fix

Don't explicitly set chip popup width since
the width should inherit from the anchor view.

b/16851158

Change-Id: Id83d5dee1a2c44859e83d3862ada5f6e40b97065
ecipientEditTextView.java
d36bf69b90b3441a3edff76ebd8c2adfeee4deab 08-Aug-2014 Jin Cao <jinyan@google.com> Merge "Don't use textpaint for drawing icons" into ub-chips-cranbrook
809c595762c1d5adfe93d61eafa5fc9aa48c7de3 08-Aug-2014 Jin Cao <jinyan@google.com> Don't use textpaint for drawing icons

When drawing icons we set various shaders and
attributes to convert sq icon to circle. These
attributes are applied directly on the TextPaint
and are never reset. As a result, we see tiny fonts.

b/16700424

Change-Id: I9ffd07d64fa5c3dee6a5b312195e54559a73413d
ecipientEditTextView.java
4de6a53de8959dc20bfb05e7b54cb47ccc5367ec 08-Aug-2014 Jin Cao <jinyan@google.com> Support custom popup anchor in RecipientEditTextView

b/16851158

Change-Id: Icb4c511671c512e6095c8fa9607dc4d898ba2b08
ecipientEditTextView.java
4d0425d48a54b684d7c1af824b14b3bdf0cfa4ce 07-Aug-2014 Jin Cao <jinyan@google.com> Merge "Ensure delete listener is set for chips" into ub-chips-cranbrook
a20a8d02c0b6a9440a61870ee6c7a6b6c92fbf4b 07-Aug-2014 Jin Cao <jinyan@google.com> Ensure delete listener is set for chips

When the app overrides the default DropdownLayouter,
make sure that we always set the delete listener.

b/16851158

Change-Id: I7794ef2051b837de0722df2033fe531cf4cc01f4
ropdownChipLayouter.java
ecipientEditTextView.java
33515e70c6dc7b488bc0aa62f6a009bec4bf8812 06-Aug-2014 Jin Cao <jinyan@google.com> [Quantum chips] draw chips programmatically

Why use assets when we can draw chips background programmatically.
Even better, it's faster (maybe) and more space efficient (def).

b/16732676

Change-Id: Ib8dac66eb7e04bf0da08aa9cabe6349402484c5c
ecipientEditTextView.java
142f4c5623ade2c55d2a8de7e6a5fedf17bccc96 07-Aug-2014 Andrew Sapperstein <asapperstein@google.com> Merge "Don't use "done" for string name." into ub-chips-cranbrook
f585f36afd00a3591dc71ce6acef00dd718c6287 07-Aug-2014 Andrew Sapperstein <asapperstein@google.com> Don't use "done" for string name.

Change-Id: Ied4449f02ef5683764fcfeb9b95b6d0c665c1132
ecipientEditTextView.java
b58c9a621a250c6119be2d5a77164b940a8559b0 06-Aug-2014 Jin Cao <jinyan@google.com> [Quantum chips] add custom dividers for autocomplete

b/16818548

Change-Id: Idb3a112af7a16f05bfcf9e2f9ae14f3ef32aecef
ropdownChipLayouter.java
bf84bd8f061da4f5a494d20192eae53db9867785 31-Jul-2014 Jin Cao <jinyan@google.com> Chips show icon even if name is null

Not sure why this was added or why it was working before.
A recipient's name can be null but it can have a valid
destination, in which case we still want to show the icon.

In any case, based on the comments it says we only not
show the icon for generated/invalid contacts, so I'm
removing the check for empty name.

b/16383133

Change-Id: I16642986e503a51e52275118bea05f34973817b6
ecipientEditTextView.java
6fc1fee597ebe3c30ebe5efebb4d6ea105641e0f 30-Jul-2014 Jin Cao <jinyan@google.com> [Quantum] update alt/single chips to quantum

Updated UI for alternates/single chips dropdown.

Not included: X button next to selected chip for removal.

b/15934812

Change-Id: Id34e28f1783f85ffbe33f82b1d230c3def27589a
ropdownChipLayouter.java
ecipientEditTextView.java
58d541de27090b4bd55746368b3b3b1486a7c094 30-Jul-2014 Jin Cao <jinyan@google.com> [Quantum chips] restyle recipient chips to quantum

Restyle recipient chips to quantum redlines, also
remove padding style from non-autocomplete dropdowns.

b/15934812

Change-Id: I28eef0f4b9d622f81782d12f279e78af10c14458
ecipientEditTextView.java
4db8cccf3332ad7c6fb1915f9f0f169953c3953a 30-Jul-2014 Jin Cao <jinyan@google.com> [Quantum chips] add delete button in dropdown

For single/alternate recipient dropdown there is
now a delete button next to the currently selected
contact for easier removal of the selected chip.

b/16383133

Change-Id: Ied238b91b42673142de88a159b50772bd6b7b937
ircularImageView.java
ropdownChipLayouter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ingleRecipientArrayAdapter.java
4ddcdaed9ef5ea83910a0513e87538130270e2e4 29-Jul-2014 Jin Cao <jinyan@google.com> [Quantum] chips autocomplete to quantum style

Separate layout for chips that have icons on the lefthand
side and icons on the righthand side.

b/15934812

Change-Id: I7b58197e46ad48bb838ee5e0c34bb06b0b74dfba
ropdownChipLayouter.java
ecipientAlternatesAdapter.java
ingleRecipientArrayAdapter.java
e096b4534f8f7bd30513aed0e8fb9dc045842baf 28-Jul-2014 Jin Cao <jinyan@google.com> Port CircularImageView for chips

b/15934812

Change-Id: Ib40bd97ea537bd91aba0caac8b7148fc24f59c0b
ircularImageView.java
c85e75e231fab797a4b0bda5a0d8373419718dab 10-Jul-2014 Scott Kennedy <skennedy@google.com> Update dropdown assets/layouts for Material

Change-Id: I4b5684896e4e70b6f44f3feb2bf0f997265be848
ropdownChipLayouter.java
15259d5bab45b9e561d33e5d1d23df3a1476a430 10-Jul-2014 Scott Kennedy <skennedy@google.com> Use a better y offset algorithm

This gives us a much better vertical centering of text.

Change-Id: I09651e1a222cef2b60f4f59cb67ae01530e27cd2
ecipientEditTextView.java
b232e5c33e1e2879c7bc8e96a1b9c41c4fa41244 10-Jul-2014 Scott Kennedy <skennedy@google.com> Update assets/dimensions/defaults to match Material spec

Change-Id: I0d39a630492b08cd647bb39c2aab1bc4a86b8aee
ecipientEditTextView.java
50429c51adbd79c5d7dd5beb2c267daf9465f20f 13-Jun-2014 Andrew Sapperstein <asapperstein@google.com> Update suggestions for every character.

b/15519050

notifyDataSetChanged was getting called in
bad places if the image was already cached.

Change-Id: Ibd4a21a634e8668c5936145fda52aa7e5f4e5c1f
aseRecipientAdapter.java
efaultPhotoManager.java
hotoManager.java
ecipientEditTextView.java
5c49b0ed416aa5dfc144b95ee9bf9a7d9f420bd3 10-Jun-2014 Kaikai Wang <kaikai@google.com> Merge "Adding the ability to remove chips that match a given ReicipientEntry" into ub-chips-bagotville
cd980d9f73bfa02155f7bb092ae1fb212ed6e8e2 10-Jun-2014 Kaikai Wang <kaikai@google.com> Adding the ability to remove chips that match a given ReicipientEntry

Change-Id: I3ae8e495429eef9c5fb21e84a25c81dd6188d0be
ecipientEditTextView.java
ecipientEntry.java
3e05cfa55dbb8840adaf3dfcf31a5a30ce129c9e 05-Jun-2014 Kevin Lin <linkevin@google.com> Add a callback to RecipientEditTextView for whenever it creates a chip.

BUG 14279330

Change-Id: Ia50dee1ce0bd35eb913ee360bf6814dbb66baf76
ecipientEditTextView.java
52e4814f46230835ed48d7561de8359b79b978cd 05-Jun-2014 Jin Cao <jinyan@google.com> Ensure that invalidate is called on main thread

Sometimes the chips span is constructed on a background
task and then rendered on the UI at a later time. For those
cases, the async loader callback will happen on a non-main
thread. This causes invalidate to crash since it can't be
called from non-main threads.

Change-Id: Icfdfb84ceae74032ca0b51a872fbf02fe6a72418
ecipientEditTextView.java
0efdc53cd0d040c1a27a7d39003916e54e284be2 05-Jun-2014 Jin Cao <jinyan@google.com> Add failure callback for loading avatar async

b/15431889

Change-Id: I554745b0aa3d754343076105bb1dbb11258b28c3
aseRecipientAdapter.java
efaultPhotoManager.java
hotoManager.java
ecipientEditTextView.java
e35d6c58053991c82893d173643dc0b867be0a8f 04-Jun-2014 Jin Cao <jinyan@google.com> Invalidate each chip if it loads avatar on background

The chip might not redraw itself when it loads the avatar
asynchronously (works for Gmail, but it seems to not work
on some other projects that use chips). Let's just force
redraw the individual chip's view upon loading.

Change-Id: I3647591fc4c09ad895a58ed67b02fa71bddbe173
ecipientEditTextView.java
82d388545ba0b52854801c946ed2f62e05e7b563 03-Jun-2014 Jin Cao <jinyan@google.com> Fixed bug with null origPhoto

Since we no longer use thumbnailPhotoUri, we can safely take it out.
This will fix the bug where origPhotoBytes is null and thumbnailUri
is also null (cause nullpointer, which causes the chip to not be drawn
on the screen).

b/15402474

Change-Id: Ia2d995b90c02123499e71ec1ac98c9ad07a10d35
aseRecipientAdapter.java
ecipientEditTextView.java
35e82d4f9522906f7953667cf5c5f8137ec2f5ac 03-Jun-2014 Jin Cao <jinyan@google.com> Move getAvatarIcon off UI

Change BaseRecipientAdapter#fetchPhoto to use the async version of
populatePhotoBytes. Move some UI code around so we keep a reference
of each chip bitmap as well as criterias we need to draw the icon
once it's loaded. Once the icon bitmap is asynchronously loaded,
we then draw that icon onto the UI.

b/15082721

Change-Id: I8abd3f8e1bb61b9a5b35ecda71704bb0c38dc7bf
aseRecipientAdapter.java
efaultPhotoManager.java
hotoManager.java
ecipientEditTextView.java
972def7a06f7d820313228c5b1311ccbe8096be0 28-May-2014 Kaikai Wang <kaikai@google.com> Adding the ability to manually append a RecipientEntry to RecipientEditTextView

Change-Id: I291af897b120ea340139c68364f2901600d38059
ecipientEditTextView.java
48de6b5b916811a6622bb96a8eb57a71eb32ab3c 15-May-2014 Andrew Sapperstein <asapperstein@google.com> Merge "Add support for autocomplete suggestion analytics." into ub-chips-bagotville
0f2b174c6d8a19fb8ffbd71f742e11d3a04add9b 15-May-2014 Andrew Sapperstein <asapperstein@google.com> Add support for autocomplete suggestion analytics.

Change-Id: Ib61b376da1faffe330373ca1e19bda9dedb27e87
ecipientEditTextView.java
8af0d3b6f34e03c08c8e67be2190da01c59889da 03-May-2014 Andrew Sapperstein <asapperstein@google.com> Allow support for alternate data sources.

BaseRecipientAdapter adds a bunch of methods that can be
overridden to change the default behavior. Also makes a bunch
of private methods protected so that derived classes can use those
methods.

Abstracts the calls to update the various internal data structures
so that derived classes can utilize their own structures by just
overriding a few methods.

Refactors photo loading into the PhotoManager interface
with a default implementation living in DefaultPhotoManager.

Provides the ability to not use the RecipientAlternatesAdapter
and instead just use SingleRecipientAddressAdapter when showing
a dropdown after clicking on a chip.

Also allows overriding the default behavior for creating chips
when pasting in email addresses or editing drafts.

b/11387812

Change-Id: I826c30edeee1752b7a3d4108e777f90b79d0f7f8
aseRecipientAdapter.java
efaultPhotoManager.java
hotoManager.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ecipientEntry.java
1248e53bed1011088489b0d9adf17f5a05be8d78 01-May-2014 Ken Thai <kenthai@google.com> Add the ability to retrieve all recipients that have been selected

Change-Id: I144a46ce37532ac669c70e5c8496675dfa490c9f
ecipientEditTextView.java
1db635b5a09c77a27fe17a9ce31c21a67458c2bc 29-Apr-2014 Andrew Sapperstein <asapperstein@google.com> Code cleanup.

Change-Id: I752adf6f704f449093abf4eb0b59e268c03fcb18
aseRecipientAdapter.java
ecipientEditTextView.java
4ab98d11bf2d63ab6d60b377dc36938b639e64b8 22-Apr-2014 Scott Kennedy <skennedy@google.com> Merge "Fix an issue showing people who don't match typed query" into ub-chips-bagotville
e4945e96e5b67a1a5b8fd165debc616a351fda17 22-Apr-2014 Scott Kennedy <skennedy@google.com> Allow selection of all entries in the dropdown

We were always taking the first entry in the list upon pressing
"enter", but now we will take the selected item, if one is selected.

Bug: 12467029
Change-Id: I0c42d4613f25acdfa021bb6fd8664b6f3f4da71e
ecipientEditTextView.java
fa7b0fb73f80ceafdf3ff3260b345b61d2766f93 18-Apr-2014 Scott Kennedy <skennedy@google.com> Fix an issue showing people who don't match typed query

If you type "Scott", my contact shows up as an option. If you then
clear the field, and type "kj", and you don't have any "kj" contacts,
it doesn't clear the last set of contacts, so it shows you "Scott".

Now, we'll just clear the set when we get no results, so nothing will
show up.

Bug: 12783972
Change-Id: I62d1fe947edcc6d2a3c92ee5ed2f0c7c88ff20cb
aseRecipientAdapter.java
f11483ad7d1e7abbce9d59ecf01b4b904a777b05 18-Apr-2014 Scott Kennedy <skennedy@google.com> Make this constant final

Change-Id: I3fc5b575247f31c3ff486316c20afa93370bf29d
ecipientEditTextView.java
b3b248acd845b017e952fb802e0976e82fc1c583 11-Apr-2014 Jin Cao <jinyan@google.com> Don't autocomplete unknown email addresses

The user often manually inputs a correct email address that Gmail does
not know about. In this case, we don't want to autocorrect it to the
closest match we find (even when the user shifts the focus away) from
the contacts list.

b/12443656

Change-Id: I1d7694f2bdd1bc876889dd9b74999accb853cac8
ecipientEditTextView.java
2b2de7c3146a60d39d5d2078052b2c14b6496ef9 12-Mar-2014 Tony Mantler <nicoya@google.com> Call super.onAttached/onDetachedFromWindow

b/13342458

Change-Id: I0c68789c350bb252018691cff7975e0f49f0e10b
ecipientEditTextView.java
38fe984ca3e9ed7af3d5441ee3a7e82dbfdb3d2c 04-Mar-2014 Mike Schneider <michschn@google.com> fix visibility

Change-Id: Iabce2e83df084a8bb1312a7e8246bb6fc9818ebd
aseRecipientAdapter.java
c61c13ffde5d4224ee861f7e7fe3ea0900128a7c 01-Mar-2014 Kevin Lin <linkevin@google.com> Fix redrawing chips with recipientEditText onSizeChanged when it has left and right padding.

Change-Id: I4021ddc0359f6e7a807ba4b10d12c80fc01c25a4
ecipientEditTextView.java
30043f9623013e8fee4d4b858aaddd45c99e0f4c 28-Feb-2014 Kevin Lin <linkevin@google.com> Fix build with VisibleRecipientChip

Change-Id: Iea5154938872a56cb082b2814c446a6a741006f9
ecipientchip/VisibleRecipientChip.java
9b398e3019d1e12c661647a277a338975a50d952 26-Feb-2014 Kevin Lin <linkevin@google.com> Added support to choose vertical alignment for image spans.

TESTED=phone

Change-Id: I582224467b4626afd1414889166f4fbbc773897f
ecipientEditTextView.java
ecipientchip/VisibleRecipientChip.java
bb7e7e1b8ff6163816fa04d50ca9382d569bee82 19-Feb-2014 Scott Kennedy <skennedy@google.com> BaseRecipientAdapter does not need to be abstract

It works fine if you use BRA as your adapter, so there's no point
making people instantiate it as new BRA() { };

Bug: 8885347
Change-Id: Icdd8d3032a10fabd30a9a80b99204b20bdea9cd9
aseRecipientAdapter.java
7a4e67708498ec46c2e9b3bad69d3807d88c064e 21-Nov-2013 Scott Kennedy <skennedy@google.com> Fix directory lookups

The previous "fix" disabled the lookups.

Now we will do the lookups, with the proper lookup key and
directory id. We also do a much better job of showing directory
images.

Bug: 11693322
Bug: 12793279

Change-Id: I372711fd7b485f3183516fce2b11f9eff46a9b23
aseRecipientAdapter.java
ropdownChipLayouter.java
ueries.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ecipientEntry.java
ecipientchip/BaseRecipientChip.java
ecipientchip/InvisibleRecipientChip.java
ecipientchip/SimpleRecipientChip.java
ecipientchip/VisibleRecipientChip.java
53e718a52258e2240ed82faaee0ecef05fe112a0 05-Feb-2014 Kevin Lin <linkevin@google.com> Change to scrollToBottomView to be protected instead of private.

Change-Id: Ibad81543afc87f20cf8d479fd28ac1efde6195f4
ecipientEditTextView.java
41e93fbe82cd4d802e3f1fbe265038f7a0521ddd 04-Feb-2014 Kevin Lin <linkevin@google.com> Fix chips library bugs related to setting the threshold to 1.
- Dropdown not being dismissed after having at least one chip and typing a character and deleting it.
- Selecting a chip, deleting it by pressing backspace, and entering another character brings the deleted chip back.

TESTED=chips on bigtop app

Change-Id: I09233ffa7dfe1f64ae9efe4a392fa84b64b8b10a
ecipientEditTextView.java
b8985b7b595e38518d2a0657b89ff47bd34862ab 29-Jan-2014 Scott Kennedy <skennedy@google.com> Fix a small bug

Change-Id: I92babdcb1488195a073d2393b03083c8c74f740f
ecipientEditTextView.java
d5ce95bdc1ab57d91cc5408fda49d23d9630da37 28-Jan-2014 Kevin Lin <linkevin@google.com> Fixed NPE in BaseRecipientAdapter when constraint is null.

BUG=12766155

Change-Id: I99cf03e33738ad804e35e7134c9d9a97c84be183
aseRecipientAdapter.java
c0e6023ca7129914a3850bceb1a151acc75fd1f8 25-Jan-2014 Andrew Sapperstein <asapperstein@google.com> Support RTL in chips library.

Fixes b/12569794.

Change-Id: I927a5d3e0d4af42a3ca3fbbb87ba201fe7bb830e
ecipientEditTextView.java
b10d1c652d0416c284d9792fc9a0a92b3acd51ca 24-Jan-2014 Kevin Lin <linkevin@google.com> Main changes to the chips library:
Changed attribute styles
- Added an avatar position (left, right) inside the chip
- Added a disableDelete boolean
- Removed chipsAlternateLayout

Changed how to layout contacts in autocomplete list.
Added a separate class to handle layout and binding information. (This way clients can extend this class and have a customizable layout)
This new class lives inside RecipientEditTextView and is passed onto each adapter.

Merged code paths for createSelectedChip and createUnselectedChip.
Merged code paths for getView() in each of the 3 adapters by using DropdownChipLayouter.

All tests still pass since this CL is mostly infrastructure layout changes.

There are some non-backwards compatible changes with this if other clients are using this library.
BaseRecipientAdapter no longer has protected methods to override the layout and id's.
The attribute file no longer has chipsAlternateLaytout.
Both these features can still be used through the new DropdownChipLayouter class.

Change-Id: I4496232eddd194be2df6a047f75637114f2eaa52
aseRecipientAdapter.java
ropdownChipLayouter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ingleRecipientArrayAdapter.java
f5c24c97ddba4bf2c626898734669f85c3acb00f 14-Nov-2013 Scott Kennedy <skennedy@google.com> am 3e8176df: Don\'t show the alternates dialog for GAL contacts

* commit '3e8176df16950c067bcb1b37e62b2fc07d74065a':
Don't show the alternates dialog for GAL contacts
514f8a75f72fa2e735418ffb5d6e30aa914fbe7b 14-Nov-2013 Scott Kennedy <skennedy@google.com> Don't show the alternates dialog for GAL contacts

There's a bug in the chips code that causes this to show either no
alternates, or a different person, which is scaring people.

The proper future fix is to store some more information about GAL
contacts so we can do a proper lookup.

Bug: 11535331

Change-Id: Id8b6fc834446afe33bd6ec4e99b3d2b75b985bde
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ecipientEntry.java
ecipientchip/BaseRecipientChip.java
ecipientchip/InvisibleRecipientChip.java
ecipientchip/SimpleRecipientChip.java
ecipientchip/VisibleRecipientChip.java
d1c1e3515f46ac74bf3ce1eb9e325762096dd8b2 16-Oct-2013 Tony Mantler <nicoya@google.com> am e444c661: am eaf43ea2: Don\'t show pop-ups and dialogs if we\'re not attached to a valid window.

* commit 'e444c661c53b942eea0daa120b3e5dcc58a0bdbe':
Don't show pop-ups and dialogs if we're not attached to a valid window.
7894c8a217ea8507588a386f92b42f88a8ec6ba5 16-Oct-2013 Tony Mantler <nicoya@google.com> am eaf43ea2: Don\'t show pop-ups and dialogs if we\'re not attached to a valid window.

* commit 'eaf43ea2c3b00af22f0aa106fd3dde142f52d471':
Don't show pop-ups and dialogs if we're not attached to a valid window.
fbeca0eb27de966dcac8a48d1d0e888e565bf255 15-Oct-2013 Tony Mantler <nicoya@google.com> Don't show pop-ups and dialogs if we're not attached to a valid window.

b/11229200

Change-Id: Ic44da79e441017ac4ccdb4a254c13965da0cc2f9
ecipientEditTextView.java
858e094f1c695aefdf6a23f522c0f16d81bd79f7 10-Oct-2013 Scott Kennedy <skennedy@google.com> Merge chips from jb-ub-mail-ur11 into klp-ub-dev

Change-Id: Ied8877d7613ca1dbb5047a0c8c611a1138fc47e3
aseRecipientAdapter.java
ecipientEditTextView.java
4996c3c1c5b0c30a44fa1e0414ba69b7e4daa559 23-Aug-2013 Scott Kennedy <skennedy@google.com> am 3be35a39: Remove some unused resources and imports

* commit '3be35a398afee202a794134920782db901ee36cd':
Remove some unused resources and imports
2e3fb2e61f944d8eb34b7204549990d3ebc722d5 23-Aug-2013 Scott Kennedy <skennedy@google.com> Remove some unused resources and imports

Change-Id: Ifc9bbd7fa53972b4d2bd61d04a426017a6bd63f5
aseRecipientAdapter.java
e091107390e8f884c45c74ea4b3984c6f5ca5948 10-Aug-2013 Jay Shrauner <shrauner@google.com> am 30d26326: Add directory photo support

* commit '30d26326568cb888430468370df6f6ab2ec12767':
Add directory photo support
c88702e49917a21b9753d587800de25f87f2c5a8 08-Aug-2013 Jay Shrauner <shrauner@google.com> Add directory photo support

Load photos for directory thumbnail URIs by streaming directly from the URI.

Bug:7882158
Change-Id: Ifdf354c392b9aaff7c8fd6b73dc9bfe891825329
(cherry picked from commit 53d11c53b83bffe7607cffde994f505e775bcdbe)
aseRecipientAdapter.java
f30ea36c3bd07ebbcef0f80c8c92a05a7384d319 06-Aug-2013 Scott Kennedy <skennedy@google.com> am bc742af5: Make Chips work on API 11+

* commit 'bc742af5bb568ed39dc37764587120928d068330':
Make Chips work on API 11+
1650ef6bb75ba88340cc59d22b2578c0f460b4f1 03-Aug-2013 Scott Kennedy <skennedy@google.com> Make Chips work on API 11+

By using the support library, and copying a few methods from TextView
into RecipientEditTextView, we can support chips back to API 11.

Bug: 8744878
Change-Id: I2d9bb43e71556504e929dcdccff9dae347020f28
aseRecipientAdapter.java
ecipientEditTextView.java
47f4077e34069cc6c254a6141e56e13b4a814879 01-Aug-2013 Scott Kennedy <skennedy@google.com> resolved conflicts for merge of b6c18ed6 to master

Change-Id: I7617af351d1fa7e4ce9ff401beffe21690b429d3
c430ea869c6d2e969cf8471875c951d201088610 01-Aug-2013 Scott Kennedy <skennedy@google.com> Remove an unnecessary null check

Bug: 9497893
Change-Id: Ib363fc4b93a53c343e0e4cd4766038fee8324850
ecipientEditTextView.java
b2b33afc99c01808b500b1443ea5802eaa493ad5 31-Jul-2013 Scott Kennedy <skennedy@google.com> am ad1d181c: Don\'t bother storing a null value in the cache

* commit 'ad1d181cd21ee598512c142150e79be754209548':
Don't bother storing a null value in the cache
b52d29b484349763720908f5528b1617516d494e 30-Jul-2013 Scott Kennedy <skennedy@google.com> Don't bother storing a null value in the cache

It serves very little purpose, and it causes an NPE.

Bug: 9286049
Change-Id: I8c95d8ded2bebdc9b904ef788cbc70865144213e
aseRecipientAdapter.java
76f1f2d4eb66956814254b0e4f86da7aa8261bcb 14-Jul-2013 Alon Albert <aalbert@google.com> Support an External Dictionary of Contacts

Allow support for an external custom source of contacts. By making
some classes & methods protected rather than private, it's possible
to allow for a derived class to extend the Chips behavior to load
contacts from an arbitrary source.

Most of the changes here are just access modifier changes but there's
one more substantial change:
Intruduced BaseRecipientAdapter#getMatchingRecipients() which matches
generated recipients with proper chips recipients from the external
sources.
Ideally RecipientAlternatesAdapter#getMatchingRecipients() should reside
in the adaper too but the goal of this CL was to do this minimal
modifications.

There's also a small change that beileve was a bug in IndividualReplacementTask:
The matchesFound() callback gets a list of matches found. It then iterates all
the original recipients and looks for those that have matches and replaces them.
So far so good but, if the original recipient doesn't have a match and is not a
phone number, the old code still replaces it with itself when it can simply skip
it I think.

Change-Id: I24e89f93ec15154ed8912664cd061fa2b5b18bd8
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
da5932fdbfbfdc03e2fa2417f3492dbf21ba7e8f 19-Jun-2013 Scott Kennedy <skennedy@google.com> Prepare to remove a null check

I am fairly convinced that the fix for 9408464 will also fix the
underlying problem of this adapter being null.

If this log method is ever called, then I'll know it didn't work, but
I believe this will never be called.

Bug: 9497893
Change-Id: I08518ceecee6985462d0165fb16b1dea95181b07
ecipientEditTextView.java
771e417fe305e0aa65f0a864f2b4f4da7606b6b1 07-Jun-2013 Scott Kennedy <skennedy@google.com> Fix a NPE

We may not get a cursor back from query(), and if that happens, we
shouldn't try to use the null cursor.

Bug: 9287151
Change-Id: Ie91d8003f51ea160e5b709a5cd6bcabefc3c687a
ecipientAlternatesAdapter.java
6b7110f320c978c368c28bdb06212c6a6df12f1f 26-Apr-2013 Alice Yang <alice@google.com> Prevent NPE in chips

Bug 8733626

Change-Id: Id74ed7de4f16f9a7e716b4e9f2152dded97a91e9
ecipientEditTextView.java
b023f69b1f35199bc17f1d2708acb492d3ae49b0 22-Apr-2013 Paul Westbrook <pwestbro@google.com> Prevent IOOB exception

The chips code was expecting a space after an email
address when replacing it with a chip. If there is no
extra space (which can happen when receiving an intent)
don't walk off the end of the string

Bug: 8635860
Change-Id: I1d40a08f1cbf11740172b0ea62ab11d656fb23f9
ecipientEditTextView.java
0c0e0a33d53f3ce4f72af7ca4f539dd3b98766b3 15-Apr-2013 Tom Taylor <tomtaylor@google.com> Merge "Messaging crash on selecting a contact from the auto complete list in landscape mode" into jb-mr2-dev
0e128968f242866568bba0f833bb17ffda127f07 11-Apr-2013 Scott Kennedy <skennedy@google.com> Don't do chip resolving in place

Make a copy of the text, and do the replacements in this copy, so
that we aren't calling back to any TextView watchers. This speeds up
the process by over 90%.

Bug: 8513563
Change-Id: Iff289f8fe24792f1aef657a9b5b4f3457bcbb946
ecipientEditTextView.java
114c89364bd00a445f0b017ae658928c1dc26c5a 10-Apr-2013 Tom Taylor <tomtaylor@google.com> Messaging crash on selecting a contact from the auto complete list in landscape mode

Bug 8540624

Change-Id: If95d1d35cfd0018280ba31a6ef66e9f42f8e1980
ecipientEditTextView.java
dd00bac0df7b509a48858da7ffe205b747061466 06-Apr-2013 Scott Kennedy <skennedy@google.com> am da491f04: Prevent a potential ANR

* commit 'da491f048fb33b572713b4287436c1cac6898670':
Prevent a potential ANR
272aae0dadf8b63b83e61bc7d9f5093f51e06564 06-Apr-2013 Scott Kennedy <skennedy@google.com> Prevent a potential ANR

Move this code into an AsyncTask, since createAlternatesAdapter() can
take a while to return.

Bug: 8519276
Change-Id: I7b3f30ab13ed894e80ac26c365dcb3cbe178dd37
ecipientEditTextView.java
41137c249b5fe547a3631d9c6db57ff980022aff 26-Mar-2013 Tom Taylor <tomtaylor@google.com> StringIndexOutOfBoundsException in Chips during monkey run

Bug 8478568

The code was looking for a comma and not finding one, but since the length
of the token was zero, the "if" clause was executed and tried to make
a substring of length -1.

Change-Id: Ic876fd6b5880c452b27083fb23cf78da994e0225
ecipientEditTextView.java
27a3299383d664b94949d81548358cc804d97ecb 22-Mar-2013 Scott Kennedy <skennedy@google.com> am f5ecf6ad: Add unit test for creating fake phone entries

* commit 'f5ecf6ad067fb1036199ad5125949aae7ffd9689':
Add unit test for creating fake phone entries
983c99b9e00913e8d2a5642cd05ccb9a81570be7 22-Mar-2013 Scott Kennedy <skennedy@google.com> Add unit test for creating fake phone entries

There was a problem with numbers formatted like:
"(888) 555-1234".

Bug: 8449554
Change-Id: Ic70998104bd5151aba2dca5202bc4f99ced362be
ecipientEditTextView.java
b315ee2049ac0942d922993d57ef825d86409883 21-Mar-2013 Tom Taylor <tomtaylor@google.com> Cherry-pick: Area code gets eaten in Chips

Bug 8436028

New code for tokenizing an address stripped the area code from a manually
entered phone number. When chips is in "phone number" mode, call a new
function (essentially the old function before the change) to create
a fake entry directly from the phone number.

Cherry-pick of: I2d62ff24aacd8eadb9086840bd4d003cf39db177

Change-Id: I08d98c2e358fc1b8a70bacf358497a511fd71069
ecipientEditTextView.java
ecipientEntry.java
0ba9133c904b8c35af8209a54604331cd671bc1f 21-Mar-2013 Tom Taylor <tomtaylor@google.com> Area code gets eaten in Chips

Bug 8436028

New code for tokenizing an address stripped the area code from a manually
entered phone number. When chips is in "phone number" mode, call a new
function (essentially the old function before the change) to create
a fake entry directly from the phone number.

Change-Id: I2d62ff24aacd8eadb9086840bd4d003cf39db177
ecipientEditTextView.java
ecipientEntry.java
63b2a5214e51f6f4fb81bba61552db256119b7e6 19-Mar-2013 Tom Taylor <tomtaylor@google.com> ArrayIndexOutOfBoundsException in RecipientEntry.constructFakeEntry

Bug 8423230

Fix a monkey bug that is showing up a lot in MR2. Use the original address
when tokenizing an address fails to return anything.

Cherry-pick of: I4ac42f81aa6e4cbdad058f73bb3a1fd62ab2e138

Change-Id: I0f41f3e169086dcd89e51cdf211985e9bf1a3ade
ecipientEntry.java
b7391a61487da625f371164257afb91636326b6c 19-Mar-2013 Tom Taylor <tomtaylor@google.com> ArrayIndexOutOfBoundsException in RecipientEntry.constructFakeEntry

Bug 8423230

Fix a monkey bug that is showing up a lot in MR2. Use the original address
when tokenizing an address fails to return anything.

Change-Id: I4ac42f81aa6e4cbdad058f73bb3a1fd62ab2e138
ecipientEntry.java
70a861b97b0421bf75b3c5c4c72d6218faeb57ba 15-Mar-2013 Scott Kennedy <skennedy@google.com> am e46cb66d: Always close this cursor

* commit 'e46cb66d4265b6fb8800f9120086151b36011f0f':
Always close this cursor
c659350ca2b6ba54aa11139106b1aa937dd065a3 17-Oct-2012 jli119X <jianpingx.li@intel.com> Cherry-pick Fix a Dead Loop issue in RecipientEditTextView

From AOSP: I01183680289919105dadc28ffd40c8e60dfd6b7e

The old code logic will cause dead loop when pasting phone number
to recipient.

Change-Id: I608f1bf2a5d5651f51be419f7b6125358f2389e2
Author: Jianping Li <jianpingx.li@intel.com>
Signed-off-by: Jianping Li <jianpingx.li@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 58793
ecipientEditTextView.java
048cf5c066f8430fd435696930d87a343283c4c3 14-Mar-2013 Scott Kennedy <skennedy@google.com> resolved conflicts for merge of 35d3af70 to jb-mr2-dev

Change-Id: If85946ef3dbf82eb3a790adf320765e4a25d91dc
06e232c1d91284a1c42f9e316164626e7c8f4c0f 14-Mar-2013 Scott Kennedy <skennedy@android.com> Merge "Fix a Dead Loop issue in RecipientEditTextView"
539c2b12cca5e9bccd9acabc4721c876058a68d4 14-Mar-2013 Scott Kennedy <skennedy@google.com> Always close this cursor

Bug: 8375851

Change-Id: I6aa528091615319722ea7b101bb1cda42c97d122
ecipientAlternatesAdapter.java
821d2f8611ac304dffdc1af044d3170c80e09f0f 14-Mar-2013 Alice Yang <alice@google.com> Merge remote-tracking branch 'goog/jb-ub-mail-ur9' into merge

Merge UR8 into MR2.

Change-Id: Ia04852cf84c05ab2ee4898662d347a06d40e5f11
194d427ebcfc2133bda410e0e4c399250d9a6066 07-Mar-2013 Scott Kennedy <skennedy@google.com> Refactor some of thie chips code

VisibleRecipientChip and InvisibleRecipientChip had a lot of the same
code, so I moved it all into a delegate class. This resulted in a
bunch of "RecipientChip" classes, so I moved them all into their own
sub-package.

Change-Id: I01dfc931e006270dd37721c73e7bc3c0e7b67515
nvisibleRecipientChip.java
ecipientChip.java
ecipientEditTextView.java
isibleRecipientChip.java
ecipientchip/BaseRecipientChip.java
ecipientchip/DrawableRecipientChip.java
ecipientchip/InvisibleRecipientChip.java
ecipientchip/SimpleRecipientChip.java
ecipientchip/VisibleRecipientChip.java
03e9e9833bced880a5e29bb06598d98dfa8d686e 04-Mar-2013 Scott Kennedy <skennedy@google.com> Ensure appended emails have a comma separator

There was some code that checked for comma placement, but that is no
longer necessary. Instead, we verify that the email address has a
trailing comma (plus optional whitespace), and if not, we append a
comma and space, to ensure the address is later chipified correctly.

Bug: 8272316
Change-Id: Ifbb1bae466e3ae15c39d6b90a4bc22edc72a096f
ecipientEditTextView.java
20c8aa75e7213ee82089b9aea9f407ca62302167 07-Mar-2013 Scott Kennedy <skennedy@google.com> Add a test case for b/8321211

Emails like:
"Ex Ample" <example@example.com>
were displaying improperly.

Change-Id: Idd43814352e0c4455733adc13b89eb6fc1aca1bb
ecipientEditTextView.java
cb62027cbeb0975c6becdef144dc5ec7dc5eb7a3 07-Mar-2013 Scott Kennedy <skennedy@google.com> Merge "Initial clean up of the chips code" into jb-ub-mail-ur9
d2240c52c38d67ee6c340d625a240ded51e2ddae 07-Mar-2013 Scott Kennedy <skennedy@google.com> Fix a failing test

Change-Id: Iaa45618d69ea12aa6714bcae36c8f12a253d5df2
ecipientEntry.java
f7e202d8b83bfbd73ca47ba7843ebc4dd57c2fa4 07-Mar-2013 Scott Kennedy <skennedy@google.com> Initial clean up of the chips code

Change-Id: I56a3dd5968a3ea435d6dcae9256021bac1f74ee6
aseRecipientAdapter.java
nvisibleRecipientChip.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ingleRecipientArrayAdapter.java
isibleRecipientChip.java
87b683e238bbf8f64237fd4cf20950e8e84fd763 26-Feb-2013 Scott Kennedy <skennedy@google.com> Unit test for getBetterRecipient()

Follow-up to Ic53d290431fcabce9607685a6eca45063fea0c9a

Change-Id: I28094ce9744838a1ab859470b22714d539ee8f4c
ecipientAlternatesAdapter.java
cabbb1f49d2107de97f868a23aa7f2fbfa8efb35 05-Mar-2013 Scott Kennedy <skennedy@google.com> am 5863e75e: Ensure we chipify the original text

* commit '5863e75e34f565429bd943af692d2fa104441901':
Ensure we chipify the original text
6ac271faa215c4e033f4b1f6719dbd3724f0c0a1 05-Mar-2013 Scott Kennedy <skennedy@google.com> am 5863e75e: Ensure we chipify the original text

* commit '5863e75e34f565429bd943af692d2fa104441901':
Ensure we chipify the original text
0613ff859a6b44685af62821eac369597cf69b26 05-Mar-2013 Scott Kennedy <skennedy@google.com> Ensure we chipify the original text

We were tokenizing the addresses, then attempting to chipify what we
believed was the ideal way to represent that address as a string. If
this did not match the actual text, it resulted in not everything
being turned into a chip.

By actually using the original text to determine what we make a chip,
we can ensure that everything is always turned into a chip.

Bug: 8321211
Change-Id: I5e7b4d57b6b8895ae5211818451075f461c14eaf
ecipientEditTextView.java
36c2feea5cbba91562dc52524a43918dc5bdd5a1 05-Mar-2013 Scott Kennedy <skennedy@google.com> am 0159508d: Merge "Fix some jank" into jb-ub-mail-ur8

* commit '0159508d07186a3bf9fcc9a7227047f1bd82084d':
Fix some jank
41ca84660a2df4355422fd3b262ed8f0d4a289b9 05-Mar-2013 Alice Yang <alice@google.com> am 48ad5213: Fix NPE.

* commit '48ad5213e18a67b3a7ec3375214e3900240b889c':
Fix NPE.
0802df0444288e59e3e5eb7c2474b7f5db97483e 05-Mar-2013 Scott Kennedy <skennedy@google.com> Revert an unnecessary change

I5e9631f258b8d273777c65f3f5460f1aa71f10b1 no longer appears to be
necessary, and was causing jank. It was effectively reverted in Gmail
UR8, and this change just removes the remaining code.

Bug: 8316009
Change-Id: I9c1309cccf57a1e6e7d75eb017aa09add57d2c4a
nvisibleRecipientChip.java
ecipientEditTextView.java
0501c63873d43bcca14e160cc4e27d702eea475f 04-Mar-2013 Scott Kennedy <skennedy@google.com> Ensure appended emails have a comma separator

There was some code that checked for comma placement, but that is no
longer necessary. Instead, we verify that the email address has a
trailing comma (plus optional whitespace), and if not, we append a
comma and space, to ensure the address is later chipified correctly.

Bug: 8272316
Change-Id: Ifbb1bae466e3ae15c39d6b90a4bc22edc72a096f
ecipientEditTextView.java
c1b5258fe0d244be2d4d8c4d2969c1b8859c6fa8 05-Mar-2013 Alice Yang <alice@google.com> resolved conflicts for merge of c4d46df7 to jb-mr2-dev

Change-Id: I8d4c64832f989c70ef432730ab584e3dc71ad004
b187a712eac1ab0aae0b4d6db6401c2c3b186444 05-Mar-2013 Scott Kennedy <skennedy@google.com> am 0159508d: Merge "Fix some jank" into jb-ub-mail-ur8

* commit '0159508d07186a3bf9fcc9a7227047f1bd82084d':
Fix some jank
0132502dc4f30cf9de460716e534575bf9328975 05-Mar-2013 Scott Kennedy <skennedy@google.com> Merge "Fix some jank" into jb-ub-mail-ur8
341ed3d331f008125dc5238278b63461ca808eed 05-Mar-2013 Scott Kennedy <skennedy@google.com> Fix some jank

Removing this line does not bring back the issue this code was
supposed to fix, and it does eliminate the jank.

We can remove all traces of I5e9631f258b8d273777c65f3f5460f1aa71f10b1
in UR9.

Bug: 8254380
Change-Id: I3af3f5e2745aca2667a5a50df306560fe61df5fc
ecipientEditTextView.java
1184feef357f5d30a49a47f4dfaeba4f233312c2 05-Mar-2013 Alice Yang <alice@google.com> am 48ad5213: Fix NPE.

* commit '48ad5213e18a67b3a7ec3375214e3900240b889c':
Fix NPE.
ad8781e6062f086aa4160eab2799b6848911aa3d 04-Mar-2013 Alice Yang <alice@google.com> Fix NPE.

Missed another place we need null check.

Bug 8312541

Change-Id: I769e1b6ea5e9c028ca46ee896575f0b4a6c4cea5
ecipientEditTextView.java
9cbf4d61154f33e91403c1a59a753ae542c8cd14 04-Mar-2013 Alice Yang <alice@google.com> am c4d46df7: Fix NPE.

* commit 'c4d46df70d525cb2289bd76fb0b0b12637dbbe23':
Fix NPE.
f0579ee4ab41c021f20f78b25ecf4c526b308ec6 04-Mar-2013 Alice Yang <alice@google.com> Fix NPE.

Change-Id: Ibb2f12a2b7728fe0e6c5bc454bf9bce96f6e827c
ecipientEditTextView.java
d215b8fd8911e0c0c85947fd6b8f774b021f97a7 28-Feb-2013 Scott Kennedy <skennedy@google.com> am 211ae635: Reduce chip jank

* commit '211ae63525c02ec914ef020af625ea4e7d8a3b29':
Reduce chip jank
a5f3a5b8704ec54e879159b0aa81490fef623872 28-Feb-2013 Scott Kennedy <skennedy@google.com> am 211ae635: Reduce chip jank

* commit '211ae63525c02ec914ef020af625ea4e7d8a3b29':
Reduce chip jank
78f38a09c9753c0ac1838ce0bfd3a6bc1a307ff7 27-Feb-2013 Scott Kennedy <skennedy@google.com> Reduce chip jank

Put every email address in a chip, so we don't have jank as text
addresses are replaced with chips.

Bug: 8254380
Change-Id: I39d435a9e29c6d9cb2b5f5f69a103ac7a7ab4a3d
nvisibleRecipientChip.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
isibleRecipientChip.java
98e2b6657a72a608b16b98f31c7df4db135f0be2 26-Feb-2013 Scott Kennedy <skennedy@google.com> am 8c386766: Use the best contact result for chips

* commit '8c3867660cd9e2ebb34e5efc62aecdad76a65c6d':
Use the best contact result for chips
d36779c68db54aef60882f63425231a4beb8ca6b 25-Feb-2013 Scott Kennedy <skennedy@google.com> am 8c386766: Use the best contact result for chips

* commit '8c3867660cd9e2ebb34e5efc62aecdad76a65c6d':
Use the best contact result for chips
ef3f76c8c0e4fc83a0ab7fbe8db9a98cc1e2a357 25-Feb-2013 Scott Kennedy <skennedy@google.com> Use the best contact result for chips

In situations where multiple results are returned for one contact
lookup, we were taking the last result. Instead, we should determine
which result is best (based on display name and photo availability),
and use it.

Bug: 8254525
Change-Id: Ic53d290431fcabce9607685a6eca45063fea0c9a
ecipientAlternatesAdapter.java
d08e990766f1b5784ae0e6101884f33e2089196c 21-Feb-2013 Alice Yang <alice@google.com> Merge 'goog/jb-ub-mail-ur8' into master

Change-Id: I7d1e9583bca936a770334252dc0046417b642298
d5242f7830fd346853912941d2ee9ee1ed7ec99a 19-Feb-2013 Scott Kennedy <skennedy@google.com> am 2727f969: Ensure all addresses turn into chips

* commit '2727f969d0ce46cdd16cd77e1dc21f3a636217d2':
Ensure all addresses turn into chips
94fa301de71cc110671802eba8376c275b4055a4 16-Feb-2013 Scott Kennedy <skennedy@google.com> Ensure all addresses turn into chips

If an address wasn't properly resolved, it was left as text. This
change processes all unresolved addresses into chips.

Bug: 8201904
Change-Id: Iae7718d97c7c1167bdc464ef372b171743524712
ecipientAlternatesAdapter.java
ecipientEditTextView.java
55ae101b2292eb9dbb0fe826f8eb7ffa6d9cac9c 15-Feb-2013 Scott Kennedy <skennedy@google.com> am 7b1c6d7d: Add a toString() to make debugging easier

* commit '7b1c6d7dea5f4e3fcb3eb4f137b2e510b394ea79':
Add a toString() to make debugging easier
9796a50bc03bcf488417dbc5a52e01bd75e3ff0e 15-Feb-2013 Scott Kennedy <skennedy@google.com> Add a toString() to make debugging easier

Change-Id: I0826eedd858ffd942e1371ec1c4d73d4d98177bd
ecipientEntry.java
87eb4a53e278ae5d6126a04b9ee3b2b90114029f 15-Feb-2013 Paul Westbrook <pwestbro@google.com> Merge branch 'goog/jb-ub-mail-ur8' into master

Conflicts:
photoviewer/AndroidManifest.xml
photoviewer/res/values/dimen.xml
photoviewer/src/com/android/ex/photo/Intents.java
photoviewer/src/com/android/ex/photo/PhotoViewActivity.java
photoviewer/src/com/android/ex/photo/adapters/BaseCursorPagerAdapter.java
photoviewer/src/com/android/ex/photo/adapters/BaseFragmentPagerAdapter.java
photoviewer/src/com/android/ex/photo/adapters/PhotoPagerAdapter.java
photoviewer/src/com/android/ex/photo/fragments/PhotoViewFragment.java
photoviewer/src/com/android/ex/photo/provider/PhotoContract.java
photoviewer/src/com/android/ex/photo/util/ImageUtils.java
photoviewer/src/com/android/ex/photo/views/PhotoView.java

Change-Id: Icb06b228f0eab1f828a21507ec2fbe7ede998536
6dd94e097be6b95ec71fbd6bbaebb105f7349b55 15-Feb-2013 Scott Kennedy <skennedy@google.com> Merge "Don't jump focus out of the View when the Activity starts" into jb-ub-mail-ur9
2fe0cffa8dce1712fb5b568ab06e13857ef4f7c1 15-Feb-2013 Scott Kennedy <skennedy@google.com> Don't jump focus out of the View when the Activity starts

In an Activity where a RecipientEditTextView has initial focus, if
you start the Activity by pressing the enter key on a keyboard (like
on a button), it would appear the onKeyUp event is handled in the new
Activity, causing this View's enter-handling logic to run.

By moving the logic into onKeyDown, we can avoid this situation.

Bug: 8013052
Change-Id: I48d3e903071954f5b73f4860ea87733c6eacd2dd
ecipientEditTextView.java
9ef46b887b80b1e2cdb13feac971cdeaa1e5747f 15-Feb-2013 Scott Kennedy <skennedy@google.com> Prevent the tab key from double-tabbing

Tabbing from this field results in skipping ahead two fields.
The platform (TextView#dokeyDown()) catches the tab in onKeyDown(),
and we were catching it in onKeyUp(), causing it to be handled twice.

Everything seems to work as expected with this code removed.

Change-Id: I1386b374e93c8de2a9dfb4c57804222a2ad88002
ecipientEditTextView.java
54d43c67449dfe2df323d138e57d8199c4ba6d37 01-Feb-2013 Scott Kennedy <skennedy@google.com> Hitting enter on a physical keyboard should auto-complete

We need to treat KEYCODE_ENTER the same way as KEYCODE_DPAD_CENTER.

Bug: 8077506
Change-Id: Ib129068f851c3927bd572edb0ae0edfb6c422ceb
ecipientEditTextView.java
0cd0096c67f81c66272349363c38c2d0e443f5f3 30-Jan-2013 Scott Kennedy <skennedy@google.com> Show contact addresses while chips load

When the "more" chip (eg +3) is expanded, we need to display the
addresses as text while we go searching for the real contacts.

Bug: 8099861
Change-Id: I5e9631f258b8d273777c65f3f5460f1aa71f10b1
nvisibleRecipientChip.java
ecipientEditTextView.java
1af243fdc3b87979252bddc06097c5056ef93894 30-Jan-2013 Scott Kennedy <skennedy@google.com> Fix advancing to the next field when "Return" is pressed

The onEditorActionListener was not being called.

By explicitly setting EditorInfo.actionId in addition to actionLabel,
the onEditorActionListner is being called again.

Bug: 8091676
Change-Id: I349e77abe64ab8492678e1c8dda4fb70f4503a85
ecipientEditTextView.java
fda0170c661e237c202a8519baba1ce3294c6afe 15-Jan-2013 Tom Taylor <tomtaylor@google.com> Repeatable ANR when pasting text into the recipient field

Bug 7998195

Add an escape clause to an infinite loop. The bug is 100% repro.

Change-Id: If4d4409a992ce29176ac8ef544a71b3649c1e6ee
ecipientEditTextView.java
0cae85010120a2a8490baf3488ed0bd2293e1d4d 17-Oct-2012 jli119X <jianpingx.li@intel.com> Fix a Dead Loop issue in RecipientEditTextView

The old code logic will cause dead loop when pasting phone number
to recipient.

Change-Id: I01183680289919105dadc28ffd40c8e60dfd6b7e
Author: Jianping Li <jianpingx.li@intel.com>
Signed-off-by: Jianping Li <jianpingx.li@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 58793
ecipientEditTextView.java
28b51e8a2895b826cff92388728755784331a16e 21-Dec-2012 mindyp <mindyp@google.com> Properly handle keyboard selection

Fixes b/7909211 Gmail compose always select the first recipient when selecting different recipient using down arrow keys of connected BT keyboard

Change-Id: Ib59045ae33e8fd6d4b7a5e2767fda356c6b6ca7a
ecipientEditTextView.java
488718e8f464d8554dd1cb00395fdfc7871f0fc8 18-Dec-2012 mindyp <mindyp@google.com> Make sure we correctly handle the " " at the end of a chip

Fixes b/7727633 After reply focusing on To field puts cursor right next to chip

Change-Id: I13e7ede4385cf96e6eb0588adaccf0f67424b0ce
ecipientEditTextView.java
642d831d094cf29bf5d5f5ac0a0bab77b8fec0fd 17-Dec-2012 mindyp <mindyp@google.com> am 9f662b7d: am a918fec5: Merge "Eliminate jank when the user deletes a character thereby removing all contact results in the popup." into jb-mr1.1-dev

* commit '9f662b7d0561a46a0250702385084c48efe9ca24':
Eliminate jank when the user deletes a character thereby removing all contact results in the popup.
806017c149a5460d37adaae8a6278175f2b4b812 17-Dec-2012 mindyp <mindyp@google.com> Eliminate jank when adding/ removing character

Change-Id: If09ad14830f5ccb490006cc342d83806057ffa34
ecipientEditTextView.java
e7f7a7d521b6b369035370b6c9241d2c6e313b44 17-Dec-2012 mindyp <mindyp@google.com> Eliminate jank when the user deletes a character thereby removing all contact results in the popup.

part of b/7727257] Jank when replying to or forwarding a message in gmail

Change-Id: If95716847260d802e527a4ad012ea7f8085d6930
ecipientEditTextView.java
209af6013a04da558cb24fcf7cfb0f4f4e1bce34 15-Dec-2012 mindyp <mindyp@google.com> Merge commit 'f54b3505' into manualmerge

Conflicts:
chips/src/com/android/ex/chips/RecipientEditTextView.java

Change-Id: I2a8d55d6db3fdb4aab6ea788b685a047dcf9ed9d
093ecdd3cde3e54df3fb30f5ca47067fdcf46f3c 14-Dec-2012 mindyp <mindyp@google.com> Scroll when result of a contacts lookup appear

Fixes b/7727257 Jank when replying to or forwarding a message in gmail
Change-Id: I620fb31adcb80ca7a6a86c64c987969bc630429d
aseRecipientAdapter.java
ecipientEditTextView.java
8c474ec629cca3cf4bf2c867f37513ae35e3ff72 14-Dec-2012 mindyp <mindyp@google.com> Scroll when results appear

Fixes b/7727257 Jank when replying to or forwarding a message in gmail

Change-Id: I6fbb574ac724772d541d063192a5e0e59b776360
aseRecipientAdapter.java
ecipientEditTextView.java
16923ee63a79fce4be3f62b08bcd1f80617c1205 10-Dec-2012 mindyp <mindyp@google.com> Extend reverse lookup to also check GAL

Fixes b/7499733 gal address sometimes treated as message-only address in chips

Change-Id: I3fa79a43c672b1d2eac72dae6a9dfaf8701be977
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
8ca8bdb93e9052b430969c8d89e3c12cebe75775 10-Dec-2012 mindyp <mindyp@google.com> Use same default contact photo for list items and chips

Fixes b/7706601 which asset do we want to use for the default contact icon?

Change-Id: I0bd414aefb783a4a64ce0041dcd8f7f8d5911b83
ecipientEditTextView.java
f30a42800318f6790d55421f8f6980eb38db4d3c 03-Dec-2012 mindyp <mindyp@google.com> Merge from ur8

Merges in:
Fixup delete logic

Its only a delete if the user has removed a single character,
otherwise, we are looking at replacement, probably from a reverse lookup
Ia7c7b94d9e2fb037cb19abdb6696f7df0d351856

Make sure we only use the invisible chips optimization if we are showing the "more" chip

In the case of calendar, we never shrink the field, so this optimization
can't be used
I30e3312b8e686be5143f96d3d2820e023158957d

mMaxLines was not being set correctly; dont draw hidden chips on first render pass

mMaxLines was always zero
Setting the value correctly avoids an extra layout which makes it faster
to render chips
Use an "invisible" recipient chip for anything > than max chips we can show before
showing the more chip; this avoids a lot of unnecessary drawing and decoding of 9 patches
in the first pass; once these are resolved (or the user makes them visible), they will be correctly
drawn as visible chips
Part of b/7492291 First 2 contacts takes too long to resolve into chips when there are many contacts
I37817381f93efb968940031d8a8b77fb62c8919a
Change-Id: I4cbe5eacaa6fc5d1d94a5663133da82621582824
aseRecipientAdapter.java
nvisibleRecipientChip.java
ecipientAlternatesAdapter.java
ecipientChip.java
ecipientEditTextView.java
ecipientEntry.java
isibleRecipientChip.java
f760e681ba6089b393b0ba919d3462f4bc46d681 03-Dec-2012 mindyp <mindyp@google.com> Fixup delete logic

Its only a delete if the user has removed a single character,
otherwise, we are looking at replacement, probably from a reverse lookup

Change-Id: Ia7c7b94d9e2fb037cb19abdb6696f7df0d351856
ecipientEditTextView.java
04e5706f0108c5c4b78380205b1fc5c256608dc5 03-Dec-2012 mindyp <mindyp@google.com> Make sure we only use the invisible chips optimization if we are showing the "more" chip

In the case of calendar, we never shrink the field, so this optimization
can't be used

Change-Id: I30e3312b8e686be5143f96d3d2820e023158957d
ecipientEditTextView.java
6a8c8d837e53897f19539e0c2455e3d5fc579b5e 01-Dec-2012 mindyp <mindyp@google.com> mMaxLines was not being set correctly; dont draw hidden chips on first render pass

mMaxLines was always zero
Setting the value correctly avoids an extra layout which makes it faster
to render chips
Use an "invisible" recipient chip for anything > than max chips we can show before
showing the more chip; this avoids a lot of unnecessary drawing and decoding of 9 patches
in the first pass; once these are resolved (or the user makes them visible), they will be correctly
drawn as visible chips
Part of b/7492291 First 2 contacts takes too long to resolve into chips when there are many contacts

Change-Id: I37817381f93efb968940031d8a8b77fb62c8919a
nvisibleRecipientChip.java
ecipientChip.java
ecipientEditTextView.java
isibleRecipientChip.java
fae3c920e79aa1780d9eb2b58520bcf910bb7b1d 01-Dec-2012 mindyp <mindyp@google.com> Remove unnecessary call to tokenize

the address is already tokenized

Part of b/7492291 First 2 contacts takes too long to resolve into chips when there are many contacts

Change-Id: Ibefe1ce45ea8309e51c9cf25bf058d88ebf75ec1
ecipientEditTextView.java
7e10c86c8bead949f2f4694e97d7844c6aef9e08 27-Nov-2012 mindyp <mindyp@google.com> Make sure we proplerly edit created chips.

We need to edit the created chips before the text is changed so that we
don't count the existing "," when deleting

Also, make sure to move chips that are being edited as text to the end
of the field
Fixes b/7547813 When I try to delect an email address for each charater, it blocks automatically again.

Change-Id: I60661945b75ab0f4ffbb04e71971d16e2900c26c
ecipientEditTextView.java
a24c09d0151f1787102855f7ab5804ebb6dafff8 27-Nov-2012 mindyp <mindyp@google.com> Merge in sms fixes

merges:
https://googleplex-android-review.googlesource.com/#/c/252609/1

Change-Id: I04a0ffa4feb36683f1392ec730742f5f7e10fa32
ecipientEditTextView.java
58ff57f0f7d2ca9527b64c62e147d06f01309bef 20-Nov-2012 Paul Westbrook <pwestbro@google.com> Merge remote-tracking branch 'goog/jb-ub-mail' into gmailmerge

Conflicts:
chips/src/com/android/ex/chips/RecipientEditTextView.java

Change-Id: I160582b77ead921df187bdcf41a1f53cd0d5e425
4491a0679fbf4472f9bc199197c1d4abe6a9d969 15-Nov-2012 Tom Taylor <tomtaylor@google.com> SMS text messaging omits numbers in parentheses

Bug 7355280

Very localized fix. Tweak the phone number matching pattern to handle a
"1" before parens. This change was originally incorporated in MR1, but
wiped out by some automerger change. Bringing the change back for MR1.1.

Change-Id: Ifd11762fb7253fab69ca912dff6b62c5673bf216
ecipientEditTextView.java
637ac7db04071a04c5b3e4755ba9ad4cac64f2f1 14-Nov-2012 mindyp <mindyp@google.com> Remove the unneeded call to "findtokenstart"; we already have the token start

Part of b/7492291 First 2 contacts takes too long to resolve into chips when there are many contacts
and general speed improvements
4ms faster to create a chip
Change-Id: Ib016492cf63aa87ee3ace8e6bb7988fbe0a37749
ecipientEditTextView.java
ccb8e237ec80934d1c983bb61f66b75541786ddc 14-Nov-2012 mindyp <mindyp@google.com> Don't validate the recipient text each time

Instead, validate once.

Saves ~10ms per chip creation
Win.

Part of b/7492291 First 2 contacts takes too long to resolve into chips when there are many contacts
and general speed improvements

Change-Id: I6f3da136da23942c8bec25cee7038d475e7005e6
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ecipientEntry.java
cb76b4d2bcb7b72b9505a620ca71f753506e48b9 09-Nov-2012 mindyp <mindyp@google.com> Reduce time until first revision of a chip is drawn.

Means less time showing plain text.
replace call is expensive.

Change-Id: I1be571af78497c2dfff724b612d60ededc98ff36
ecipientEditTextView.java
4f82d888c680a61b95373740ce68bfb48a242617 09-Nov-2012 mindyp <mindyp@google.com> dont replace the text in the text field when editing a fake or generated entry

We are editing the entire text in there, and that includes the display name
and any other information...so just remove the span
This means we dont trigger a text change that triggers a scroll
Fixes b/7499873 Odd scroll when touch non-contact chips with quote text enabled

Change-Id: I0c537e7fec663abe3cec96a5b59bc52caa009a30
ecipientEditTextView.java
5e60c2b9b39b0aec39e3a03f9a178c2cb857b9d6 07-Nov-2012 mindyp <mindyp@google.com> Merge changes to chips from unbundled branch: update behavior to match new ux spec

Fixes part of b/7481045 recipient address briefly drawn w/o friendly name

Change-Id: I523b960fd044f054ec32befc10599d4d0e485eaf
ecipientEditTextView.java
0d93ca4ab5bb9c1d63d85bbb353f461b164b531c 07-Nov-2012 mindyp <mindyp@google.com> Make sure that we take the existng temporary contact, where available.

Temporary contact entry will give us display name and address if it has it
when there is no contact match

Fixes part of b/7481045 recipient address briefly drawn w/o friendly name

Change-Id: Id5cf6b770d1179c81d9c9b808af4681e632d18a7
ecipientEditTextView.java
9f4d30abb750c19d0a8554c7677c0ce6a7751cec 07-Nov-2012 mindyp <mindyp@google.com> Make sure that the last "fake entry" chip is correctly committed

Fix logic to correctly determine that this "recipient chip" is really
text

Fixes part of b/7481045 recipient address briefly drawn w/o friendly name

Change-Id: I4c5244581a4fce5de58d6d9c510e1df16674c338
ecipientEditTextView.java
0d7c89b162ad6cc45c5d3217c5e10df84ddb4dc7 06-Nov-2012 mindyp <mindyp@google.com> Update chips to follow new ux spec for replacement

Part of b/7481045 recipient address briefly drawn w/o friendly name

Change-Id: I2f3c63f555143c66b3d4f466b60e0ca884d6302b
ecipientEditTextView.java
374ccb2935ea793d2fbee54ec5fe6d71af934d27 06-Nov-2012 mindyp <mindyp@google.com> cherrypick: Reset maxlines when the user expands text

To avoid an initial jump when changing over a possibly large numbers of contacts to chips,
start with maxlines of 2 from some apps, and eliminate this when the user chooses to expand.

Part of b/7481045 recipient address briefly drawn w/o friendly name

Change-Id: I5c8cd5c1569befa28a67ddb1f4153e03e896c25a
ecipientEditTextView.java
3d78920f5806b519c27e147a4817b9563efcf139 06-Nov-2012 mindyp <mindyp@google.com> Reset maxlines when the user expands text

To avoid an initial jump when changing over a possibly large numbers of contacts to chips,
start with maxlines of 2 from some apps, and eliminate this when the user chooses to expand.

Part of b/7481045 recipient address briefly drawn w/o friendly name

Change-Id: I5c8cd5c1569befa28a67ddb1f4153e03e896c25a
ecipientEditTextView.java
d2f9bd4e8f964e91473840977c002d50b6688a39 25-Oct-2012 Paul Westbrook <pwestbro@google.com> Show old results

Keep showing old recipient results when no local results are returned,
if we are waiting for server results

cherry-pick of https://googleplex-android-review.googlesource.com/#/c/246005/

Bug: 7407129
Change-Id: If495ff6437da064206923dc95ee61b7a4f19c2f3
aseRecipientAdapter.java
37726c00b6d53f7afd0c31b8f8f1805976ba722a 25-Oct-2012 Paul Westbrook <pwestbro@google.com> Show old results

Keep showing old recipient results when no local results are returned,
if we are waiting for server results

Bug: 7407129
Change-Id: If495ff6437da064206923dc95ee61b7a4f19c2f3
aseRecipientAdapter.java
0120ebce96fa9c00e730b65ca8909f65b3b4d55b 16-Oct-2012 Tom Taylor <tomtaylor@google.com> SMS text messaging omits numbers in parentheses

Bug 7355280

Very localized fix. Tweak the phone number matching pattern to handle a
"1" before parens.

Change-Id: I67d878145fbc0b0ac17197043ea84f68e52b8156
ecipientEditTextView.java
b5afbc70a27f7534fd6dfa7440b3a3450bbc52cf 03-Oct-2012 mindyp <mindyp@google.com> cherrypick: Make sure we check the most up to date text for the token offsets.

The issue here was that we were using the old version of the editable string
(cached in var text) to look for the start/end of tokens, but the result
of calling commitChip may have updated the text (added corrective rfc822
formatting, or a display name)

Fixes b/7268603 [Manta] List of email addresses pasted into the To field is broken

Change-Id: Iccc8dbf78a018c84fd818582d10ff2b02a787276
ecipientEditTextView.java
f21481203ca8a160c424e914baea31faed752092 03-Oct-2012 mindyp <mindyp@google.com> Make sure we check the most up to date text for the token offsets.

The issue here was that we were using the old version of the editable string
(cached in var text) to look for the start/end of tokens, but the result
of calling commitChip may have updated the text (added corrective rfc822
formatting, or a display name)

Fixes b/7268603 [Manta] List of email addresses pasted into the To field is broken

Change-Id: Iccc8dbf78a018c84fd818582d10ff2b02a787276
ecipientEditTextView.java
73cb50b242ee4b4c3e9c990ef4993213540f6a30 01-Oct-2012 mindyp <mindyp@google.com> Add comments to the recipientedittextview replace code.

makes it easier for others to debug/ review

Change-Id: Icdcbaa9074c81ef33943b24e8e0b544513360d8a
ecipientEditTextView.java
a0e1c66870d5c7fdcc2abc83bba09b2433388772 29-Sep-2012 mindyp <mindyp@google.com> cherrypick: Fix crashes associated with new logic to replace entire address with name + address

Fixes b/7257614 crash when replying to a message

Change-Id: I6dcda376073f941fba4b09a647bdb00a92e4ccce
ecipientEditTextView.java
25875364c61473bb097254984636755a1daa8ac3 29-Sep-2012 mindyp <mindyp@google.com> Fix crashes associated with new logic to replace entire address with name + address

Fixes b/7257614 crash when replying to a message

Change-Id: I6dcda376073f941fba4b09a647bdb00a92e4ccce
ecipientEditTextView.java
527d35c26ff81f6e79b8c7e9d7f4c356d9a32dc8 26-Sep-2012 mindyp <mindyp@google.com> am 215b1c80: The "original text" is just what we are putting in the text view, which is displaytext

* commit '215b1c80111ccc8d42256fa8f38f3d00e0171cf2':
The "original text" is just what we are putting in the text view, which is displaytext
a310e9b2d053383613aa02d1b27f99f428b6cf4e 26-Sep-2012 mindyp <mindyp@google.com> The "original text" is just what we are putting in the text view, which is displaytext

Fixes b/7233276 Crash at clicking Email - ReplyAll on Manta

Change-Id: Icd5e2c0c2afb625a6b181592b2da27a008266a33
ecipientEditTextView.java
cd4f6428dad3f3f05fee84c579f8731f9557ffef 24-Sep-2012 mindyp <mindyp@google.com> am b6641931: Make sure when we reverse lookup a recipient, we replace the underlying text string as well.

* commit 'b6641931653e19766025820fb78c7142e597545e':
Make sure when we reverse lookup a recipient, we replace the underlying text string as well.
fa8f1e4940935ea0c304e8f6181eec4cfb600be4 24-Sep-2012 mindyp <mindyp@google.com> Make sure when we reverse lookup a recipient, we replace the underlying text string as well.

Fixes b/7146034 Conversation message header doesn't show friendly names

Change-Id: I043d352e1c6546e5a8c07854e832f31c3a71d24d
ecipientEditTextView.java
ad7d892bcac6cebf37c81e2ad81ebdd08cc3f323 11-Sep-2012 mindyp <mindyp@google.com> am 6c668476: We add the separator ourselves later if it wasnt specified in append.

* commit '6c66847624945b3caca9607c61669f4766e7f39e':
We add the separator ourselves later if it wasnt specified in append.
20d7af71188a4a2d94c8d9edd7eff7879d6df4c4 11-Sep-2012 mindyp <mindyp@google.com> We add the separator ourselves later if it wasnt specified in append.

Fixes b/7137725 Attendees are lost after editing

Change-Id: I48cecde9e5e2e9e8648393c8b71e6911cd1cbc9f
ecipientEditTextView.java
bf12c1e7d1cea25f49ece5f59a326bde5eac10d2 10-Sep-2012 mindyp <mindyp@google.com> am 3aa118e7: Be extra careful with commas in recipient chips

* commit '3aa118e72c877b4c176d025c56bfad2e518bf1ce':
Be extra careful with commas in recipient chips
abb864d610bdd171d6b0dfd2e83648952155e6eb 10-Sep-2012 mindyp <mindyp@google.com> Be extra careful with commas in recipient chips

Fixes b/7132543 email addresses not recognized when using Gmail ICS

I added 2 in a row to be extra certain, and always check for the
LAST instance of ","

Change-Id: Id963971303a99642865a79c6264264e62a920151
ecipientEditTextView.java
1d8435c304e8edafd3c1c26ab02b7946978feeb4 27-Aug-2012 mindyp <mindyp@google.com> am 26e3f68a: Deal with commas within quoted text

* commit '26e3f68ae8342cedd57353e399e7d0e920228a4e':
Deal with commas within quoted text
0124468e712b4098ea240b8d45f84e52826b293d 27-Aug-2012 mindyp <mindyp@google.com> Deal with commas within quoted text

If there is a comma within quoted text, it is NOT a chip ending token

Fixes b/7001805 Names appended to email ids like "Mathew, Deepthi E" are split into two chips while replying

Change-Id: I87f34a44282b3baf8d106dd21f8211ad301395be
ecipientEditTextView.java
4e7d20f7b74ddce5a104138714c9683c8bd2300d 16-Jul-2012 Mindy Pereira <mindyp@google.com> Merge change from jb-dev to master

This is the change that fixes the random scrolling when switching
between reply/reply all

Merge of: https://android-git.corp.google.com/g/#/c/203483/1

Change-Id: I6b11016b4f48b297a2c6c40413cf6d6a52a193b4
ecipientEditTextView.java
3b97ecfb38de40755be7cea80eadb2c010cf112a 28-Jun-2012 Mindy Pereira <mindyp@google.com> am 1a71f76d: Check for null adapter.

* commit '1a71f76db0880a572b1443e8a0ac31a4bb584a8b':
Check for null adapter.
ca5227122474fb124a4fe573a2f07e14d7a33f3e 28-Jun-2012 Mindy Pereira <mindyp@google.com> Check for null adapter.

If its not set, that would cause this crash in the monkey.

Fixes b/6746348 java.lang.NullPointerException at com.android.ex.chips.RecipientEditTextView.isPhoneQuery(RecipientEditTextView.java:2574)

Change-Id: I420bbae15180d0d53c674b00907bc361a519c165
ecipientEditTextView.java
1bdbef8067c616ca2ffc51aa62673bac5f0281c7 25-Jun-2012 Tom Taylor <tomtaylor@google.com> Area code truncated for the phone number in messaging app

Bug 6717762

When launching mms from the contacts app, numbers sometimes get munged,
either by losing the area code (if in parens) or losing the number
completely and just ending up with a contact name.
Parse all the parts of a contact "fred flinstone <512-123-1231>" looking
for the phone number. Also handle the case where the area code is lost when
in parens (i.e. (800) 891-8923).

Change-Id: I76976fa8004c1d7c03a651b3915537245fee16e4
ecipientEditTextView.java
db108e1a73360961d0b67a2e0db36695d2cb8e6f 25-Jun-2012 Mindy Pereira <mindyp@google.com> Don't scroll when we are clearing text.

Only scroll when the user adds text.

Fixes b/6696682 Compose email field is out of view after changing from Reply to Reply all for a message

Change-Id: I188f9be0b4993edab282256d647501b6734242f7
ecipientEditTextView.java
c52ea8e900948bf42ed63b2d3d6c9afbd70d9df0 05-Jun-2012 Mindy Pereira <mindyp@google.com> Break out of infinite loop once we detect an error.

Fixes b/6606808 Crash in Gmail {OutOfMemoryError- at android.graphics.Bitmap.nativeCreate(Native Method) }

Change-Id: Ic62c15bd59060f552aef5be0cc06e26b56efd462
ecipientEditTextView.java
303209752af1e12c5848815c906135ddb490e0c5 25-May-2012 Mindy Pereira <mindyp@google.com> Merge "Rather than change the text, just remove the waiting for entries row." into jb-dev
c0e3599d01a4bcfa900ad8dab8becc349e25ad82 25-May-2012 Mindy Pereira <mindyp@google.com> Rather than change the text, just remove the waiting for entries row.

Fixes b/6546713 Blank suggestion is sometimes shown even if nothing was typed
per ux

Change-Id: I5c6d1f6620426bd96abca1bad650663ab6c5c426
aseRecipientAdapter.java
ecipientEntry.java
412e9ace09ec6f4296177ccfd18dfd6c6bafe2dc 25-May-2012 Mindy Pereira <mindyp@google.com> Merge "The mysterious blank item was just a mis-used layout" into jb-dev
cf11061041b469e0f5cb574b09ee9e32455cdbfb 25-May-2012 Mindy Pereira <mindyp@google.com> The mysterious blank item was just a mis-used layout

Was expecting the chips_waiting_for_directory_search layout
But was given the chips_recipient layout
Fixed this to use the correct layout
fixes b/6546713 Blank suggestion is sometimes shown even if nothing was typed
that's at least part of the problem
why it shows up "uninvited" is another question

Change-Id: Ie60b9ae8f7f86dda4316fee43b3983fbe0f17cb0
aseRecipientAdapter.java
fdc0e0d727a2a378f6fddf849bccdb68d233dd12 24-May-2012 Mindy Pereira <mindyp@google.com> Merge "Dont hide the keyboard when showing alternates/ selecting a chip." into jb-dev
6a6bc7010f0f634ad32312d9802c50ed749f12bb 24-May-2012 Mindy Pereira <mindyp@google.com> Dont hide the keyboard when showing alternates/ selecting a chip.

Fixes b/5557044 Chips replace-email-window shouldn't close the keyboard

Change-Id: I93829983346de77ee79dd602ae84152d262ce01d
ecipientEditTextView.java
7a959616e9354610555cf9d656eff68d0ce44ec9 24-May-2012 Mindy Pereira <mindyp@google.com> Merge "Null check; back behavior" into jb-dev
03cfe3eee5635e419ab1d70d463b2b8beac72f00 24-May-2012 Mindy Pereira <mindyp@google.com> Null check; back behavior

Since its possible there was no chip formed for an address, it is
possible there is no address in some part of the inAddresses array, so
build it up as an arraylist so we don't have null spots.

Fixes b/6555471 NPE in com.android.ex.chips.RecipientAlternatesAdapter.getMatchingRecipients

Fixes b/6556107 when contact chip is selected back button should dismiss the popup and unselct the chip
Change-Id: If74b13ccc5f51aafc3638817b5fbef54cd57548c
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ffd270a55d80db66bd6a1d7b786443fdc00af372 24-May-2012 Mindy Pereira <mindyp@google.com> Fix offset of alternates list dropdown.

Fixes b/6546711 Chips suggestion is below selected chip

Change-Id: I14821855b510b30e8eb4798eb4cc4a9c69f4dca9
ecipientEditTextView.java
b2af8b4557338c55c726ed91f53d386320f5d99d 23-May-2012 Mindy Pereira <mindyp@google.com> Try this out with experimenters to see if the scrolling is reasonable.

It seems that what annoyed arubin was that focusing the item changed the scroll
position
So I am now just changing it when the user actually starts entering text

Change-Id: I8868cde2fc90b1e253c50fd3fad900f811442e6d
ecipientEditTextView.java
a98b8e49be8e1ff1938ab204d86372e292c78194 09-May-2012 Mindy Pereira <mindyp@google.com> Change text on "done" to say "return"

Fixes b/6468243 While adding chips to the To field display label "Return" instead of "Done"

Change-Id: I42f9a845c553f0aa01971c5b3221ce5d0504c810
ecipientEditTextView.java
dc760f38bc66d257ff38f1f8db18ee32961261bf 07-May-2012 Mindy Pereira <mindyp@google.com> Use ALIGN_BOTTOM instead of ALIGN_BASELINE

This certainly looks better
Fixes b/6369828 When there are 2 chips/labels stacked top one is compressed

Change-Id: I345bd5feec16a5d9352d4ad20dfb9725d76bb208
ecipientChip.java
4afc73e1e15f7a7fdf608302b9b8488b7a4206f8 04-May-2012 Tom Taylor <tomtaylor@google.com> Contact added to the "To" field of the Messaging app is not getting deleted

Bug 6435466

If you have a chip representing a phone number with the area code in parens
with a space (i.e.: "(425) 234-4322"), the chip would get committed when
the user was deleting chars and hit the space char. Ignore the special
email handling code for this case when in phone number mode.

Change-Id: I998e273a88b9f30b651dedb41a39b7d37794be97
ecipientEditTextView.java
27715de6d5abcb22859c967bddf56609e6348772 04-May-2012 Tom Taylor <tomtaylor@google.com> Merge "Don't autoselect first item in dropdown" into jb-dev
c7a87f0ad6a8f722ba93cb7c457ed1a1be5ab3b5 04-May-2012 Tom Taylor <tomtaylor@google.com> Don't autoselect first item in dropdown

Bug 6434183

When in phone mode and the user types something that happens to bring up
the dropdown, don't auto-select the first item if they don't choose
something. This was preventing users from entering numbers and shortcuts
that happened to be close matches to existing contacts. Unless the user
selects an item, keep what they manually entered. The change looks much
bigger than is really is. The only real change is in commitChip. The rest
of the changes are to call a helper function, rather than duplicating the
same code throughout the file.

Change-Id: Ia0ec24a3667770fa5d43ff870ed87019b732627e
ecipientEditTextView.java
43a3fc6494a37810e047a1154e19c9e991dd5353 03-May-2012 Mindy Pereira <mindyp@google.com> Fix alternate reverse lookup query.

Fixes b/6428194 Chips misbehave when re-editing a draft

Change-Id: I6589ece36aac7dcfb4ac2650d555f8ce914f337e
ecipientAlternatesAdapter.java
a5d37c8a968edf94755215617b593d3f61738a92 03-May-2012 Makoto Onuki <omakoto@google.com> Don't show duplicate destinations in alternate popup

There isn't much thing we can do from the contacts provider side, so let's just
remove duplicates manually...

Bug 6428328

Change-Id: I78e7fc7ed66d7cf977935611c8fb0318ffa7c83b
ueries.java
ecipientAlternatesAdapter.java
3a42ce9675121affab6f659de01e48342a6f50fe 02-May-2012 Makoto Onuki <omakoto@google.com> Merge "Don't use DISPLAY_NAME for chips if name is email or phone" into jb-dev
939283d42aa752bff27ad68daa63707ff6107e6d 02-May-2012 Mindy Pereira <mindyp@google.com> Merge "Recycle styleable attributes after use." into jb-dev
ef79800ff65490ec91ce77f55c4ade142d1cc4b2 02-May-2012 Mindy Pereira <mindyp@google.com> Recycle styleable attributes after use.

Change-Id: I43319c0a36d45e8afa90ae1871ff17cbc6ecf961
ecipientEditTextView.java
00adb32f3cea49ec82467c0e1a9e42659b556836 02-May-2012 Makoto Onuki <omakoto@google.com> Don't use DISPLAY_NAME for chips if name is email or phone

Don't use contact's display name, if the name source is EMAIL
or PHONE (or UNDEFINED). Just use the destination (i.e. the actual email
address or phone number) as the name.

Bug 5414496
Bug 6425953

Change-Id: Id0e7e57122a4840b075710309306b074143199bf
aseRecipientAdapter.java
ueries.java
ecipientAlternatesAdapter.java
ecipientEntry.java
5c4a2e739cc79ddf55fcbf573efabc27e309bbf8 30-Apr-2012 Mindy Pereira <mindyp@google.com> Merge "Vertically center text in chips." into jb-dev
8ff03734c31831d3d60b0cb2707c006dbf64d330 27-Apr-2012 Mindy Pereira <mindyp@google.com> Vertically center text in chips.

Was kind of off.
Fixes b/6370062 Text spacing in the error case chip should be centered

Change-Id: I4ac88f5bf2f7b61008728cec92abb3da9e5ee1be
ecipientEditTextView.java
2eb61a3b1e71d8822b670a232c20e653a59a5f5a 27-Apr-2012 Mindy Pereira <mindyp@google.com> Merge "Use ime actions to commit when the user presses enter." into jb-dev
93364a61b0dcd90e19b96ea9b5900a77e2c4902e 27-Apr-2012 Mindy Pereira <mindyp@google.com> Use ime actions to commit when the user presses enter.

TODO: is the enter key saying "done" ok?

Fixes b/6370021 Pressing return after entering address results in text not becoming chip, leaves text

Change-Id: I2d054335fdc0bd175d12a31dcab15f2ad956e9ec
ecipientEditTextView.java
6a6a98752315ddf1e7c23e7814ff5e70105e25cf 27-Apr-2012 Tom Taylor <tomtaylor@google.com> Merge "Fix an crash if you pass a SpannableString" into jb-dev
2d227630ef73ee813565d64829480c1164f56a9d 27-Apr-2012 Tom Taylor <tomtaylor@google.com> Fix an crash if you pass a SpannableString

If a derived class passes a SpannableString to append, the code will
crash with an invalid cast. Simple fix.

Change-Id: I28f33b4eadabb8fce1ddba8cc1ece20b1d919764
ecipientEditTextView.java
c1b76dc4c2da6ebbad1750544e08444f430c5dd9 27-Apr-2012 Mindy Pereira <mindyp@google.com> Merge "Dont commit by commit char if we cant tokenize." into jb-dev
60d96dccf8f82c31976d29842b85f12dc905cfd1 27-Apr-2012 Mindy Pereira <mindyp@google.com> Dont commit by commit char if we cant tokenize.

Fixes b/6386831 Crash in Gmail on editing the To field after capturing a bugreport
fixes b/6394257 com.google.android.email: java.lang.NullPointerExceptionat com.android.ex.chips.RecipientEditTextView.commitDefault(RecipientEditTextView.java:1024)
Change-Id: I2c5fdde54d8b36cab05b88f6506d58a884ae0bf2
ecipientEditTextView.java
9c17ab5f3bf0f88e3641faf98931c4f9e7d65366 25-Apr-2012 Tom Taylor <tomtaylor@google.com> Fix alternates adapter

Make the same change for phone number chips as email chips:
tapping a chip was not showing the alternates for that contact.

Change-Id: I1fbac88a9869dbe97599e4d125709b4861f031d8
ecipientAlternatesAdapter.java
a62ba492f901e024b249e0138e96374b09766a36 25-Apr-2012 Mindy Pereira <mindyp@google.com> Fix alternates adapter.

Tapping a chip was not showing the alternats for that contact.

Change-Id: I747ddd8a46c6e60a3068cb21d6e5ea16c2d9fd0a
ecipientAlternatesAdapter.java
aca9409f267cf04f3716c530342ea702ebdd80d1 25-Apr-2012 Mindy Pereira <mindyp@google.com> Fix alternates.

Change-Id: I2cd2a2f50696e3059d1b579e10eda5d6ad1fe50b
ecipientEditTextView.java
f6d4bfce7cae3cc385396963dc8ea3eda90b917e 25-Apr-2012 Mindy Pereira <mindyp@google.com> Check span before deleting.

Fixes b/6389344 gmail on JRN19F dies when I try to edit the To Email address in a bugreport

Change-Id: I84e7a01d2f443a08ae7708c87fb8ab9fdaa20e77
ecipientEditTextView.java
abff606ceb5e103d4a21c56fb9b78d7844c8e5b7 17-Apr-2012 Tom Taylor <tomtaylor@google.com> Better support for phone numbers in Chips

Bug 6332661, 6321866

When in phone number phone, Chips needs to recognize numbers and not try
to parse the numbers as Rfc822Tokens.

Change-Id: Ib96ad310fae195776746e14e6e9ee57a85198d1a
ecipientEditTextView.java
7606aadddf7b1e09d5bf91f07e6a935a3ab1161b 13-Apr-2012 Daniel Lehmann <lehmannd@google.com> Removed ChipsUtil's increment features which are not ICS-and-up safe

Change-Id: Iaa05940c789ddfd4f37e5deb9e8e84c5cc28926f
hipsUtil.java
80f4abfb682426384e88fb1dddc682be1c8a6c7f 06-Apr-2012 Tom Taylor <tomtaylor@google.com> Support phone numbers in Chips UI

Bug 5066294

Add Zak's work for supporting phone numbers in the Chips UI. The default
remains email-centric, but the phone number option works great for
apps like Messaging.

Change-Id: I17cd8460f1b96f28ced8bbb32e145581dae6d807
aseRecipientAdapter.java
ueries.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
270582902e34a8cf9cbd1d2a1e19e555e5ef7eea 23-Feb-2012 Mindy Pereira <mindyp@google.com> am e67e5aab: am 06b38bf7: am 665ba9e4: Don\'t adjust scroll on focus changes.

* commit 'e67e5aabd555f3862d8f8e640582d63a6f46357d':
Don't adjust scroll on focus changes.
da32497f50aa3ce92528f7bd008f3dbbb7c5b950 21-Feb-2012 Mindy Pereira <mindyp@google.com> Don't adjust scroll on focus changes.

Fixes b/6037251 Switching input fields causes line loss
Since the ime suggestions area may also be going up/ down
we can't really trust offset measurements. Adamp says
this should be addressed in the j timeframe.
Change-Id: I5f5eeb33e0fd9397873451cb1d1325deb451542d
ecipientEditTextView.java
62fce9316c48a188d89c31d7e616f755bd7cf14c 17-Feb-2012 Mindy Pereira <mindyp@google.com> Make sure we don't run off the end when deleting chips.

Fixes b/5997197 Gmail crash when trying to delete the address chip [IOBE at android.text.SpannableStringBuilder.checkRange]

Change-Id: I931da8017a92f145c13f36c765613f16fecf97ab
ecipientEditTextView.java
72a2339009029d3217a0ff39f5a92523e8fb3d41 06-Feb-2012 Mindy Pereira <mindyp@google.com> Since the delete key can't be guaranteed, use text changed listeners.

Per IME team, the delete key isn't/ was never guaranteed to be sent.
Therefore, I cannot depend on the QwertyKeyListener
Therefore, I am working around them

Change-Id: I2dea39beee22f7c181be2b33b7be66a388f42262
ecipientEditTextView.java
76e62e334ef2b9ec55e5395f8374072f7ee1ea84 04-Feb-2012 Mindy Pereira <mindyp@google.com> Need to set the resource for the dialog.

Fixes b/5965686 hc/ics unbundled gmail: long press on contact chip causes crash

Change-Id: I186a0a1e84a29f48060a3f855a08017f41b93463
ecipientEditTextView.java
32aff5f5bdc7c860169e50eacb7120983b3901a8 11-Jan-2012 Mindy Pereira <mindyp@google.com> Make chips less fragile for testing purposes.

There might not be a tokenizer.

Change-Id: I356b1e901742f86dca0822720ee0cb7dfb7a31fb
ecipientEditTextView.java
444f2054519c0f5d96d9352ac30e03787a881d80 10-Jan-2012 Mindy Pereira <mindyp@google.com> DO NOT MERGE. Dont sanitize before/ after/ between chips while waiting to create pending chips.

fixes b/5848985 if you try to add a new recipient before other chips have resolved, the existing recipients get erased
Change-Id: Ic1bdb5f6632158e19d38c35ffc527dabbf55dd36
ecipientEditTextView.java
3c42baf5b81810bce77e776963f20c960865e85b 10-Jan-2012 Mindy Pereira <mindyp@google.com> Dont sanitize before/ after/ between chips while waiting to create pending chips.

fixes b/5848985 if you try to add a new recipient before other chips have resolved, the existing recipients get erased
Change-Id: Ic1bdb5f6632158e19d38c35ffc527dabbf55dd36
ecipientEditTextView.java
5da0234c9a7108d3386039816c7469753b79c307 16-Dec-2011 Mindy Pereira <mindyp@google.com> Make attributes related to chip backgrounds styleable.

Change-Id: I8d4f944e91e12f2a0779ac863c1862110dffb832
ecipientEditTextView.java
22faaa6f1eacb6ae69e4fd5d97aeeefc77973cd1 16-Dec-2011 Mindy Pereira <mindyp@google.com> Add styleable attributes to chips. This first one is a test.

We will need this in order to be able to support both dark and
light themes for chips fields. If nothing is specified, just falls
back to the default background.

Change-Id: Ibc0e5391969bfee1615b14bafe83f065d81c6331
ecipientEditTextView.java
52c441e2c03e0f48572348953b985a4bf989c057 15-Dec-2011 Mindy Pereira <mindyp@google.com> Update build file to allow us to have resources in static libs.

Depends on: Change Ifb4d2300: Support to build static Java library with Android resource

Change-Id: Ie1ac8c93cb3f12a7d4e9afd873a13607ed72b932
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
5c125afa54288595524c85182031421cbad08ac3 13-Dec-2011 Mindy Pereira <mindyp@google.com> If there is no tokenizer, don't bother shrinking.

Unlikely case, but found it while creating a new app.

Change-Id: I15e37791530044c990e3e1d6b36348fe85258df1
ecipientEditTextView.java
f07e8b2db488aa308f0ca2916dd53cbd1b898c6f 07-Dec-2011 Mindy Pereira <mindyp@google.com> Make sure there is a recipient to replace before adding an entry for it.

Its possible if the chip is moved between fields that there was no original
recipient to replace.

Fixes b/5720810 Crash on drag & drop recipient to cc & bcc fields

Change-Id: Ide0a498fb63886a9afc2522649442d6ce62ed98c
ecipientEditTextView.java
dfd7e0774f9a4f47c127b21e5468430374340f66 18-Nov-2011 Andy Huang <ath@google.com> drive-by fixes for compiler warnings

Change-Id: Ibb32bf4f49cc9c48d6d02e664f48f838c7024f91
aseRecipientAdapter.java
e13775cc6e9342e42db0b853cc42dbfda6d1365f 17-Nov-2011 Mindy Pereira <mindyp@google.com> Verify that the start of the delete sequence is before the end.

Fixes b/5541436 java.lang.IndexOutOfBoundsException: replace (23 ... 0) has end before start

Change-Id: Ic39d41d53fe59e4c19fc9b2d4af265791b165986
ecipientEditTextView.java
6337231a660b717cd6f5c40d524f4aabfcc865b0 16-Nov-2011 Mindy Pereira <mindyp@google.com> Make sure we correctly identify an edit vs a commit

Fixes b/5615358 At the end of the recipient's email address, some additional texts (ex. j@gmail.com or just @gmail.com) were randomly added

Change-Id: Ie40012ee91f8a570ce6952364c70237078a2d759
ecipientEditTextView.java
f6519d2aabaac51fd62dc819c109db86748d79e8 02-Nov-2011 Mindy Pereira <mindyp@google.com> If message starts with > 50 chips, dont chipify anything.

Also added test cases for new plain text version when there are too many
recips.
fixes b/5556474 Gmail ANR when replyi-all to a msg with many recipients

Change-Id: I69ba560bf8d8112b81a582aee17a07bf3da1aa65
ecipientEditTextView.java
005b2e29742d7b9f3ecc505a50b11d91bd44c818 01-Nov-2011 Mindy Pereira <mindyp@google.com> Protect against negative offsets when calling replace.

Only seems to happen via the monkey.

Fixes bug:5541885 java.lang.ArrayIndexOutOfBoundsException: length=122; index=-5

Change-Id: Iba684c53982f5363990947d2b5b9d7544c952d85
ecipientEditTextView.java
5cfd6fea275724ce223cb8f4a1821922c8763631 21-Oct-2011 Mindy Pereira <mindyp@google.com> Protect against monkey crash.

Fixes bug:5486900 java.lang.ArrayIndexOutOfBoundsException: length=122; index=-3

Change-Id: I2daa941670276d5d65d8d7f14a4d07789aae3a87
ecipientEditTextView.java
fb6d0f23f56cddd2babea1891bc0fc2b5d6df7c8 17-Oct-2011 Mindy Pereira <mindyp@google.com> Merge "Make sure we shrink available width by the width of the space character."
6ed7ded9deabbc92ed8341cf922673fd4626ba7e 15-Oct-2011 Mindy Pereira <mindyp@google.com> Make sure we shrink available width by the width of the space character.

Change-Id: I2dccaf1252f36bb73769d57b7ba19e72ef4e5f8a
ecipientEditTextView.java
e51c7226dfb6420b0d4c1a7bfdf3217ee4e560a6 12-Oct-2011 Minh Pham <phamm@google.com> Experiment drag and drop for contact chip

- Make RecipientEditTextView start drag mode on long press
- Make RecipientEditTextView handle drag event
- Enable via a public setter

Change-Id: Iccfb099078d7be12bdf473a3ff607ac5267f4256
ecipientEditTextView.java
b4e244af14950aee7d612612d5406981315d3454 14-Oct-2011 Mindy Pereira <mindyp@google.com> Make sure we perform reverse lookup on pasted recips

Change-Id: Iff0d8670962f279e4fa3158a1acc3395f9e9ddc9
ecipientAlternatesAdapter.java
ecipientEditTextView.java
aca23c4de8d85b04e6044c9a8f047c337cf427c9 14-Oct-2011 Mindy Pereira <mindyp@google.com> General cleanup of the chips view.

1) remove extra code
2) make sure we use convenience methods where possible
3) always make sure that we use sorted recipient chips when looking
for the position of a chip
4) test the convenience methods
5) rempove unused code
6) make methods package private that don't have to be public
Change-Id: I586eac795a548456ec29bd384abd2e7611a24a03
ecipientEditTextView.java
20c9d620e79ae28994856541761a951074551518 12-Oct-2011 Mindy Pereira <mindyp@google.com> Update pasting to handle more cases.

Fixes bug:5026774 pasting in email addresses changes

Change-Id: Id16e7470eb10a998fdb5efde06cb4449bb9d49e7
ecipientEditTextView.java
c6f163c2b5a2da5b808c8cbf87c11d891bce9d25 12-Oct-2011 Mindy Pereira <mindyp@google.com> Use settext to instead of clearing.

will cherrypick this to mr0.

Fixes bug:5444923 Gmail crash when replying

Change-Id: Ie43f10959a72ea471122811761ea4446e93aa5a4
ecipientEditTextView.java
0976480e45e729069e47994cd6786246467c45e2 05-Oct-2011 Mindy Pereira <mindyp@google.com> Avoid unnecessary clearing of text.

Clearing the text sent an extra text changed event that enabled auto
saving when it wasn't necessary. Clearing the spans and replacing the text
works just as well.
Second part of fix for bug:5420705 Gmail saves empty draft when triggered from Contacts

Change-Id: Icdca5be1ca0cdfd8cbf926baacec54e757480d89
ecipientEditTextView.java
2d7709d276c03e536d37961076107af9f98522f5 05-Oct-2011 Mindy Pereira <mindyp@google.com> Fix case where we may have an empty string.

Fixes b/5416986 RTE found in Android Problem Reports

Change-Id: I498bdff301ea3b3aa61e90e4d5c370abde4d1e43
ecipientEditTextView.java
172a6b1359c8234bf5322ab47b2f2f3c5d064042 03-Oct-2011 Mindy Pereira <mindyp@google.com> Merge "Protect against negative offsets for a chip."
5d6c1580fdb2babd04d55d7a40fae658d61cf100 03-Oct-2011 Mindy Pereira <mindyp@google.com> Merge "Close selected chip on rotation."
ee6d83fe1da297b2f9af0fb221be376fdc816830 03-Oct-2011 Mindy Pereira <mindyp@google.com> Protect against negative offsets for a chip.

Fixes b/5397113 java.lang.ArrayIndexOutOfBoundsException: length=506; index=-2

Change-Id: Ib0e4cd18016701f45a5abcb9cf95431f478f07d8
ecipientEditTextView.java
daa640c82bfa8b1f81d986d7109029d2fdec263d 03-Oct-2011 Mindy Pereira <mindyp@google.com> Close selected chip on rotation.

Fixes bug:5387848 Email selection box is wrongly pointed after changing orientation

Change-Id: I16b781455de842e10197f15d13ab1be1d334264e
ecipientEditTextView.java
62397a5ac6b2df89ec4c2f8f23680add5850c17a 03-Oct-2011 Mindy Pereira <mindyp@google.com> Revert "Make the space part of the replacement image span."

This reverts commit a1d52e9203ea3cdfc0d1c69a8a4f99445fdd5ca1
Also reverts later change:
https://android-git.corp.google.com/g/#/c/138160/3
That was made to remove code that took into account having a space not
covered by the span character.
Fixes tests cases to respect the space character again.
Change-Id: I96d52a5df4d01e757f72949cbcf3b1f582679a46
ecipientChip.java
ecipientEditTextView.java
97cb25912dab282cf732757f68b0405ed005f00b 27-Sep-2011 Mindy Pereira <mindyp@google.com> Add more tests.

Tests verifying where a chip is position, removing a chip,
and creating a chip.

Change-Id: I2e9c6719a6efc365ab73c4d3c32bb29209b73e48
ecipientEditTextView.java
db1ca655cdbd92286b2f7dc942f504a50c491100 26-Sep-2011 Mindy Pereira <mindyp@google.com> Remeasure chips created from saved instance state after we have the field width.

Fixes bug:5367531 Recipient with very long name duplicated while composing a mail on changing orientation

Change-Id: Id14d74d028aa203dfb061b32438eccc5abb949a0
ecipientEditTextView.java
dfeb97f6b18cdeff9872f8d32cd7a33baa1f8825 23-Sep-2011 Mindy Pereira <mindyp@google.com> Make the space part of the replacement image span.

This eliminates the need for manually adding extra spaces at the end.
This also fixes bug:5323325 Chips sometimes have no spacing between them on deleting
since now the space is ALWAYS deleted when the chip is deleted.

Change-Id: I8923940a070bcc1ce6894af3efa1449e98aa4830
ecipientChip.java
ecipientEditTextView.java
448e90b97a4df8102d6e1d2039274d9ea188dff9 22-Sep-2011 Mindy Pereira <mindyp@google.com> Fix reported crash.

Make sure we dont look for a char when there is nothing.

Change-Id: I70536ac57541ad9b7c0ae824c4b61dc0a57febac
ecipientEditTextView.java
d71925073f008dccd8c4b65d5d66534e6451e64d 22-Sep-2011 Mindy Pereira <mindyp@google.com> Protect against focus lost before drawing/uesrs already tokenized.

Fixes bug:5339625 odd behavior on orientation change in the "to field"

Also, added more test cases around adding/ removing more chip.
Change-Id: I1b24526b5be82835b5ec7c0345b7d73a31169a8f
ecipientEditTextView.java
a44b066ff33f2809cdfaad476b2c9f0abb145970 21-Sep-2011 Mindy Pereira <mindyp@google.com> Merge "More tests for sanitizing text between chips."
8eb031e6de46e477412d92ab0c5ef20b431f1804 21-Sep-2011 Mindy Pereira <mindyp@google.com> More tests for sanitizing text between chips.

This specifically tests sanitizing content that is before
a chip when there is only 1 chip around.
Also, makes sure we don't look for a chip that isn't
attached (startLooking or end < 0)
Change-Id: I2591f29490a53c23527bbee487f1446b18c3f161
ecipientEditTextView.java
884ebef929a45d2858a1e3fde7bd0ea8d5e5c480 21-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Remove the code remiving non-existing divider"
01162ce6739af1c9d9870f8e7e489f805c7e6794 20-Sep-2011 Mindy Pereira <mindyp@google.com> Add test cases for creating display tex and sanitzing spans.

Also, fixed a case we didn't catch where if the span start
was -1, we would crash.
Change-Id: Ia7d70dee117632ef2064c1f592fdc09694014846
ecipientEditTextView.java
606e3b1fa6e758c1cff2f6542b3860e8ef3bc8a7 20-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Remove the code remiving non-existing divider

Previously we had a horizontal divider to divide each entry, while
we don't have them anymore. The code removing the last horizontal
divider now removes the last legitimate element in the list.

Bug: 5343615
Change-Id: Ia30e05f8830323a6e4d62b54e7121b439bb57beb
aseRecipientAdapter.java
399bda87ad1a4d003609d6d27afc50c8359846b9 20-Sep-2011 Mindy Pereira <mindyp@google.com> Fix crash in calendar.

Protect against walking off the end.
Fixes bug:5347150 Calendar crash on selecting guest suggestion after changing device orientation (java.lang.IndexOutOfBoundsException: charAt: 52 >= length 52) in IRK82

Change-Id: I6216a770175adac34416dfabda202ac9846c95ac
ecipientEditTextView.java
ee48f7311ec169af7ed134cf5c9c5e16b243cf05 20-Sep-2011 Mindy Pereira <mindyp@google.com> Fix monkey crash related to empty recips array/ bad tokenization.

Fixes bug:5343254 java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1 at com.android.ex.chips.RecipientEditTextView.removeMoreChip(RecipientEditTextView.java:1408)
Fixes bug:5345831 ArrayIndexOutOfBoundsException in RecipientEditTextView.createDisplayText
Change-Id: Ie487c23dc54449d53f68d73c33e18cb946ec4284
ecipientEditTextView.java
0f96c97e283f2c10c2a9d25bddd6b24b88217142 20-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Disable logging."
6b616f1d06b092825da345078ce4a899b829290d 20-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Disable logging.

Change-Id: I5c5c2bc169a6f9d9c77fd57d8b91dd3282432141
aseRecipientAdapter.java
5df0aa8368be2733caee5d57f5b20357b0f5d99d 20-Sep-2011 Mindy Pereira <mindyp@google.com> Sanitize content after committing a new chip.

Fixes bug:5332719 check special characters in the chips implementation

- User goes to To field
- types , or ;
- adds another chip
Remove , or ; in between

Similarly
- User adds a chip using the return key
- Explicitly adds a , or ;
- Adds another chip
Remove the , or ; in between

-User add , or ; and moves to another field using return
- Keep the , or ;
When the user adds a new chip sanitize and remove them

Change-Id: I00b28f913230b7a60399e27a327a2152dd29e631
ecipientEditTextView.java
d8c15c328eaa109946f8f9093f3c2f2773d525dd 20-Sep-2011 Mindy Pereira <mindyp@google.com> Catch a couple of interesting/ odd cases for creating display text.

1) User Name <User Name <username@username.com>>
2) User Name,Jr <user@username.com>

Change-Id: Ic148def8d3dd630af3fc5765958d59a682e1accd
ecipientEditTextView.java
1a0dc01cae7efa9f682a88ae005698d237919d0e 19-Sep-2011 Mindy Pereira <mindyp@google.com> Merge "Make chips keep the user friendly information around."
3ea9955a3c06d241bc6e4ab659ec3a1d069fd6df 19-Sep-2011 Mindy Pereira <mindyp@google.com> Make chips keep the user friendly information around.

Fixes bug:5339963 chips not maintaining user friendly labels

Change-Id: Ie6e29887882081f56e40ff4845363d6538c814d4
ecipientEditTextView.java
dc04cd76d8992ad3df98dce9be5c5b6540ab3619 17-Sep-2011 Mindy Pereira <mindyp@google.com> Make sure we get the correct more chip on orientation changes.

Fixes bug:5334556 Turning device orientation to landscape is deleting recipient from compose mail.

Change-Id: I5b96c7288ef84bc9585d8a553106bdc044c55b61
ecipientEditTextView.java
dbb8560594f297da570a4dc2c800eefe0faa6c16 16-Sep-2011 Mindy Pereira <mindyp@google.com> Handle special characters correctly.

Part of fix for bug:5332719 check special characters in the chips implementation

Change-Id: If525159ea03064805d01a4a793234a530a4155a7
ecipientEditTextView.java
fe52b97e748ec0b9bd44b759780ed42b9dcee7ff 16-Sep-2011 Mindy Pereira <mindyp@google.com> Don't allow ppl to accidentally create empty chips

Fixes bug:5318460 com.google.android.gm: java.lang.IndexOutOfBoundsException: setSpan (33 ... 31) has end before start at android.text.SpannableStringInternal.checkRange(SpannableStringInternal.java:341)
As a user reproduced it
not sure if it fixes the monkey crash, but probably does

Change-Id: Ibed7e4f806f9f290c39d1c4834d8d67a8ccd179f
ecipientEditTextView.java
f177bdab5724635aed964de889febe96ecab6bc0 15-Sep-2011 Mindy Pereira <mindyp@google.com> Check for null chip text before committing chip.

Fixes bug:5324605 java.lang.NullPointerException at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:420)

Change-Id: Iabe38276c4a7f8e206745ad4944a783462e067f7
ecipientEditTextView.java
ed4fd2cad98adec568a14007d995ae5f89e1a6d1 15-Sep-2011 Mindy Pereira <mindyp@google.com> Use the official sdk version for checking compatibility.

At some point we want to update the makefile as well.
Change-Id: I6a06a76c8c621157901a5aad8af8565da2af7dda
hipsUtil.java
c0a34aba4889151d822dd1ac0ae8b722cf5edebb 14-Sep-2011 Mindy Pereira <mindyp@google.com> Handle the case where a user is editing an invalid contact chip correctly.

We now treat an invalid contact chip (ie just text the user is editing
that was a chip) as being a selected chip. Make sure we handle the
edit cases for this correctly.

Fixes bug:5288176 Email address not distinguished in Email application

Change-Id: Ia9d3803f22d6d2f92cf280fc65b9d95b1a21c713
ecipientEditTextView.java
a49e7fa477692ba2f6208a1a3e80e75e67e65a60 13-Sep-2011 Mindy Pereira <mindyp@google.com> Protect against editing a chip that is no longer spanning text in the field.

Result of a moneky crash. No idea how a person could repro this, but the
protection step is easy.

Fixes bug:5278667 com.google.android.calendar: java.lang.ArrayIndexOutOfBoundsException: length=2; index=-1 at android.text.MeasuredText.setPara(MeasuredText.java:113)

Change-Id: I3bf35b94dfd474d5d6604799b848b5817f747a4c
ecipientEditTextView.java
0265967fb4b870fc02b3b5690a7ac9681542c346 12-Sep-2011 Mindy Pereira <mindyp@google.com> Make photo and delete icons fit within the chip background.

Fixes bug:5289589 Chip thumbnail image should not extend outside the chip

Change-Id: I8191c52a531b47e45073a9a08b879051ec10af37
ecipientEditTextView.java
ecee50cc64d17d3cf7553a492dbf22f99f08aa56 10-Sep-2011 Mindy Pereira <mindyp@google.com> Dont allow this to scroll when a chip gets selected.

The way we accomplish this is by setting the field to disabled
when a chip is selected so the IME does not pop up and change
the position of the field.

Fixes bug:5277127 No way to remove a recipient from a long list of recipients using chip UI

Change-Id: Id0783ddb159c98daeb1738d10a0660dd03819649
ecipientEditTextView.java
54effe95bd2f988e5d7472f17f4fafdc29fe616e 09-Sep-2011 Mindy Pereira <mindyp@google.com> Update logic to look for the correct token if there are multiple entries.

This was mistaken for a bug with paste but the actual issue is:
1) enter a recipient
2) enter a few more other recipients
3) enter recipient from step 1 again
4) remove focus to create "more chip"
5) focus: we were not getting the correct recipient position from step
4; we were getting the first instance which was the chip from step 1

Fixes bug:5267557 duplicating an address causes odd behavior

Change-Id: I3fdc27c22820056f5470832e1ed634768283703f
ecipientEditTextView.java
2e905906f83fb1285498f09fce4db4a5878efbcc 09-Sep-2011 Mindy Pereira <mindyp@google.com> Fix excess copy dialogs showing up.

Make sure we send through all events so that long press gets cancelled
by a move (that will scroll)

Fixes bug:5277603 Scrolling a long recipient list falsely triggers copy-paste dialog

Change-Id: I65c1bd6bf0d2055cbfc1758be13d21c5bd16f98a
ecipientEditTextView.java
60148c51f518aec3e01f471c1e2eb28bea4e4112 08-Sep-2011 Mindy Pereira <mindyp@google.com> Mke sure we commit chips that are being edited

The isse was that text editing of a chip now holds the chip
in the selected chip field. This makes sure that we commit any chip
that has an invalid id before continuing.

Fixes bug:5277118 Chip layout is weird if there are "+x more" text and a recipient not in your contact list

Change-Id: I7480a3677e1fa1d17e365c3057dd74ae46ede858
ecipientEditTextView.java
452b7f15454a39084b387d1395a2890018814dac 08-Sep-2011 Mindy Pereira <mindyp@google.com> Merge "Clear the checked position and reset it always."
98b547f2eeb80259036e3f528636d7cbd823bf6d 08-Sep-2011 Mindy Pereira <mindyp@google.com> Clear the checked position and reset it always.

I beleive this fixes the issues reported internally this morning, as
previously the checked position ws being incorrectly cached.

fixes bug:5274898 trouble picking the right email addresses for people in gmail

Change-Id: I442a9a3c1b147de41a48bb8b3e72492083bf1f03
ecipientEditTextView.java
bfedc1e199e57dcda494389fdca0750e1f165135 07-Sep-2011 Mindy Pereira <mindyp@google.com> Create dialog at the beginning so we have a "safe" context.

I believe this fixes bug:5268040 com.google.android.gm: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@412b42e8 is not valid; is your activity running? at android.view.ViewRootImpl.setView(ViewRootImpl.java:494)

Change-Id: I94e7be1d18d2df955f49eefe2d57b608e907b3ac
ecipientEditTextView.java
f908b64e75e0bb38ff2806232ca57c93189156ea 29-Aug-2011 Mindy Pereira <mindyp@google.com> Dont show copy dialog when the user is editing a contact. Fix crash.

Fixes bug:5210400 Email address only chips sometimes display "Copy email adress" even on tap
Also fixed crash in the alternates adapter where it was still looking for a dest type.

Change-Id: I97b68c3f3e45f3d654551953ac4356ff76dfba26
ecipientAlternatesAdapter.java
ecipientEditTextView.java
951d0cf2f0f05bd63f1f60155efe25447c816995 26-Aug-2011 Paul Westbrook <pwestbro@google.com> Remove label from chips

Bug: 5220741
Change-Id: If1c9423c253301209e7ca9af8c898891f6a8b98b
aseRecipientAdapter.java
1d37d9775446acd8e4e6bb0637565e88b5360096 17-Aug-2011 Mindy Pereira <mindyp@google.com> Center text in chip; fix dropdown item spacing

Part of bug:5162602 Alignment of elements in compose screen seems off (master/tot/prime)
Change-Id: I6ed2063c164ff7dbe3aa7b030a500176b16eb301
ecipientChip.java
ecipientEditTextView.java
d5d86aafdbb1487ade3ecf70b92c00d20b94f9c8 17-Aug-2011 Mindy Pereira <mindyp@google.com> Fix focus issues for chips fields.

Since its the validation part we don't want, just override that part.
Let the calls that handle focus go through as planned otherwise.

fixes b/5177339 Compose screen broken in Gmail

Change-Id: If00069e975449bc338ad52356c44124664f1b909
ecipientEditTextView.java
e1bfc9218326c02ff51985dcb22ee9b0ae385807 16-Aug-2011 Mindy Pereira <mindyp@google.com> Fix bugs with shrinking/expanding chips field.

fixes Bug:5161746 Address chips lose chippiness after expanding/collapsing the textview
Also, fixup change from @debunne: the field is textMultiline
Change-Id: I379fe6a4833a9f08cad9168f22178ebd3492ac6e
ecipientChip.java
ecipientEditTextView.java
61b48ccefc655549802556947eb8cf3959c6ddad 16-Aug-2011 Gilles Debunne <debunne@google.com> Suggestions disabled using input type text flag.

Change-Id: I8e5b25425bc463dac7a423af4daf479c23328892
ecipientEditTextView.java
567ef28b55e35104060a3f3e7413b63e4590c73b 10-Aug-2011 Mindy Pereira <mindyp@google.com> Deprecate old setChipDimensions.

Unused.

Change-Id: I1ee69bfb316a8d2fe527d8c07ad956ec19da7bca
ecipientEditTextView.java
1d1ec857e5d050163cb87936e233b5f9cf321344 10-Aug-2011 Mindy Pereira <mindyp@google.com> Add ability to copy a single recipient chip.

Fixes b/5143564 implement single chip copy

Change-Id: I598a53a60ba29b99637b2d1633b3884811938317
ecipientEditTextView.java
401cd96a036a3752b81698c21d1bd5dce16657e4 09-Aug-2011 Mindy Pereira <mindyp@google.com> Always tokenize the address if possible before creating a chip.

Change-Id: I0bf39bb0c0f49a674731a7f1a7b518a4913f6a51
ecipientEditTextView.java
ee58f4904fe6d992ad4631604b595ba47d08ca6b 08-Aug-2011 Mindy Pereira <mindyp@google.com> Make sure that email addresses are editable when tapped when there is no associated display name.

fixes Bug:5135630 email chip issue

Change-Id: I9fccc192bfa4e97cbae9dbb527090b1e437264e8
ecipientEditTextView.java
076d1f93a2613611f9f3aca8c8615ffea9b3e11c 08-Aug-2011 Mindy Pereira <mindyp@google.com> Create way to allow applications to still show all recips when focus is lost.

Fixes Bug:5123976 RecipientEditTextView has no way to turn off the 'X more' collapsing of names

Change-Id: I5c7f5fca9a6bf278cb2e043ea796f9d2646d6087
ecipientEditTextView.java
184d3773dc096c7a6a83f7aeda042fa8346c2024 05-Aug-2011 Erik <epastern@google.com> b/5122753 Make Rfc822Validator a bit smarter

Change-Id: Iffea9735b906466077ce03a97ab49b614917dbf3
ecipientEditTextView.java
883c49973f4ea92a26cb6f40814d31f3bd389a89 05-Aug-2011 Mindy Pereira <mindyp@google.com> Make sure we clear our local text watcher variable when removing text watcher.

Fixes Bug:5124057 RecipientEditTextView stops chipifying things when you switch between enabled and not enabled

Change-Id: I7c2708033d5574621ab95065077a3ff39595cd5b
ecipientEditTextView.java
aa2afffe7aba707c2406f2e4503fa6037c4cd196 05-Aug-2011 Andy Stadler <stadler@google.com> Fix eclipse error and a couple of warnings.

Change-Id: I25f13e7a5113078a5f8fe4e33eabd0603277a1b4
ecipientEditTextView.java
ingleAddressAdapter.java
ingleRecipientArrayAdapter.java
34f5320d620877f757ed78a6e37754bbeabee5aa 02-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Use AsyncTask for photo loading

Using a static thread isn't appropriate, since it won't quit
itself and thus will be persistent even after it becomes
unnecessary.

Bug: 5057798
Change-Id: Ibca2b59c18a326d1c3fd724817bc602583f37842
aseRecipientAdapter.java
ba5642a5729d9d1483702d42ae4a21d8cbfaa804 28-Jul-2011 Mindy Pereira <mindyp@google.com> Protect againt emtpy strings/ null tokens.

fixes b/5090742 java.lang.ArrayIndexOutOfBoundsException: length=0; index=0

Change-Id: I23fdbe6ebbd94e3ce0f7ac19b52ac02ae755fb01
ecipientEditTextView.java
e90bfad1a7cc118e721b723aba48e71b952e5c6e 26-Jul-2011 Mindy Pereira <mindyp@google.com> Protect against empty display or address.

Fixes bug: 5080535 NPE observed in Email when entered invalid email address

Change-Id: If7517dd5283c2215eff5ff88b89b4d314c2d079b
ecipientEditTextView.java
4e18d8b62dc38558c8911470ef830b638a26cf00 25-Jul-2011 Mindy Pereira <mindyp@google.com> Update chips to match new spec for validation.

Fixes bug:5051766 autocomplete a recipient with the sender's domain
Spec is defined in the bug notes.

Also fixes 2 small issues:
1) when not appending text, we werent adding the text watcher.
Adds it automatically now and just removes it as necessary.
2) the cursor was not apeparing when editing a recipient
Change-Id: I6bebc418fccf4ef52a3913cb83bdc3bacc5000d3
ecipientEditTextView.java
750e6e52d9e560d5fbf687f15bf388a947e98eb2 25-Jul-2011 Mindy Pereira <mindyp@google.com> Make more chip, dropdown match pixel perfects.

1) the destination type should be uppercase; there is not
textview style to do this
2) fix the heights of the dropdown items to be 48dip
3) text for more says "NUMBER more..." and is styled

Change-Id: I8a391bbd3703c1ccd1415b78d5e843107b1d2095
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
536b7e41b106e167f8058b6a5d8d14c1d53d69c5 25-Jul-2011 Mindy Pereira <mindyp@google.com> Remove deprecated separators.

Change-Id: I734eec28ba5d51afb17ac5150e156ed9e87de4ac
aseRecipientAdapter.java
492649c192b7d0fd440c0bff5bd666e7ee6bbeb5 25-Jul-2011 Mindy Pereira <mindyp@google.com> These extra separators are not needed given the design.

In this pass, making the associated methods non abstract.
will remove them from the apps, then remove the deprecated methods.
Change-Id: I3f9908e5807253294630c17e52ae6562abd0ddc3
aseRecipientAdapter.java
ecipientEntry.java
51158a0c14428570ee5a2e426c60115395cd8c94 25-Jul-2011 Mindy Pereira <mindyp@google.com> Fix the dropdown binding for single alternates adapter.

Was incorrectly placing display in text1, dest in text2
Fixes bug:5073911 chips: single dropdown is displaying things in the wrong place

Change-Id: I1a13aa9b6ea3df838266d8082df8ee03bb21c00f
ingleAddressAdapter.java
32366d47357b32ddd62efc03e50fc10819acd866 24-Jul-2011 Mindy Pereira <mindyp@google.com> When the application clears the text, make sure we clear all the chips.

Fixes Bug:5051774 chips: odd behavior on rotate with some addresses
Gmail was keeping the same recipientedittextfields around, clearing them
by calling setText("") and then re-appending text
However, the old chips were STILL there, just applied to the empty string
This also makes sure we dont put 2 chips in 1 location

Change-Id: I76245a648e71a05018077fcc59f5dfa284d93490
ecipientEditTextView.java
cc20880f80a3a6f6e4aaef4547ed088d9364e741 22-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Stop spawning multiple threads for photo loading

This is not a fundemental fix for the issue but should mitigate
our headache caused by a bunch of phono_handler threads.

Bug: 5057798
Change-Id: I5f81739bf8439f6d3ee726495b23aab4d3e3d0fd
aseRecipientAdapter.java
102cf10189b2c13045b885a5479333ae3b304491 21-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> show type correctly in alternate listing

Change-Id: I8ca30df876a33d7dde544f1f2a9f59af51cae6d0
ecipientAlternatesAdapter.java
7211747e51623ae1305053f533c09dd335e013a2 20-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Show address type in auto-complete list

Also tweak layout file for better layouting.

Bug: 5028342
Change-Id: Iff81ed0c3013c65e6a293575f89c12606832838f
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEntry.java
8005f42b51fdca5382ce3fd0b083e40900191da6 20-Jul-2011 Mindy Pereira <mindyp@google.com> Fix case where pending chips called before the widget has size.

If there was no size for the widget, we could not determine how
much text to display, so this wasd showing nothing.
Change-Id: I35bc7373fa2a7a4cfd68cfaf68517a0d1381bac6
ecipientEditTextView.java
2cac23112a97802d460bffe41fa80a939bf730a5 20-Jul-2011 Mindy Pereira <mindyp@google.com> Instead of waiting for size changes, always post a runnable when recips appended.

Fixes Bug: 5039293 reply / reply all switching behaves inconsistently

Change-Id: I3a169df3520eac3d88135d65cf491e843894f286
ecipientEditTextView.java
01382d764d2cbfbb4d2c1b554fe5c1ce1575dd26 16-Jul-2011 Mindy Pereira <mindyp@google.com> fix appended recipients that have an associated name

Fixes Bug:5037859 Populating a To: field from a mailto: link always shows an empty chip
The issue here was I was just pulling out the address and
leaving that in the field
Now I pull out the address for display purposes only, and leave the address
and any associated display info with it
NOTE: if the info before the address was invalid, it will stay invalid, as before
Fixes Bug: 5043134 chips: name and rfc email address
Change-Id: I6b0d0de56dd9752b189919554617b101792425ef
ecipientEditTextView.java
ecipientEntry.java
ingleAddressAdapter.java
6d6bd68a492fbbfca50ae4793313083105e6f270 17-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Make divider and loading views unselectable

Bug: 5036748
Change-Id: I397d6a62e577c22ccad9a750ae6a0edb2168ad8b
aseRecipientAdapter.java
ecipientEntry.java
f7eaa5fc06e3dd57457f7bf0169374a4c9a1e413 15-Jul-2011 Erik <epastern@google.com> b/5021471 Don't try to chipify null entries

Change-Id: I6f89fcdb5373df4fba48681ad6e7bd260dad0f8d
ecipientEditTextView.java
8383f44fc5608259474a24e398b2ee028f729db8 05-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Remove cursor passing.

We've used Cursor objects among two threads (UX thread and
filter thread), which is possible but not feasible enough.

- Filter removes message for the filter thread before sending
another message to UX thread, which it looks causing
a lot of warnings.
- A cursor consumes mega bytes of memory, while we want to
have are just ~10 results in it.

Also remove Phone related codes. We found we won't use it
now.

Bug: 5017608
Change-Id: Ic50d27c5ed84a23dfabaf705996630b6548a06cf
aseRecipientAdapter.java
82d3117d8ef74f5f4fbcd7aaf4f445ce6f8f5b2b 13-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Stop warm-up query.

We should introduce similar mechanism, but right now not.

Bug: 5009038
Bug: 5012014
Change-Id: I883f312fdcef1ef209fb6e620a74d90aa23241a0
ecipientEditTextView.java
4c74871e207ea9f9d86c0e4be592e35531fc35da 13-Jul-2011 Mindy Pereira <mindyp@google.com> Handle case where the contact name is null.

When the contact name is null, set the contact name to the destination.
Fixes Bug: 5022659 NPE during auto-complete; appears to be chips related

Change-Id: If081be06ed4babb7484eec7d10fdedf713a4f240
ecipientEditTextView.java
e81f8a3d2c9bc916a72b3bf42f56c3ef8fb547f3 13-Jul-2011 Mindy Pereira <mindyp@google.com> Make sure we always check that we have committed all chips on shrink.

Fixes Bug:5010791 ICS email: addressee details lost when retrieving a saved draft on IMAP

Change-Id: I0ee06a983c5ec8814681890c20778cefeffecb2b
ecipientEditTextView.java
f9bde2393f3b9fa474ed7f57486bd87e832bff62 12-Jul-2011 Mindy Pereira <mindyp@google.com> Merge "Enable pasting of text into the recipient edit text field."
a74f40dc1073117349d1d39b7c8396a39d24f57f 12-Jul-2011 Mindy Pereira <mindyp@google.com> Enable pasting of text into the recipient edit text field.

The issue was that we were hiding the cursor whenever the field was touched
and it should have just been when the field was touched AND a chip was selected.

fixes Bug:5016914 ICS email: cannot paste text into "to:" field in portrait mode compose message

Also fix the case where there is content and the user changes focus.
This had not been committing as committing chips depended on having focus.
Change-Id: I43fae67a399ae7df4862861144ed42b608718a2c
ecipientEditTextView.java
4bb6a342f5aa1f38b0e0083d014e538e937eccce 11-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Show "Waiting for more contacts" message on directory load

Requires
- I458c4b068d91feb16fe12c3b813f9704668663d2
- I5f83103628c14dd5079515c46c42a6f43d4f194c
- I858c66faa6d5bcb3248da6be6a40f47ab0f00a4d

Bug: 4996797
Change-Id: Iad5b8444f4b1949666d93ad43a34de057aba560e
aseRecipientAdapter.java
ecipientEntry.java
c0176d633396adcd2154863e8b119169892066e9 11-Jul-2011 Mindy Pereira <mindyp@google.com> Merge "Print debug info for reverse lookup."
18987c44006700a2bfe614ec1e39a29ed5b23d78 11-Jul-2011 Mindy Pereira <mindyp@google.com> Print debug info for reverse lookup.

Change-Id: I8102bbe4d63e0c87e0603966b58d5773b20b4302
ecipientAlternatesAdapter.java
0d8b77a804fa34cd6fadc632067d562a69b7026a 08-Jul-2011 Mindy Pereira <mindyp@google.com> Never set a span if we dont have matching text.

Fixes b/5004459 java.lang.IndexOutOfBoundsException: setSpan (-1 ... 3) starts before 0

Change-Id: Icc60924cfab8393ff3da2116e8a5eb6130aa8261
ecipientEditTextView.java
7ebb40ff05dbf28edd9bbed4eba7e57c8c6005ae 07-Jul-2011 Mindy Pereira <mindyp@google.com> Make sure we leave a space when processing appended recipients.

Also, the bug I was working around for aligning the alternates dropdown
doesnt appear after this fix, so removed the workaround.
Change-Id: I680e39bd9d1a43d559225d4665876a82d6ced7ce
ecipientEditTextView.java
04da325c2112c4ef192276f1d7701cbef6635d1b 07-Jul-2011 Mindy Pereira <mindyp@google.com> Fix extra spaces that had been getting added when the user selectd/unselected a chip.

This also prevents us from having to make an extra string and replace it
as all we were REALLY doing was replacng the span.
Also fixes the issue where we were leaving an extra space after deleting
a chip by pressing the X. This was an off by 1 error.
Change-Id: I9d2dbe4647119a64857766ee9b45207c6d365497
ecipientChip.java
ecipientEditTextView.java
81fd3d1ed9ea08706e297a227fcab10eac2cf0e3 06-Jul-2011 Mindy Pereira <mindyp@google.com> Scroll before showing the alternates list.

This allows us to have the alternates list properly positioned
AND prevents the dialog from appearing ABOVE the contact.

Change-Id: I78fd1d6ef6b08a1274e7299439b8679f43d1ba86
ecipientEditTextView.java
1852931de1e24e77cb708f4ba010eaa269426657 28-Jun-2011 Mindy Pereira <mindyp@google.com> Do reverse lookups on pre-appended recipient chips.

Change-Id: I338a07f89264606a58942520791f39908fedbedb
ecipientAlternatesAdapter.java
ecipientEditTextView.java
3bb52162b7e842243d4a14e73c15b20dbd1804d7 01-Jul-2011 Mindy Pereira <mindyp@google.com> Always show the more chip for a collapsed recipient view if there are too many recipients.

Previously, this would not get shrunk until the user focused/ unfocusd
the field. Now, if the field doesn't have focus, it starts out
in the shrunk mode.
Also, when appending a contact, properly tokenizes the contact
so that we show just the email address.
Change-Id: I085ed00dc94b38d22e871d7e80589e5b2d74f98f
ecipientAlternatesAdapter.java
ecipientEditTextView.java
c1fed8b74327fccbab18458aef2d1bb0a6996e9c 01-Jul-2011 Mindy Pereira <mindyp@google.com> Fix the offset of the popup window.

If I use the view as the anchor and the vertical offset, then
the popup appears correctly even after a scroll.
I believe this will also take care of the cases where the popup
had been appearing above chips, as the view will be scrolled
to fit the popup if possible.

Fixes Bug:4723677 chips: sometimes popup appears ABOVE the chips field
Change-Id: I976be8e4e06ff44a093f8a93c65a63d433b1e774
ecipientEditTextView.java
2bc578406c81a6be7fae3b1216b8b175fd7446e1 28-Jun-2011 Mindy Pereira <mindyp@google.com> Move contact picture to the right of the chip where the delete icon shows.

Change-Id: I0d74965c98f96384a7c0b01d4a9a05b34524301e
ecipientEditTextView.java
11a2adb53f764ffcadd262678ff782e6b4992dec 28-Jun-2011 Mindy Pereira <mindyp@google.com> If the selection happens to be at zero, dont look for the char before.

Fixes Bug:4969660 java.lang.IndexOutOfBoundsException: charAt: -1 < 0

Change-Id: Ie307b3088be32e2cf9afdfdcf1c0106046dbc805
ecipientEditTextView.java
749acf9bcf637bfe193b10f917888cb463dda9a5 25-Jun-2011 Mindy Pereira <mindyp@google.com> make sure there is a position after the comma before moving to it.

Fixes Bug:4948080 ANR when tried to attach a picture in Gmail Compose

Change-Id: Idf13eec6bf36cba14fae2c633de98049b04c3f8f
ecipientEditTextView.java
67bd322c84076cedff15fcb119185842babea68f 24-Jun-2011 Mindy Pereira <mindyp@google.com> If the user chooses a contact with an invalid address, make this an editable address chip.

Per new spec:
Don't display alternates, always treat as an invalid email to enable editing.
When the user is in edit mode then can back up which displays suggestions again

Change-Id: Ie59101940eaf8f306d482c3ae8a5c04d5aa69560
ecipientEditTextView.java
ab5a9644d4ab95fe753a07b2bdf4202d78fa8af7 24-Jun-2011 Mindy Pereira <mindyp@google.com> If the user put a commit char in the middle of text, make a chip up to the commit char.

Ex:
1234567
I insert a comma between 3 and 4
123 becomes a chip
4567 remains as text and the cursor goes to the end of it
Change-Id: Ibd4f54b26fb4ae6c6f267232c03f76e0850e4d7e
ecipientEditTextView.java
f97eb41a7946f2c3013ac74f2451b78070531125 24-Jun-2011 Mindy Pereira <mindyp@google.com> When recipients are appended, take them as is without ANY parsing of tokens.

Change-Id: I7ecc16cc032e7a6f4809ba1a323f7e445b8f74fd
ecipientEditTextView.java
21cc0a2d9ce5c6ac5f90f51a59ccafacdb4cf7a5 24-Jun-2011 Mindy Pereira <mindyp@google.com> Make sure we dont use textwatchers or commit chips incorrectly.

1) Never use textwatchers when there are any pending chips. These
may be because there are recipients that were hidden when the more
chip was shown, or because we are parsing appended recipients.
2) turn off item clicks for alternates before we send the dismiss event,
since we dont dismiss immediately and we want to be sure the user cannot
click 2 recipients if the device is running slowly.

Change-Id: I53ae04a0f7c23f4ef7396ea203d8d1bb0a1b6e34
ecipientEditTextView.java
79fb4360e567c5ce9e80142af2807126d3bb67f0 21-Jun-2011 Mindy Pereira <mindyp@google.com> Reenable space handling for chips.

The issue was that I was cutting off spaces too soon when
removing commit chars.
Seperated commit via enter/tab/lost focus
from editing and from enter via a character
Since I can't watch for key events, I have to have a textwatcher
This makes sure the textwatcher is not instantied until AFTEr all
reply/reply all recipients have been parsed and created.
Change-Id: Ib9f2228595a77c96b1e72f38c0269c4ad0c92033
ecipientEditTextView.java
44c07715c6a353db51ed79e68bc99a06eb4acc16 22-Jun-2011 Mindy Pereira <mindyp@google.com> Merge "Clearselectedchip and unselectchip should not call each other."
faa944cfd66fc3ebba9a3a93614e55da4a66e812 21-Jun-2011 Mindy Pereira <mindyp@google.com> Fix the left offset of the alternates popup.

Change-Id: I9029fd370e95cbd7ab7a34f200b87e2b873482e3
ecipientEditTextView.java
e82e61f026fe8edfc12743fb038ddac9af5cf1ef 21-Jun-2011 Mindy Pereira <mindyp@google.com> Clearselectedchip and unselectchip should not call each other.

Fixes Bug:4768416 StackOverflowError when clicking on chips

Change-Id: I8151cee90390df834eef87f60af96da9b910daca
ecipientEditTextView.java
e33555f13a9b05d835cb860e2c30ef40af3c8502 21-Jun-2011 Erik <epastern@google.com> Don't start the filter until we have an adapter

This is to prevent a crash if an adapter isn't set during creation.

Change-Id: I328659889b42f9c02fdde2a1074916f6b4fed354
ecipientEditTextView.java
8b4cab19bd949f4980db92c82757023a4b53557f 21-Jun-2011 Mindy Pereira <mindyp@google.com> Remove space handling for now.

This needs to be run only on NEWLY added recipients, notappended ones.

Change-Id: I2754528ae660928d75b6a1e097976a151995944d
ecipientEditTextView.java
2b4ffc53a3b51631cb6aabf535986a9344ee6cbb 20-Jun-2011 Mindy Pereira <mindyp@google.com> Follow defined logic for committing when the user presses space.

If valid email address commit the chip
Fixes Bug:4725531 chips: implement logic to handle space key

Also simplifies the logic for editing in the middle of a chip
(we don't need the submitText flag)

Change-Id: Id4af8d5840f75bf7bb4066e481761a885536dd20
ecipientEditTextView.java
7afe160db4a48f66c964ced89e29e0b63b23c7c1 20-Jun-2011 Mindy Pereira <mindyp@google.com> Force services to be launched as soon as possible when chips are instantiated.

This will redue the pause before seeing result from the first query.
Bug:4691146 butter - warm up contacts autocomplete before user types on compose activity
Change-Id: I6f07284f44824dfe6f25fec27cdd300d9adf7da1
ecipientEditTextView.java
95a692517516f6cdcd77dd13582e679dd59fcef7 18-Jun-2011 Mindy Pereira <mindyp@google.com> Fix rotation crash.

On orientation changed or activity paused/ restarted, the window
and context were not being properly refreshed for this widget.
This led to crashes when the user tried to show the alternates popup.
The reason the context/ window were not being refreshed
is that references were being held by the chips to one or both of these.
The chips were also retaining references to the spannable, which caused
issues in that the spannable was not being updated in the chips, and
after a rotation, the chip would no longer be able to find where
it had been attached to the spannable. To fix all these issus,
I made the RecipientChip class a seperate, simple data holding
class and allowed the RecipientEditTExtview to do the heavy lifting
as it contains the correct contextual information. This has
solved the crashes I had been seeing.
Change-Id: I4123f7bb2a5195c084efa602c5409d87596275d7
ecipientChip.java
ecipientEditTextView.java
ffc42764b959ccd3350dee38bb7cba128995b181 17-Jun-2011 Mindy Pereira <mindyp@google.com> When the user starts editing mid address and submit, always submit all the text.

Previously, when the user hit enter in the middle
of text they were editing, it would divide at the cursor and create
a chip to the left and leave text on the right. This fixes that issue.

Change-Id: If9fd92e4d07008e86351de85de0115d51aca204b
ecipientEditTextView.java
0f0df298b8bc7973f98397153802da0bd1607c83 17-Jun-2011 Mindy Pereira <mindyp@google.com> If there are no chips to chipify and the user hits enter, focus the next view.

Per UX and user studies.
For tab, commit and then focus the next view.
Change-Id: I9f226cb82191b4866b3ddd1c2cc4f1ae185e65e3
ecipientEditTextView.java
5086391a478c3b1badbb86074c3cef72126c7d0f 17-Jun-2011 Mindy Pereira <mindyp@google.com> Fix race condition.

Crash was reported where the checked item position had yet to be
set when the list tried to get it. This uses a listener to make sure
that the checked item isnt set in the list until the adapter has it.

Change-Id: I2b5170ab9440bbb0a69989657313b1a4b6d653cd
ecipientAlternatesAdapter.java
ecipientEditTextView.java
21625f86828b6bbfc5e87796564eaca5127155fe 17-Jun-2011 Mindy Pereira <mindyp@google.com> Every chip should take into account bottom padding for the alternates popup.

Every line will be affected by the padding, not just the bottom.
Fixes the offset of the alternates popup from the bottom of the chip
and prevents it from overlapping the delete icon at all.

Change-Id: I3c45255ffa1252b6d7ebcf95663b35f7ca952190
ecipientEditTextView.java
acdf967a2ac8aa85ebcd08bb88d29ded214e99a4 16-Jun-2011 Mindy Pereira <mindyp@google.com> Fixed bug where appended chips might be added twice.

Since email focuses the compose field instead of the to field
the to field received an immediate unfocus event, which caused any
defaults in the field to be committed. This caused double commits
of a single contact as a chip. This makes sure we dont commit
a pending chip in onSizeChanged that has already been handled.
Integrating into Email revealed this bug.

Change-Id: I65f0f38f1dabe0b1434f0d2e4bcd2ff9a579e621
ecipientEditTextView.java
e50b0a1f168322390b63f435f222766cdae6ba7d 16-Jun-2011 Mindy Pereira <mindyp@google.com> Visual tweaks requested by UX.

1) Text on selected chips should be white
2) new delete asset
3) new background selected asset
4) align the alternates popup with the left of the
text field regardless of the position of the chip
5) dont get the position to put the popup at until the user
has tapped it; we cant cache it as other chips changing may have
moved this chip to a different line.
Also cleaned out unused assets.
Change-Id: I7cff1b945ca7a0c7e04430c66c5976de2dee468d
ecipientEditTextView.java
64af2da9970f59eee2dfd0c8dd2a06f09171bad2 15-Jun-2011 Mindy Pereira <mindyp@google.com> Make semi colon and comma commit default contact chips.

Change-Id: I372275746d7c903f17268df808ec8896ea0fa38b
ecipientEditTextView.java
17bf599c5e2bcd827a29a2165edc92790958e4ac 15-Jun-2011 Mindy Pereira <mindyp@google.com> When user has a focused chip and starts typing, unfocus it.

Brings back that previously removed change in a better way.

Change-Id: Ibd5d3f17b918e36c01836aa3d01472e59c92f03e
ecipientEditTextView.java
46c16479b9d2515b567430c589251fd193f6edb7 15-Jun-2011 Mindy Pereira <mindyp@google.com> Fix issue where extra commas were inserted.

Some applications provide recipients of the form:
append(address);
append(",")

and some provide:
append(address+",");
this makes sure we cover both cases.

Change-Id: I302d562783005466d1f06f17069e1af36ddf0584
ecipientEditTextView.java
892eda7e02632b498880bbc26025792405fb6a9a 15-Jun-2011 Mindy Pereira <mindyp@google.com> Remove deprecated method.

Change-Id: I1fbd80bb0ae496b27da56e0abc330b80a057b8c2
ecipientEditTextView.java
683e47fea365c581d73b93c85178ef4eb6a3a106 14-Jun-2011 Mindy Pereira <mindyp@google.com> Deprecate one of the setChipDimen methods.

2 stage. I will update Gmail in a CL and then remove the deprecated method.

Change-Id: I06078c4a71022176f9097360a98eff269ce334db
ecipientEditTextView.java
02a1f5fc67366addfa194b864b85a5d467f0543d 10-Jun-2011 Mindy Pereira <mindyp@google.com> Create chips when text is appended.

When text is appended to the multiautocompletetextfield,
we need to make sure we make chips of the added text.
Since in many cases it will be added before the view
is measured, we may need to wait for onSizeChanged to get
called. This stores chip info for later use in creating chips
once we can measure the width / height of the view.
Change-Id: Ifc9b8bdf089fb0293bb76ea9cd7aeacfc3f9da87
ecipientEditTextView.java
007a76baab414c9d432d31c661668b1bd07e3f80 14-Jun-2011 Mindy Pereira <mindyp@google.com> Delay closing the alternates popup when the user selects an alternate.

Per UX, this gives the user a better idea of what has just occured.
Using temporary assets.

Change-Id: Ied49f899d7999356cc01a672ecb22f492901d55c
ecipientAlternatesAdapter.java
ecipientEditTextView.java
81050bda3942e8c72794b2c4dd1c2c4fb4888f00 10-Jun-2011 Mindy Pereira <mindyp@google.com> Remve deprecated version of setChipDimensions function.

Change-Id: I8988e3fc2120ab720ff93d31f07db22837f449e3
ecipientEditTextView.java
342142087308bd9f5f7d682bf2ccd2420a3c7538 10-Jun-2011 Mindy Pereira <mindyp@google.com> Added invalid chips, fixed comments.

Add an invalid background for chips that cannot be validated.
If there is a validator, and a chip is invalid, set it to a red
background for now.
Note: I left the old method for setChipDimensions so that
I don't break Gmail.
Updated comments in the code to be clearer.
Change-Id: I01553cf0c3b3a6c7c59da5016d32be364535f7f2
ecipientEditTextView.java
a816690a8b3ecfeb537f6ad403a903f39205f738 10-Jun-2011 Mindy Pereira <mindyp@google.com> Commented most of the public methods of the RecipientEditTextView.

Also, when the user taps another chip and there is text leftover
at the end, complete the text with the default chip behavior.
Change-Id: I6d0f16ed67efad50bc890e7ed5461857e6126675
ecipientEditTextView.java
941187c70e06e977eb80f3ccaccd421148faadae 10-Jun-2011 Mindy Pereira <mindyp@google.com> Add copyright to file.

Change-Id: I1d6efeea9f960baa05e0c65dd7a81e3461d456d1
ccountSpecificAdapter.java
ccountSpecifier.java
aseRecipientAdapter.java
df4457285cf0a54d957f1fad3bbc07112f750818 09-Jun-2011 Mindy Pereira <mindyp@google.com> Small changes to make this more easily integrated into apps.

1) created interface for old adapter and new adapter
to implement so they can be used interchangeable
2) did null checks for chips when getting data/ contacdt ids
Change-Id: I7f47230c5cf35426b73b477f374641b271455411
ccountSpecificAdapter.java
aseRecipientAdapter.java
ecipientEditTextView.java
d4c4e77389def134f5751853b838e9d5edb80be4 09-Jun-2011 Mindy Pereira <mindyp@google.com> Remove mRecipients cache and put in error protections.

Stopped tracking recipients in mRecipients so that I didn't have
to have another cache of recipients to keep up to date (this is cleaner)
Also where its possible that there would have been a crash, i have now
added log.e handling so that we can go to droidfood and get logs
telling us what happened.

Change-Id: I133fbe9bf837a6b93af860147fd1923ee8191a4c
ecipientEditTextView.java
0ab7e735e82c81baf9ab87d028611561ce0592b7 08-Jun-2011 Mindy Pereira <mindyp@google.com> Make sure select/unselect follow the same pattern for making chips.

Change-Id: I9aa08ca535e80f7c41a324aa445d5dabed58fafa
ecipientEditTextView.java
6b6de6266d3bede33728cf995f1fd5c59ec5a55d 08-Jun-2011 Mindy Pereira <mindyp@google.com> Make sure even second level addresses have a photo uri.

When a second level item is chosen, we still want to show
the associated contact photo. We need to set the uri but can get the
photo on the fly later.

Change-Id: Idc9e02452ad5e1d6291776a94a6f3c3c6ada14b4
aseRecipientAdapter.java
ecipientEditTextView.java
ecipientEntry.java
373837f7ea0dcd81fd925ee86e1d00a603aef07d 08-Jun-2011 Mindy Pereira <mindyp@google.com> Remove tricksy workaround.

Since I was unable to get key events in the text field, this was
the suggested workaround, but it is causing many issues, so removing
it.

Change-Id: I62547953b59c735e426b330fe946ca2f1b8a4773
ecipientEditTextView.java
6e8e8e8165a797611f80a2c17249147333d55ea7 07-Jun-2011 Mindy Pereira <mindyp@google.com> Asset updates from Ux.

Larger chips, better delete asset, better fonts.
Change-Id: I1d706d5b56bd496e51c772e65d3456d0f3239a43
ecipientEditTextView.java
8b88f1af70d2e6bf385ee8192293a083d313ae7b 07-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Clear text when address isn't available."
364e7cf182a4124808d3a699dbea8dd1cc1d7bed 07-Jun-2011 Mindy Pereira <mindyp@google.com> Fix issue where deleting did not allow the user to start typing again.

Also dont draw a contact photo for any typed in recipient.
Per UX, if the email address and display name are the same,
make this a chip that is editable.
Also dont store the start/ end positions for the chip
as they may change.
Change-Id: I05a2543d92564c2ec275d0d882cf4a766bad6f92
ecipientEditTextView.java
e3a7365ee50e5df8d7935143bb88c65644be4b59 07-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Clear text when address isn't available.

Change-Id: I06bfd212e2c691ef1d06cc7ce3e67bccd39e3cec
aseRecipientAdapter.java
4c5fc2c74cb001fa930b1a264fb10a1071317086 07-Jun-2011 Mindy Pereira <mindyp@google.com> On back key, clear any selected chips.

Change-Id: I764b312f3ffd2ba74be65b8f6bad0cc15bf2e8df
ecipientEditTextView.java
294400c38f3f2a5892337ca6d11346d871e2e8b1 07-Jun-2011 Mindy Pereira <mindyp@google.com> Remove unneeded/ unused Rfc822ChipsTokenizer.

Change-Id: I8efa2f06fb8a3afb502b50f2f842699c72d7fb96
fc822ChipTokenizer.java
12cf3fc6e24ffeb3b84ec5fbbaa7add81b25db09 06-Jun-2011 Mindy Pereira <mindyp@google.com> When the recipientedittextfield is not focused, shrink it.

When focus is list, the field should only display X recipient chips,
where X is currently 2 lines worth with X+ more text at the end.

Change-Id: Iea73d5d3682e4b8cd3adf4a671271cca4ab3c1f2
ecipientEditTextView.java
f396b39a04ce6edee58ae259cb4d0888474a20cd 03-Jun-2011 Mindy Pereira <mindyp@google.com> When the field loses focus, commit the default chip.

If there were any filterable results, this is the first entry
provided by the adapter.
If not, this is whatever the user was typing in.

Change-Id: I966382dbe38adb20d4123b53443b0fd8d8cf9c89
ecipientEditTextView.java
2bfe48e4dda1e172f4c857a0ee1a99d924fb226f 03-Jun-2011 Mindy Pereira <mindyp@google.com> Show the contact picture in an unselected chip.

Change-Id: Id9341b0365e40144de0ac74438395121fda30c01
ecipientEditTextView.java
05dbd33931e590ccb538bbf9d7d93d53aaee366e 03-Jun-2011 Mindy Pereira <mindyp@google.com> Add handling for focus changed.

When the recipientedittextview loses focus:

1) unselect any selected chips (do not commit)

When it gains focus:
1) show all the chips
2) place the cursor at the end

When a chip gains focus:
and its a real contact: hide the cursor
and its not a real contact: show the cursor

Never show "no suggestions" popup
Change-Id: Id104c62c47bc2f97bcf72514e39760205596eefd
ecipientEditTextView.java
9d2a1980bbcad5dae3b0fb03c35208724b377fa8 03-Jun-2011 Mindy Pereira <mindyp@google.com> De-select on tap. Also give min width to a chip.

If the user clicks a selected chip, unselect it.
Make sure all chips have a minimum width (right now
2X the width of the delete icon) so that there is
always a tappable area regardless of how short the name is.
Also make sure the bounds of the chip do not change in selected
vs unselected mode.
Change-Id: I8bc2302cc7602c62eac727cf77306aac37c27ed4
ecipientEditTextView.java
b86dcd5230ebcc57e5fc7a669c2304aca142dbf5 02-Jun-2011 Mindy Pereira <mindyp@google.com> If a chip is selected, hide the cursor.

This change got lost when I was removing the wrapper class.

Change-Id: I787f5cca6ba6d2226b383f07418e24ccbfbde122
ecipientEditTextView.java
67ad489cd290f7d2b468b4d69ce679edeac9bb7a 02-Jun-2011 Mindy Pereira <mindyp@google.com> Fix a crash in the removeChip logic. Update alternates dropdown.

There was a crash that could happen if you deleted the first item.
The change in RecipientEditTextView to check that toDelete >= 0 fixes
this.
Also, made the icon and the recipient display name show for the topmost
entry only.

Change-Id: I56b8768c8ead282e2477f91a130bf8cc6fb72b15
ecipientAlternatesAdapter.java
ecipientEditTextView.java
b88ee450829eb4ac24fb47c377b9ec3aab0782da 02-Jun-2011 Mindy Pereira <mindyp@google.com> Make the delete target EXTREMELY large and tweak tapping algorithm

Experimenting with a really large tap target for the delete icon.
Also tweaked the search algorithm to start at the beginning of
the spans when looking for a chip.
Also was able to get rid of the handler and delayed focus since
the code now watches for selection changes and always keeps
the cursor just past the last chip.
Change-Id: I105a7cb72ceb77f4f21b662a978e819fba3d9875
ecipientEditTextView.java
fd68ea64d80f3b299b20ab72b6ed71d3c4ff6c9c 02-Jun-2011 Mindy Pereira <mindyp@google.com> Improvement to tap detection for the delete button.

This improvement works as follows:

1) If the user has tapped near the end of the text
and there is some text near where they tapped that is
not a chip, don't send the tap to the chip
and there is no text near where they tapped, send
the tap to the chip

Change-Id: Ifb93ec716d4a9ff1b9dcc2548465280c39d834cf
ecipientEditTextView.java
cd61195b9be5614aefc4cda76c1732cc4840b18e 02-Jun-2011 Mindy Pereira <mindyp@google.com> Remove wrapper.

getText now also returns the correct comma seperated values.
Change-Id: I109f80df507cc377c53615e7f19c21f9b3fb47dd
hipsUtil.java
ecipientEditTextView.java
ecipientEditTextViewInner.java
a8da30a416d87e7af33b822ffd9d68103ab89a24 02-Jun-2011 Mindy Pereira <mindyp@google.com> Hide the cursor when the user has selected a chip.

Also fix issue where the correct span was not being removed.
Unselect the chip AFTER it has been swapped for a new chip or an empty span.

Change-Id: I312492ff1fbb60cb416c3ba703e7f7c76247d75e
ecipientEditTextViewInner.java
fa7e049f7d34789748ffc469cd1984de034a6246 01-Jun-2011 Mindy Pereira <mindyp@google.com> When deleting, make sure we also remove associated extraneous spaces.

A Chip also has trailing spaces. When we delete a chip, make sure
to remove the associated spaces so that everything flows together correctly
and there are no extra spaces.

Change-Id: I87cb3fe0bf6f947549f1da3e617e4c92ed332e28
ecipientEditTextViewInner.java
0057c4e2992033e15c08726d1822ea18e76349ad 01-Jun-2011 Mindy Pereira <mindyp@google.com> Make the delete tappable region even smaller.

Taps that are CLEARLY beyond the end of the visible text
should not cause a chip to get deleted.

Change-Id: I71d810c5a9969b0bba046a382c8c45755db35aa1
ecipientEditTextViewInner.java
84dd9a88f0d9984996e951e59e73cb76cd2eaa5e 01-Jun-2011 Mindy Pereira <mindyp@google.com> Make RecipientEditTextViewInner package private.

Also add license and make EmailQuery values package private.
Change-Id: I366ca01ac54f04fbc999377be59dbaa139307550
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextViewInner.java
6ac24a858ef4b3a28703a78e7f30f3148fa3ad50 01-Jun-2011 Mindy Pereira <mindyp@google.com> Fix filtering bug and reduce area that causes delete of chip.

The bug was: when the user backspaced from the end of the multiautocompletefield
to a chip, the view would bring up a popup that filtered against hte contents
of the chip. This fixes that by specifically not filtering on chip contents.

Also, dont allow taps past the end of a chip to delete the chip.
Change-Id: Idbb41756c9efd544846802ddad8c67545b8ade1f
ecipientEditTextViewInner.java
97d7768576ff27d779d68f77e23925b69f3290bc 01-Jun-2011 Mindy Pereira <mindyp@google.com> Show alternate addresses when the user taps on a contact.

Change-Id: I9a88dd1612b98587e560c1e50030e36a28e30db9
aseRecipientAdapter.java
ecipientAlternatesAdapter.java
ecipientEditTextView.java
ecipientEditTextViewInner.java
2bdf061b4770bc7e7a12dc6a892937a7f97aac00 01-Jun-2011 Mindy Pereira <mindyp@google.com> Create wrapper for RecipientEditTextView.

Hide that this isn;t just a normal MultiAutoCompleteTextView
by wrapping getRecipients in getText

Change-Id: Ib11777b4fbf55bfb9aafb1cda18fd1ed246895ad
hipsUtil.java
ecipientEditTextView.java
ecipientEditTextViewInner.java
1a8b3ebed26f2ba0e9b1aa76eed87981152254e9 01-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Use long for ids"
f84d110bf541885d04cf261af1a337bd1b4e25db 01-Jun-2011 Mindy Pereira <mindyp@google.com> Fix issues with deleting.

The chip span does not encompass the delete token, so we need to
check for taps as well.

Change-Id: I094cd3df04b8d51a54cd9fc1717c515383b08870
ecipientEditTextView.java
f15b448bb9fd41ec7aea7cd95104ab3d82355a06 01-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Use long for ids

Also optimize update method

Bug: 4443828
Change-Id: Ie51a3b40e0852cfab8f81c2a56cbc13f5072ad6c
aseRecipientAdapter.java
hipsUtil.java
ecipientEditTextView.java
ecipientEntry.java
7537f840506bcb642bed9dc1c2bdcf6d31c6b2a7 01-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Add data Id support and account support.

Also add utility methods for chips UI.

Bug: 4371572
Change-Id: Iec086c06ac844ca19c776f82b127a48804bab8e6
aseRecipientAdapter.java
hipsUtil.java
ecipientEditTextView.java
ecipientEntry.java
9ff623bbf3b5bc790e40dd51ebbb13fc99fbf875 01-Jun-2011 Mindy Pereira <mindyp@google.com> Add getRecipients

Method gives the calling application a plain editable containing
all of the recipient addresses

Also added larger assets for the delete icon as the others were
untappable!
Change-Id: Ib02dfcffc3d9e739586f5b502cf92f726cd5c0ef
ecipientEditTextView.java
c510471c4f7ccbb75ee00fe3d2723c600c7369d9 01-Jun-2011 Mindy Pereira <mindyp@google.com> Setup a really cheesy delete icon.

This allows us to:
1) set a pressed state
2) get taps on the "delete icon" (the world remains thankful that I am
not a visual designer)
3) get the correctly tapped chip regardless of presses near the end
Change-Id: I286de87b05ac46aca1511a2c7108c6778438386e
ecipientEditTextView.java
5e7af11f172ccee5d427802cf634c78fee5595b2 31-May-2011 Mindy Pereira <mindyp@google.com> Fix tap logic and make moving tapped non complete contact to end work.

This change:
1) makes taps work more correctly to click / delete the correct items
2) takes a tapped on non-real contact and moves it to the end for editing.
3) make real contact show the rest of the information for the selected address
when tapped
Change-Id: Iaa778216dc3f0dc9880fdec2e84057a893d9211e
ecipientEditTextView.java
f621a601e1f966c89b7aadbcca384021e14d668d 31-May-2011 Mindy Pereira <mindyp@google.com> Multiple updates to chips.

1) Eliminate hardcoded 200 value for width of popup; this is just
the same as the width of the autocomplete view
2) eliminate need for offset padding; can calculate the correct position
(see calculateLineBottom for the full algo)
3) use recipientlistentry to track the contents of a chip; differentiate
between completed real contacts and filled in content. don't show popup
for non real contacts.
4) Change RecipientListEntry to just RecipientEntry
Change-Id: Icf2a47a845f1b3cad2fbae3d31c38179ca1b26c8
aseRecipientAdapter.java
ecipientEditTextView.java
ecipientEntry.java
ecipientListEntry.java
cf9337aa4b2d844f4941d75832f52266c4fc3fa7 31-May-2011 Daisuke Miyakawa <dmiyakawa@google.com> Use LinkedHashMap to keep order.

Bug: 4443828
Change-Id: If6255c472509a6c55ebcd68f2a8908a1ea9f1603
aseRecipientAdapter.java
efcac0cbb3efc645cd6cf1cb1e2431e1bd2b2d2a 28-May-2011 Mindy Pereira <mindyp@google.com> Back to static library.

Give the library dimensions that the apps can use.
Change-Id: If55883a0f599baac3e4f9122620fc01b376fb512
aseRecipientAdapter.java
ecipientEditTextView.java
86aec375559065e0dad632c609a3c27d2907b84d 28-May-2011 Mindy Pereira <mindyp@google.com> Fix build. Should not be using R from the chips app.

Change-Id: Id63bc5d9bc47cd5b2bf0327784447f176da95884
aseRecipientAdapter.java
d93630f6f0fd159b340c56333ca740f226acadf7 28-May-2011 Mindy Pereira <mindyp@google.com> Make chips included source instead of static java library.

Get rid of abstract methods in BaseRecipientAdapter
Update makefile
Change-Id: I3415c73446c605e69c0c2145e98a7e66abc33a6e
aseRecipientAdapter.java
ecipientEditTextView.java
ecipientListEntry.java
fc822ChipTokenizer.java