summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-16 17:40:46 +0400
committerAndrew Dolgov <[email protected]>2012-10-16 17:40:46 +0400
commit6a678360e603d85314b5241c43424b174dbee6af (patch)
tree6f4e7606e8fdae3833789746deb66a4e740bf3e2 /src
parentfd3f72c729763bcd9d1e7a852658fe0c402fe7cc (diff)
check whether external storage is available before accessing it
Diffstat (limited to 'src')
-rw-r--r--src/org/fox/ttcomics/ComicListFragment.java6
-rw-r--r--src/org/fox/ttcomics/CommonActivity.java23
2 files changed, 26 insertions, 3 deletions
diff --git a/src/org/fox/ttcomics/ComicListFragment.java b/src/org/fox/ttcomics/ComicListFragment.java
index 9c2b3a2..d307354 100644
--- a/src/org/fox/ttcomics/ComicListFragment.java
+++ b/src/org/fox/ttcomics/ComicListFragment.java
@@ -117,7 +117,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
ImageView thumbnail = (ImageView) v.findViewById(R.id.thumbnail);
if (thumbnail != null) {
- if (thumbnailFile.exists()) {
+ if (m_activity.isStorageAvailable() && thumbnailFile.exists()) {
//
final BitmapFactory.Options options = new BitmapFactory.Options();
@@ -260,7 +260,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
try {
int size = m_activity.getSize(filePath);
- if (size == -1 || fullRescan) {
+ if (m_activity.isStorageWritable() && (size == -1 || fullRescan)) {
CbzComicArchive cba = new CbzComicArchive(filePath);
@@ -345,7 +345,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
String comicsDir = m_prefs.getString("comics_directory", null);
- if (comicsDir != null) {
+ if (comicsDir != null && m_activity.isStorageAvailable()) {
rescanTask.execute(m_baseDirectory.length() > 0 ? m_baseDirectory : comicsDir);
}
}
diff --git a/src/org/fox/ttcomics/CommonActivity.java b/src/org/fox/ttcomics/CommonActivity.java
index 6d65ea1..d7b420f 100644
--- a/src/org/fox/ttcomics/CommonActivity.java
+++ b/src/org/fox/ttcomics/CommonActivity.java
@@ -35,6 +35,9 @@ public class CommonActivity extends FragmentActivity {
protected SyncClient m_syncClient = new SyncClient();
private boolean m_smallScreenMode = true;
+
+ private boolean m_storageAvailable;
+ private boolean m_storageWritable;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -47,6 +50,18 @@ public class CommonActivity extends FragmentActivity {
public void onResume() {
super.onResume();
+ String state = Environment.getExternalStorageState();
+
+ if (Environment.MEDIA_MOUNTED.equals(state)) {
+ m_storageAvailable = true;
+ } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
+ m_storageAvailable = true;
+ m_storageWritable = false;
+ } else {
+ m_storageAvailable = false;
+ m_storageWritable = false;
+ }
+
if (m_prefs.getBoolean("use_position_sync", false)) {
String googleAccount = getGoogleAccount();
@@ -270,4 +285,12 @@ public class CommonActivity extends FragmentActivity {
}
}
}
+
+ public boolean isStorageAvailable() {
+ return m_storageAvailable;
+ }
+
+ public boolean isStorageWritable() {
+ return m_storageWritable;
+ }
}