Ejemplo n.º 1
0
 @Override
 protected Integer doInBackground(SongItem... list) { // on an independent thread
   if (list == null || list.length <= 0) {
     Log.w(TAG, "items null");
   }
   int total = list.length;
   int count = 0;
   int downloaded = 0;
   for (SongItem item : list) {
     if (isCancelled()) {
       Log.i(TAG, "download task is canceled, " + (total - count) + " items left");
       break;
     }
     count++;
     ArrayList<QueryResult> lrcs = TTDownloader.query(item.getArtist(), item.getTitle());
     if (lrcs != null && lrcs.size() > 0) {
       boolean result =
           TTDownloader.download(lrcs, item.getLrcPath(), TTDownloader.DOWNLLOAD_SHORTEST_NAME);
       downloaded = result ? downloaded + 1 : downloaded;
     }
     publishProgress(100 * count / total);
   }
   Log.d(TAG, "downloaded " + downloaded + " of " + total + " items");
   return downloaded;
 }
  // Query for Songs
  private ArrayList<SongItem> queryForSongs(
      Uri uri, String[] projection, String selection, String[] args, String sortOrder) {
    Cursor cur = mCR.query(uri, projection, selection, args, sortOrder);

    if (cur == null) {
      return null;
    }

    if (!cur.moveToFirst()) {
      return null;
    }

    ArrayList<SongItem> list = new ArrayList<SongItem>();

    int idColumn = cur.getColumnIndex(MediaStore.Audio.Media._ID);
    int titleColumn = cur.getColumnIndex(MediaStore.Audio.Media.TITLE);
    int artistColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST);
    int artistIDColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST_ID);
    int albumColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM);
    int albumIDColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
    int durationColumn = cur.getColumnIndex(MediaStore.Audio.Media.DURATION);
    int dataColumn = cur.getColumnIndex(MediaStore.Audio.Media.DATA);

    do {
      SongItem si = new SongItem();
      si.id = cur.getLong(idColumn);
      si.title = cur.getString(titleColumn);
      si.artist = cur.getString(artistColumn);
      si.artistID = cur.getLong(artistIDColumn);
      si.album = cur.getString(albumColumn);
      si.albumID = cur.getLong(albumIDColumn);
      si.duration = cur.getLong(durationColumn);
      si.dataStream = cur.getString(dataColumn);
      list.add(si);
    } while (cur.moveToNext());

    return list;
  }