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