2 * Copyright (C) 2010 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.android.settings.deviceinfo;
18 import android.os.Environment;
20 import java.util.ArrayList;
21 import java.util.List;
24 * Some of the constants used in this package
27 static final int MEDIA_INDEX = 0;
28 static final int DOWNLOADS_INDEX = 1;
29 static final int PIC_VIDEO_INDEX = 2;
30 static final int MUSIC_INDEX = 3;
31 static final int MEDIA_APPS_DATA_INDEX = 4;
32 static final int MEDIA_MISC_INDEX = 5;
33 static final int NUM_MEDIA_DIRS_TRACKED = MEDIA_MISC_INDEX + 1;
35 static class MediaDirectory {
36 final String[] mDirPaths;
38 final String mPreferenceName;
39 MediaDirectory(String pref, String debugInfo, String... paths) {
42 mPreferenceName = pref;
45 static final ArrayList<MediaDirectory> mMediaDirs = new ArrayList<MediaDirectory>();
46 static final List<String> ExclusionTargetsForMiscFiles = new ArrayList<String>();
48 mMediaDirs.add(MEDIA_INDEX,
49 new MediaDirectory(null,
51 Environment.getExternalStorageDirectory().getAbsolutePath()));
52 mMediaDirs.add(DOWNLOADS_INDEX,
53 new MediaDirectory("memory_internal_downloads",
55 Environment.getExternalStoragePublicDirectory(
56 Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()));
57 mMediaDirs.add(PIC_VIDEO_INDEX,
58 new MediaDirectory("memory_internal_dcim",
60 Environment.getExternalStoragePublicDirectory(
61 Environment.DIRECTORY_DCIM).getAbsolutePath(),
62 Environment.getExternalStoragePublicDirectory(
63 Environment.DIRECTORY_MOVIES).getAbsolutePath(),
64 Environment.getExternalStoragePublicDirectory(
65 Environment.DIRECTORY_PICTURES).getAbsolutePath()));
66 mMediaDirs.add(MUSIC_INDEX,
67 new MediaDirectory("memory_internal_music",
69 Environment.getExternalStoragePublicDirectory(
70 Environment.DIRECTORY_MUSIC).getAbsolutePath(),
71 Environment.getExternalStoragePublicDirectory(
72 Environment.DIRECTORY_ALARMS).getAbsolutePath(),
73 Environment.getExternalStoragePublicDirectory(
74 Environment.DIRECTORY_NOTIFICATIONS).getAbsolutePath(),
75 Environment.getExternalStoragePublicDirectory(
76 Environment.DIRECTORY_RINGTONES).getAbsolutePath(),
77 Environment.getExternalStoragePublicDirectory(
78 Environment.DIRECTORY_PODCASTS).getAbsolutePath()));
79 mMediaDirs.add(MEDIA_APPS_DATA_INDEX,
80 new MediaDirectory(null,
82 Environment.getExternalStorageAndroidDataDir().getAbsolutePath()));
83 mMediaDirs.add(MEDIA_MISC_INDEX,
84 new MediaDirectory("memory_internal_media_misc",
87 // prepare a lit of strings representing dirpaths that should be skipped while looking
89 for (int j = 0; j < Constants.NUM_MEDIA_DIRS_TRACKED - 1; j++) {
90 String[] dirs = Constants.mMediaDirs.get(j).mDirPaths;
91 int len = dirs.length;
93 for (int k = 0; k < len; k++) {
94 ExclusionTargetsForMiscFiles.add(dirs[k]);
97 // also add /sdcard/Android
98 ExclusionTargetsForMiscFiles.add(
99 Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android");