1792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project/*
2792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
4792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * you may not use this file except in compliance with the License.
6792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * You may obtain a copy of the License at
7792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
8792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
10792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * See the License for the specific language governing permissions and
14792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * limitations under the License.
15792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project */
16792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
17792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectpackage com.android.music;
18792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
19792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.database.Cursor;
20792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.provider.MediaStore;
21792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.widget.AlphabetIndexer;
22792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
23792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project/**
24792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Handles comparisons in a different way because the Album, Song and Artist name
25792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * are stripped of some prefixes such as "a", "an", "the" and some symbols.
26792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project *
27792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project */
28792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectclass MusicAlphabetIndexer extends AlphabetIndexer {
29792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
30792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    public MusicAlphabetIndexer(Cursor cursor, int sortedColumnIndex, CharSequence alphabet) {
31792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        super(cursor, sortedColumnIndex, alphabet);
32792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
33792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project
34792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    @Override
35792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    protected int compare(String word, String letter) {
36792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        String wordKey = MediaStore.Audio.keyFor(word);
37792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        String letterKey = MediaStore.Audio.keyFor(letter);
38792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        if (wordKey.startsWith(letter)) {
39792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            return 0;
40792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        } else {
41792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project            return wordKey.compareTo(letterKey);
42792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project        }
43792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project    }
44792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project}
45