View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0012199 | MMA | Navigation | public | 2014-09-25 10:10 | 2022-04-23 15:10 |
Reporter | marek | Assigned To | |||
Priority | urgent | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 1.1.0 | ||||
Target Version | 2.0.0 | Fixed in Version | 2.0.0 | ||
Summary | 0012199: Scrollbar behaves inconsistently / doesn't work with certain character sets | ||||
Description | It 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. | ||||
Tags | No tags attached. | ||||
Fixed in build | 1005 | ||||
|
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 |
|
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 |
|
pushed. |
|
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? |
|
It turns out that 12899 is a distinct problem. Resetting priority of this issue and re-opening 0012899. |
|
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 |
|
Verified 1017 Unable to replicate, scrollbar and speed behavior is consistent thru out MMA |