summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
Diffstat (limited to 'src/de')
-rw-r--r--src/de/podfetcher/PodcastApp.java12
-rw-r--r--src/de/podfetcher/activity/AddFeedActivity.java9
-rw-r--r--src/de/podfetcher/activity/FeedItemlistActivity.java32
-rw-r--r--src/de/podfetcher/activity/ItemviewActivity.java12
-rw-r--r--src/de/podfetcher/activity/MediaplayerActivity.java3
-rw-r--r--src/de/podfetcher/activity/PodfetcherActivity.java3
-rw-r--r--src/de/podfetcher/activity/StorageErrorActivity.java51
-rw-r--r--src/de/podfetcher/util/StorageUtils.java28
8 files changed, 133 insertions, 17 deletions
diff --git a/src/de/podfetcher/PodcastApp.java b/src/de/podfetcher/PodcastApp.java
index 4ecc553ba..b8175f77c 100644
--- a/src/de/podfetcher/PodcastApp.java
+++ b/src/de/podfetcher/PodcastApp.java
@@ -13,6 +13,7 @@ import android.util.Log;
import de.podfetcher.asynctask.FeedImageLoader;
import de.podfetcher.feed.FeedManager;
import de.podfetcher.receiver.FeedUpdateReceiver;
+import de.podfetcher.util.StorageUtils;
public class PodcastApp extends Application implements
SharedPreferences.OnSharedPreferenceChangeListener {
@@ -39,8 +40,10 @@ public class PodcastApp extends Application implements
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
- FeedManager manager = FeedManager.getInstance();
- manager.loadDBData(getApplicationContext());
+ if (StorageUtils.storageAvailable()) {
+ FeedManager manager = FeedManager.getInstance();
+ manager.loadDBData(getApplicationContext());
+ }
}
@Override
@@ -63,9 +66,8 @@ public class PodcastApp extends Application implements
alarmManager.cancel(updateIntent);
if (hours != 0) {
long newIntervall = TimeUnit.HOURS.toMillis(hours);
- alarmManager.setRepeating(
- AlarmManager.RTC_WAKEUP, newIntervall,
- newIntervall, updateIntent);
+ alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
+ newIntervall, newIntervall, updateIntent);
Log.d(TAG, "Changed alarm to new intervall");
} else {
Log.d(TAG, "Automatic update was deactivated");
diff --git a/src/de/podfetcher/activity/AddFeedActivity.java b/src/de/podfetcher/activity/AddFeedActivity.java
index 83fb073d0..994a8f102 100644
--- a/src/de/podfetcher/activity/AddFeedActivity.java
+++ b/src/de/podfetcher/activity/AddFeedActivity.java
@@ -20,6 +20,7 @@ import de.podfetcher.feed.FeedManager;
import de.podfetcher.storage.DownloadRequester;
import de.podfetcher.util.ConnectionTester;
import de.podfetcher.util.DownloadError;
+import de.podfetcher.util.StorageUtils;
import de.podfetcher.util.URLChecker;
import de.podfetcher.service.DownloadService;
@@ -52,6 +53,7 @@ public class AddFeedActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ StorageUtils.checkStorageAvailability(this);
setContentView(R.layout.addfeed);
requester = DownloadRequester.getInstance();
@@ -97,6 +99,13 @@ public class AddFeedActivity extends SherlockActivity {
}
@Override
+ protected void onResume() {
+ super.onResume();
+ StorageUtils.checkStorageAvailability(this);
+
+ }
+
+ @Override
protected void onStop() {
super.onStop();
Log.d(TAG, "Stopping Activity");
diff --git a/src/de/podfetcher/activity/FeedItemlistActivity.java b/src/de/podfetcher/activity/FeedItemlistActivity.java
index e4642eb46..e6e673ac6 100644
--- a/src/de/podfetcher/activity/FeedItemlistActivity.java
+++ b/src/de/podfetcher/activity/FeedItemlistActivity.java
@@ -1,6 +1,5 @@
package de.podfetcher.activity;
-
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
@@ -21,6 +20,7 @@ import de.podfetcher.feed.FeedManager;
import de.podfetcher.fragment.ItemlistFragment;
import de.podfetcher.fragment.FeedlistFragment;
import de.podfetcher.util.FeedMenuHandler;
+import de.podfetcher.util.StorageUtils;
/** Displays a List of FeedItems */
public class FeedItemlistActivity extends SherlockFragmentActivity {
@@ -35,30 +35,40 @@ public class FeedItemlistActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ StorageUtils.checkStorageAvailability(this);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.feeditemlist_activity);
-
+
manager = FeedManager.getInstance();
- long feedId = getIntent().getLongExtra(FeedlistFragment.EXTRA_SELECTED_FEED, -1);
- if(feedId == -1) Log.e(TAG, "Received invalid feed selection.");
+ long feedId = getIntent().getLongExtra(
+ FeedlistFragment.EXTRA_SELECTED_FEED, -1);
+ if (feedId == -1)
+ Log.e(TAG, "Received invalid feed selection.");
feed = manager.getFeed(feedId);
setTitle(feed.getTitle());
-
+
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fT = fragmentManager.beginTransaction();
-
+
filf = ItemlistFragment.newInstance(feed.getId());
fT.add(R.id.feeditemlistFragment, filf);
fT.commit();
-
+
}
-
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ StorageUtils.checkStorageAvailability(this);
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- return FeedMenuHandler.onCreateOptionsMenu(new MenuInflater(this), menu);
+ return FeedMenuHandler
+ .onCreateOptionsMenu(new MenuInflater(this), menu);
}
@Override
@@ -71,7 +81,7 @@ public class FeedItemlistActivity extends SherlockFragmentActivity {
if (FeedMenuHandler.onOptionsItemClicked(this, item, feed)) {
filf.getListAdapter().notifyDataSetChanged();
} else {
- switch(item.getItemId()) {
+ switch (item.getItemId()) {
case R.id.remove_item:
FeedRemover remover = new FeedRemover(this) {
@Override
@@ -88,5 +98,5 @@ public class FeedItemlistActivity extends SherlockFragmentActivity {
}
return true;
}
-
+
}
diff --git a/src/de/podfetcher/activity/ItemviewActivity.java b/src/de/podfetcher/activity/ItemviewActivity.java
index 72c3fecae..f98196a46 100644
--- a/src/de/podfetcher/activity/ItemviewActivity.java
+++ b/src/de/podfetcher/activity/ItemviewActivity.java
@@ -24,6 +24,7 @@ import de.podfetcher.fragment.FeedlistFragment;
import de.podfetcher.fragment.ItemDescriptionFragment;
import de.podfetcher.fragment.ItemlistFragment;
import de.podfetcher.util.FeedItemMenuHandler;
+import de.podfetcher.util.StorageUtils;
/** Displays a single FeedItem and provides various actions */
public class ItemviewActivity extends SherlockFragmentActivity {
@@ -39,6 +40,7 @@ public class ItemviewActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ StorageUtils.checkStorageAvailability(this);
manager = FeedManager.getInstance();
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
extractFeeditem();
@@ -46,6 +48,13 @@ public class ItemviewActivity extends SherlockFragmentActivity {
}
@Override
+ protected void onResume() {
+ super.onResume();
+ StorageUtils.checkStorageAvailability(this);
+
+ }
+
+ @Override
public void onStop() {
super.onStop();
Log.d(TAG, "Stopping Activity");
@@ -81,7 +90,8 @@ public class ItemviewActivity extends SherlockFragmentActivity {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
- ItemDescriptionFragment fragment = ItemDescriptionFragment.newInstance(item);
+ ItemDescriptionFragment fragment = ItemDescriptionFragment
+ .newInstance(item);
fragmentTransaction.add(R.id.description_fragment, fragment);
fragmentTransaction.commit();
}
diff --git a/src/de/podfetcher/activity/MediaplayerActivity.java b/src/de/podfetcher/activity/MediaplayerActivity.java
index de8028d6f..0afbce1c9 100644
--- a/src/de/podfetcher/activity/MediaplayerActivity.java
+++ b/src/de/podfetcher/activity/MediaplayerActivity.java
@@ -54,6 +54,7 @@ import de.podfetcher.service.PlayerStatus;
import de.podfetcher.util.Converter;
import de.podfetcher.util.DownloadError;
import de.podfetcher.util.MediaPlayerError;
+import de.podfetcher.util.StorageUtils;
public class MediaplayerActivity extends SherlockFragmentActivity implements
SurfaceHolder.Callback {
@@ -131,6 +132,7 @@ public class MediaplayerActivity extends SherlockFragmentActivity implements
protected void onResume() {
super.onResume();
Log.d(TAG, "Resuming Activity");
+ StorageUtils.checkStorageAvailability(this);
bindToService();
}
@@ -170,6 +172,7 @@ public class MediaplayerActivity extends SherlockFragmentActivity implements
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "Creating Activity");
+ StorageUtils.checkStorageAvailability(this);
orientation = getResources().getConfiguration().orientation;
manager = FeedManager.getInstance();
diff --git a/src/de/podfetcher/activity/PodfetcherActivity.java b/src/de/podfetcher/activity/PodfetcherActivity.java
index 4a7bad7e3..7db9b2e5d 100644
--- a/src/de/podfetcher/activity/PodfetcherActivity.java
+++ b/src/de/podfetcher/activity/PodfetcherActivity.java
@@ -34,6 +34,7 @@ import de.podfetcher.fragment.QueueFragment;
import de.podfetcher.fragment.UnreadItemlistFragment;
import de.podfetcher.service.DownloadService;
import de.podfetcher.storage.DownloadRequester;
+import de.podfetcher.util.StorageUtils;
public class PodfetcherActivity extends SherlockFragmentActivity {
private static final String TAG = "PodfetcherActivity";
@@ -46,6 +47,7 @@ public class PodfetcherActivity extends SherlockFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ StorageUtils.checkStorageAvailability(this);
manager = FeedManager.getInstance();
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
@@ -69,6 +71,7 @@ public class PodfetcherActivity extends SherlockFragmentActivity {
@Override
protected void onResume() {
super.onResume();
+ StorageUtils.checkStorageAvailability(this);
updateProgressBarVisibility();
IntentFilter filter = new IntentFilter();
filter.addAction(DownloadService.ACTION_DOWNLOAD_HANDLED);
diff --git a/src/de/podfetcher/activity/StorageErrorActivity.java b/src/de/podfetcher/activity/StorageErrorActivity.java
new file mode 100644
index 000000000..830f03902
--- /dev/null
+++ b/src/de/podfetcher/activity/StorageErrorActivity.java
@@ -0,0 +1,51 @@
+package de.podfetcher.activity;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.actionbarsherlock.app.SherlockActivity;
+
+import de.podfetcher.R;
+
+public class StorageErrorActivity extends SherlockActivity {
+ private static final String TAG = "StorageErrorActivity";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.storage_error);
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ unregisterReceiver(mediaUpdate);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ registerReceiver(mediaUpdate, new IntentFilter(Intent.ACTION_MEDIA_MOUNTED));
+ }
+
+ private BroadcastReceiver mediaUpdate = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent.getAction().equals(Intent.ACTION_MEDIA_MOUNTED)) {
+ if (intent.getBooleanExtra("read-only", true)) {
+ Log.d(TAG, "Media was mounted; Finishing activity");
+ finish();
+ } else {
+ Log.d(TAG, "Media seemed to have been mounted read only");
+ }
+ }
+ }
+
+ };
+
+}
diff --git a/src/de/podfetcher/util/StorageUtils.java b/src/de/podfetcher/util/StorageUtils.java
new file mode 100644
index 000000000..6f2c44e26
--- /dev/null
+++ b/src/de/podfetcher/util/StorageUtils.java
@@ -0,0 +1,28 @@
+package de.podfetcher.util;
+
+import de.podfetcher.activity.StorageErrorActivity;
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Environment;
+
+/** Utility functions for handling storage errors */
+public class StorageUtils {
+ public static boolean storageAvailable() {
+ String state = Environment.getExternalStorageState();
+ return state.equals(Environment.MEDIA_MOUNTED);
+ }
+
+ /**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();
+ if (!storageAvailable) {
+ activity.finish();
+ activity.startActivity(new Intent(activity, StorageErrorActivity.class));
+ }
+ return storageAvailable;
+ }
+}