Updated storage availability check
This commit is contained in:
parent
65491d5436
commit
cd9d69d129
|
@ -39,7 +39,7 @@ public class StorageErrorActivity extends SherlockActivity {
|
|||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (StorageUtils.storageAvailable()) {
|
||||
if (StorageUtils.storageAvailable(this)) {
|
||||
leaveErrorState();
|
||||
} else {
|
||||
registerReceiver(mediaUpdate, new IntentFilter(
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.apache.http.HttpStatus;
|
|||
|
||||
import android.util.Log;
|
||||
import de.danoeh.antennapod.AppConfig;
|
||||
import de.danoeh.antennapod.PodcastApp;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.asynctask.DownloadStatus;
|
||||
import de.danoeh.antennapod.util.DownloadError;
|
||||
|
@ -104,7 +105,7 @@ public class HttpDownloader extends Downloader {
|
|||
if (AppConfig.DEBUG) {
|
||||
Log.d(TAG, "Connected to resource");
|
||||
}
|
||||
if (StorageUtils.externalStorageMounted()) {
|
||||
if (StorageUtils.storageAvailable(PodcastApp.getInstance())) {
|
||||
File destination = new File(status.getFeedFile()
|
||||
.getFile_url());
|
||||
if (!destination.exists()) {
|
||||
|
|
|
@ -1,41 +1,58 @@
|
|||
package de.danoeh.antennapod.util;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Environment;
|
||||
import android.os.StatFs;
|
||||
import android.util.Log;
|
||||
import de.danoeh.antennapod.AppConfig;
|
||||
import de.danoeh.antennapod.PodcastApp;
|
||||
import de.danoeh.antennapod.activity.StorageErrorActivity;
|
||||
|
||||
/** Utility functions for handling storage errors */
|
||||
public class StorageUtils {
|
||||
public static boolean storageAvailable() {
|
||||
String state = Environment.getExternalStorageState();
|
||||
return state.equals(Environment.MEDIA_MOUNTED);
|
||||
private static final String TAG = "StorageUtils";
|
||||
|
||||
public static boolean storageAvailable(Context context) {
|
||||
File dir = PodcastApp.getDataFolder(context, null);
|
||||
if (dir != null) {
|
||||
return dir.exists() && dir.canRead() && dir.canWrite();
|
||||
} else {
|
||||
if (AppConfig.DEBUG)
|
||||
Log.d(TAG, "Storage not available: data folder is null");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**Checks if external storage is available. If external storage isn't
|
||||
* available, the current activity is finsished an an error activity is launched.
|
||||
* @param activity the activity which would be finished if no storage is available
|
||||
/**
|
||||
* Checks if external storage is available. If external storage isn't
|
||||
* available, the current activity is finsished an an error activity is
|
||||
* launched.
|
||||
*
|
||||
* @param activity
|
||||
* the activity which would be finished if no storage is
|
||||
* available
|
||||
* @return true if external storage is available
|
||||
*/
|
||||
public static boolean checkStorageAvailability(Activity activity) {
|
||||
boolean storageAvailable = storageAvailable();
|
||||
boolean storageAvailable = storageAvailable(activity);
|
||||
if (!storageAvailable) {
|
||||
activity.finish();
|
||||
activity.startActivity(new Intent(activity, StorageErrorActivity.class));
|
||||
activity.startActivity(new Intent(activity,
|
||||
StorageErrorActivity.class));
|
||||
}
|
||||
return storageAvailable;
|
||||
}
|
||||
|
||||
/** Get the number of free bytes that are available on the external storage. */
|
||||
public static long getFreeSpaceAvailable() {
|
||||
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
|
||||
StatFs stat = new StatFs(Environment.getExternalStorageDirectory()
|
||||
.getPath());
|
||||
long availableBlocks = stat.getAvailableBlocks();
|
||||
long blockSize = stat.getBlockSize();
|
||||
return availableBlocks * blockSize;
|
||||
}
|
||||
|
||||
public static boolean externalStorageMounted() {
|
||||
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue