From d1c73645c4829f6e2f33e355ef9120887944b3de Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Mon, 9 Jul 2012 19:52:47 +0200 Subject: Added error activity if no external storage is available --- src/de/podfetcher/activity/AddFeedActivity.java | 9 ++++ .../podfetcher/activity/FeedItemlistActivity.java | 32 +++++++++----- src/de/podfetcher/activity/ItemviewActivity.java | 12 ++++- .../podfetcher/activity/MediaplayerActivity.java | 3 ++ src/de/podfetcher/activity/PodfetcherActivity.java | 3 ++ .../podfetcher/activity/StorageErrorActivity.java | 51 ++++++++++++++++++++++ 6 files changed, 98 insertions(+), 12 deletions(-) create mode 100644 src/de/podfetcher/activity/StorageErrorActivity.java (limited to 'src/de/podfetcher/activity') 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(); @@ -96,6 +98,13 @@ public class AddFeedActivity extends SherlockActivity { }); } + @Override + protected void onResume() { + super.onResume(); + StorageUtils.checkStorageAvailability(this); + + } + @Override protected void onStop() { super.onStop(); 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,12 +40,20 @@ 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(); populateUI(); } + @Override + protected void onResume() { + super.onResume(); + StorageUtils.checkStorageAvailability(this); + + } + @Override public void onStop() { super.onStop(); @@ -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"); + } + } + } + + }; + +} -- cgit v1.2.3