Skip to content

Commit 9a8a128

Browse files
committed
Refactored StorageUtils
1 parent 95984f5 commit 9a8a128

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

library/src/com/nostra13/universalimageloader/utils/StorageUtils.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*******************************************************************************/
1616
package com.nostra13.universalimageloader.utils;
1717

18+
import static android.os.Environment.MEDIA_MOUNTED;
19+
1820
import java.io.File;
1921
import java.io.IOException;
2022

@@ -30,22 +32,23 @@
3032
*/
3133
public final class StorageUtils {
3234

35+
private static final String EXTERNAL_STORAGE_PERMISSION = "android.permission.WRITE_EXTERNAL_STORAGE";
3336
private static final String INDIVIDUAL_DIR_NAME = "uil-images";
3437

3538
private StorageUtils() {
3639
}
3740

3841
/**
3942
* Returns application cache directory. Cache directory will be created on SD card
40-
* <i>("/Android/data/[app_package_name]/cache")</i> if card is mounted. Else - Android defines cache directory on
41-
* device's file system.
43+
* <i>("/Android/data/[app_package_name]/cache")</i> if card is mounted and app has appropriate permission. Else -
44+
* Android defines cache directory on device's file system.
4245
*
4346
* @param context Application context
4447
* @return Cache {@link File directory}
4548
*/
4649
public static File getCacheDirectory(Context context) {
4750
File appCacheDir = null;
48-
if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED) && hasExternalPermission(context)) {
51+
if (Environment.getExternalStorageState().equals(MEDIA_MOUNTED) && hasExternalStoragePermission(context)) {
4952
appCacheDir = getExternalCacheDir(context);
5053
}
5154
if (appCacheDir == null) {
@@ -60,8 +63,8 @@ public static File getCacheDirectory(Context context) {
6063

6164
/**
6265
* Returns individual application cache directory (for only image caching from ImageLoader). Cache directory will be
63-
* created on SD card <i>("/Android/data/[app_package_name]/cache/uil-images")</i> if card is mounted. Else -
64-
* Android defines cache directory on device's file system.
66+
* created on SD card <i>("/Android/data/[app_package_name]/cache/uil-images")</i> if card is mounted and app has
67+
* appropriate permission. Else - Android defines cache directory on device's file system.
6568
*
6669
* @param context Application context
6770
* @return Cache {@link File directory}
@@ -79,15 +82,15 @@ public static File getIndividualCacheDirectory(Context context) {
7982

8083
/**
8184
* Returns specified application cache directory. Cache directory will be created on SD card by defined path if card
82-
* is mounted. Else - Android defines cache directory on device's file system.
85+
* is mounted and app has appropriate permission. Else - Android defines cache directory on device's file system.
8386
*
8487
* @param context Application context
8588
* @param cacheDir Cache directory path (e.g.: "AppCacheDir", "AppDir/cache/images")
8689
* @return Cache {@link File directory}
8790
*/
8891
public static File getOwnCacheDirectory(Context context, String cacheDir) {
8992
File appCacheDir = null;
90-
if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED) && hasExternalPermission(context)) {
93+
if (Environment.getExternalStorageState().equals(MEDIA_MOUNTED) && hasExternalStoragePermission(context)) {
9194
appCacheDir = new File(Environment.getExternalStorageDirectory(), cacheDir);
9295
}
9396
if (appCacheDir == null || (!appCacheDir.exists() && !appCacheDir.mkdirs())) {
@@ -112,11 +115,9 @@ private static File getExternalCacheDir(Context context) {
112115
}
113116
return appCacheDir;
114117
}
115-
116-
private static boolean hasExternalPermission(Context cxt)
117-
{
118-
String permission = "android.permission.WRITE_EXTERNAL_STORAGE";
119-
int res = cxt.checkCallingOrSelfPermission(permission);
120-
return (res == PackageManager.PERMISSION_GRANTED);
118+
119+
private static boolean hasExternalStoragePermission(Context context) {
120+
int perm = context.checkCallingOrSelfPermission(EXTERNAL_STORAGE_PERMISSION);
121+
return perm == PackageManager.PERMISSION_GRANTED;
121122
}
122123
}

0 commit comments

Comments
 (0)