Fixed
Status Update
Comments
sh...@google.com <sh...@google.com> #2
I created a thread on the android-developers forum related to this bug:
http://groups.google.com/group/android-
developers/browse_thread/thread/6caa57135927e242/86d4d895e88a5ebb?
lnk=gst&q=custom+account#86d4d895e88a5ebb
developers/browse_thread/thread/6caa57135927e242/86d4d895e88a5ebb?
lnk=gst&q=custom+account#86d4d895e88a5ebb
sh...@google.com <sh...@google.com> #3
My personal theory is that Google broke this part of the API intentionally to keep
the lock-in on sync functionality they've enjoyed since Android 1.0.....
the lock-in on sync functionality they've enjoyed since Android 1.0.....
je...@google.com <je...@google.com> #5
[Comment deleted]
ap...@google.com <ap...@google.com> #6
sh...@google.com <sh...@google.com>
ch...@gmail.com <ch...@gmail.com> #7
ExternalSource.java bug
protected void inflate(Context context, XmlPullParser parser)
{
final AttributeSet attrs = Xml.asAttributeSet(parser); << It can't read any
attributes from the ContactsDataKind tag. It should located blow the second while
loop.
try
{
int type;
while((type = parser.next()) != XmlPullParser.START_TAG &&
type != XmlPullParser.END_DOCUMENT)
{
// Drain comments and whitespace
}
if(type != XmlPullParser.START_TAG)
{
throw new IllegalStateException("No start tag found");
}
if(!InflateTags.CONTACTS_SOURCE.equals(parser.getName()))
{
throw new IllegalStateException("Top level element must be " +
InflateTags.CONTACTS_SOURCE);
}
protected void inflate(Context context, XmlPullParser parser)
{
final AttributeSet attrs = Xml.asAttributeSet(parser); << It can't read any
attributes from the ContactsDataKind tag. It should located blow the second while
loop.
try
{
int type;
while((type = parser.next()) != XmlPullParser.START_TAG &&
type != XmlPullParser.END_DOCUMENT)
{
// Drain comments and whitespace
}
if(type != XmlPullParser.START_TAG)
{
throw new IllegalStateException("No start tag found");
}
if(!InflateTags.CONTACTS_SOURCE.equals(parser.getName()))
{
throw new IllegalStateException("Top level element must be " +
InflateTags.CONTACTS_SOURCE);
}
Description
When items are same size as the viewport, and RV is currently laid out such that the viewport shows exactly one complete item, and you remove that item from the dataset, it can't find a reference child that is in the viewport. It defaults to using the first child it found in the hierarchy (
getChild(0)
for regular LTR RVs) as the reference child. But then it doesn't seem to use that child's old position as the anchor position, but just places that child at the start of the viewport.That is a problem if you are looking at the last item (item N) and have two extra items laid out before the visible one. You'd expect that if you remove item N, you will look at item N-1 after that. But, it will actually go to item N-2.
I didn't check the behavior if you're not looking at the last item, but that might be affected as well.