private Category makeCategory(FileInfo file, int type) { Category category = new Category(); switch (type) { case TYPE_IMAGE: category.filePath = file.filePath; category.alias = ((ImageFile) file).bucketName; break; case TYPE_AUDIO: category.alias = ((AudioFile) file).album; category.filePath = ((AudioFile) file).album; break; case TYPE_VIDEO: category.filePath = file.filePath; break; } category.uri = category.filePath; category.init(); category.addFile(file); return category; }
public synchronized void initImage() { if (null == mImageCategory) { mImageCategory = new ConcurrentHashMap<String, Category>(); } mImageCategory.clear(); String volumeName = "external"; Uri uri = Images.Media.getContentUri(volumeName); String[] columns = new String[] { BaseColumns._ID, MediaColumns.DATA, MediaColumns.DISPLAY_NAME, MediaColumns.SIZE, MediaColumns.DATE_ADDED, MediaColumns.DATE_MODIFIED, ImageColumns.BUCKET_DISPLAY_NAME, MediaColumns.MIME_TYPE }; Cursor cur = null; try { cur = mContext .getContentResolver() .query(uri, columns, buildSelectionByCategory(TYPE_IMAGE), null, null); if (cur == null) { return; } if (!cur.moveToFirst()) { return; } do { ImageFile file = ImageFile.getInfo(cur); if (null == file) { continue; } // 取一张图片的路径,add by yangbing // if (MediaOpenSettingConstants.sImagePath == null) { // if (file.fullFilePath != null && !"".equals(file.fullFilePath)) { // MediaOpenSettingConstants.sImagePath = file.fullFilePath; // } // } if (mImageCategory.containsKey(file.filePath)) { Category category = mImageCategory.get(file.filePath); category.addFile(file); } else { Category category = new Category(); category.filePath = file.filePath; category.uri = category.filePath; category.alias = file.bucketName; category.init(); category.addFile(file); mImageCategory.put(file.filePath, category); } } while (cur.moveToNext()); } catch (SQLiteException e) { Log.e("FileEngine", "init image error"); } finally { if (cur != null) { cur.close(); } } }
public synchronized void initVideo() { if (null == mVideoCategory) { mVideoCategory = new ConcurrentHashMap<String, Category>(); } mVideoCategory.clear(); String volumeName = "external"; Uri uri = Video.Media.getContentUri(volumeName); String[] columns = new String[] { BaseColumns._ID, MediaColumns.DATA, MediaColumns.DISPLAY_NAME, MediaColumns.SIZE, MediaColumns.DATE_ADDED, MediaColumns.DATE_MODIFIED, VideoColumns.DURATION, MediaColumns.MIME_TYPE }; Cursor cur = null; try { cur = mContext .getContentResolver() .query(uri, columns, buildSelectionByCategory(TYPE_AUDIO), null, null); if (cur == null) { return; } if (!cur.moveToFirst()) { return; } do { VideoFile file = VideoFile.getInfo(cur); if (null == file) { continue; } if (mVideoCategory.containsKey(file.filePath)) { Category category = mVideoCategory.get(file.filePath); category.addFile(file); } else { Category category = new Category(); category.filePath = file.filePath; category.uri = category.filePath; category.init(); category.addFile(file); mVideoCategory.put(file.filePath, category); } } while (cur.moveToNext()); } catch (SQLiteException e) { Log.e("FileEngine", "init video error"); } finally { if (cur != null) { cur.close(); } } }
public synchronized void initAudio() { if (null == mAudioCategory) { mAudioCategory = new ConcurrentHashMap<String, Category>(); } mAudioCategory.clear(); Uri uri = Audio.Media.EXTERNAL_CONTENT_URI; String[] columns = new String[] { BaseColumns._ID, MediaColumns.DATA, MediaColumns.DISPLAY_NAME, MediaColumns.SIZE, MediaColumns.DATE_ADDED, MediaColumns.DATE_MODIFIED, AudioColumns.DURATION, AudioColumns.ARTIST, AudioColumns.ALBUM, AudioColumns.ALBUM_ID, MediaColumns.MIME_TYPE, MediaColumns.TITLE }; Cursor cur = null; try { cur = mContext .getContentResolver() .query(uri, columns, buildSelectionByCategory(TYPE_AUDIO), null, null); if (cur == null) { return; } if (!cur.moveToFirst()) { return; } do { AudioFile file = AudioFile.getInfo(cur); if (null == file) { continue; } // 取一首歌曲的路径,add by yangbing // if (MediaOpenSettingConstants.sMusicPath == null) { // if (file.fullFilePath != null && !"".equals(file.fullFilePath)) { // MediaOpenSettingConstants.sMusicPath = file.fullFilePath; // } // } if (mAudioCategory.containsKey(file.album)) { Category category = mAudioCategory.get(file.album); category.addFile(file); } else { Category category = new Category(); category.filePath = file.album; category.uri = category.filePath; category.alias = file.album; category.addFile(file); mAudioCategory.put(category.filePath, category); } } while (cur.moveToNext()); } catch (SQLiteException e) { Log.e("FileEngine", "init audio error"); } finally { if (cur != null) { cur.close(); } } }