View Issue Details

IDProjectCategoryView StatusLast Update
0012199MMANavigationpublic2022-04-23 15:10
Reportermarek Assigned To 
PriorityurgentSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version1.1.0 
Target Version2.0.0Fixed in Version2.0.0 
Summary0012199: Scrollbar behaves inconsistently / doesn't work with certain character sets
DescriptionIt looks like that the fast scrollbar with indexer (alphabet boxes) doesn't count with content of DB cursor well.

1. If list contains a lot of items starting with A-B and a few others
  - scrollbar moves slowly at the start and then very quickly

2. Indexer uses other column than the lists are sorted by
  - in some views, not the right column is used for indexer
  - therefore the srollbar jumps up or down when user scrolls to some item that begins with some specific symbol (e.g. czech š??žýáíé?)

This is now quite visible due to permanent scrollbars.
TagsNo tags attached.
Fixed in build1005

Relationships

has duplicate 0012899 closedmartin Album Grid view: scroll bar doesn't work when Unknown album exists 

Activities

marek

2014-10-27 12:43

developer   ~0040824

1. I have find out that it is a feature. This occurs because it is necessary to have all indexed letters uniformly spread on scrollbar. I.e. all letters have same distance between them, no matter how many items it has.

So when user is scrolling in listview by swiping, it is logical that scrollbar thumb cannot move uniformly.

More info and implementation here:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.2_r1/android/widget/FastScroller.java#FastScroller.getPosFromItemCount%28int%2Cint%2Cint%29

marek

2014-12-01 11:44

developer   ~0041237

2. It is mostly fixed. There is one issue caused by implementation of AlphabetIndexer.

It takes alphabet as array of chars. But some languages have letters that consist from more characters.

E.g. in Czech language, we have:
 a b c d e f g h ch i ... so 'ch' is a single letter (with two chars) behind 'h'. But the Android implementation of indexer compares word with single char letter. This works well in listview where ordering works with 2 whole words.

So now when listview contains some item starting with 'ch', the scrollbar jumps up as for item starting with 'c'.

It isn't a big issue and I don't know how to change it in general. We will need our implementation and alphabet for each language.

Maybe we can postpone it with lower priority

rusty

2014-12-02 01:34

administrator   ~0041260

pushed.

rusty

2015-10-15 13:00

administrator   ~0043125

I had originally pushed this because I hadn't realized the severity or frequency of the problem. As outlined at 0012899, if the bug occurs:
- the severity of the problem is such that the scrollbar doesn't work _at all_
- the frequency of the problem is that it can occur in a collection of 10k tracks even if only 10 of the tracks contain 'foreign' characters.

Is there anything that we can do for 1.1.3 to limit the frequency/severity of the problem?

rusty

2015-10-15 13:32

administrator   ~0043126

It turns out that 12899 is a distinct problem. Resetting priority of this issue and re-opening 0012899.

martin

2020-04-23 11:09

developer   ~0057697

Implemented DB indexer based on real data in database and creates indexer <Letter, countOfItems>
so If the view will have only items with titles starting "A", "G","Z", then the indexer will have only these three letters.
Fixed in build 2.0.01005

peke

2022-04-23 15:10

developer   ~0067691

Verified 1017

Unable to replicate, scrollbar and speed behavior is consistent thru out MMA