From 509423653d99169a3ef512d56633e8dcee775343 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Fri, 23 Nov 2012 19:42:51 +0100 Subject: Added preference for setting the application theme --- src/de/danoeh/antennapod/PodcastApp.java | 26 ++++++++++++++++++++++ .../antennapod/activity/AddFeedActivity.java | 2 ++ .../antennapod/activity/DownloadActivity.java | 2 ++ .../antennapod/activity/DownloadLogActivity.java | 2 ++ .../antennapod/activity/FeedInfoActivity.java | 2 ++ .../antennapod/activity/FeedItemlistActivity.java | 2 ++ .../antennapod/activity/FlattrAuthActivity.java | 2 ++ .../antennapod/activity/ItemviewActivity.java | 2 ++ .../danoeh/antennapod/activity/MainActivity.java | 2 ++ .../antennapod/activity/MediaplayerActivity.java | 2 ++ .../activity/MiroGuideCategoryActivity.java | 2 ++ .../activity/MiroGuideChannelViewActivity.java | 22 +++++++++++++----- .../antennapod/activity/MiroGuideMainActivity.java | 2 ++ .../activity/MiroGuideSearchActivity.java | 2 ++ .../activity/OpmlFeedChooserActivity.java | 2 ++ .../antennapod/activity/OpmlImportActivity.java | 3 +++ .../activity/PlaybackHistoryActivity.java | 3 +++ .../antennapod/activity/PreferenceActivity.java | 15 +++++++++++++ .../danoeh/antennapod/activity/SearchActivity.java | 3 +++ .../antennapod/activity/StorageErrorActivity.java | 3 +++ .../antennapod/activity/VideoplayerActivity.java | 3 +++ 21 files changed, 99 insertions(+), 5 deletions(-) (limited to 'src/de/danoeh') diff --git a/src/de/danoeh/antennapod/PodcastApp.java b/src/de/danoeh/antennapod/PodcastApp.java index f4d238c60..e59889ddd 100644 --- a/src/de/danoeh/antennapod/PodcastApp.java +++ b/src/de/danoeh/antennapod/PodcastApp.java @@ -11,6 +11,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; +import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.util.Log; import de.danoeh.antennapod.activity.OpmlImportActivity; @@ -35,6 +36,7 @@ public class PodcastApp extends Application implements public static final String PREF_AUTO_QUEUE = "prefAutoQueue"; public static final String PREF_DISPLAY_ONLY_EPISODES = "prefDisplayOnlyEpisodes"; public static final String PREF_AUTO_DELETE = "prefAutoDelete"; + public static final String PREF_THEME = "prefTheme"; private static float LOGICAL_DENSITY; @@ -43,6 +45,9 @@ public class PodcastApp extends Application implements private boolean displayOnlyEpisodes; private static long currentlyPlayingMediaId; + + /** Resource id of the currently selected theme. */ + private static int theme; public static PodcastApp getInstance() { return singleton; @@ -60,6 +65,7 @@ public class PodcastApp extends Application implements currentlyPlayingMediaId = prefs.getLong( PlaybackService.PREF_CURRENTLY_PLAYING_MEDIA, PlaybackService.NO_MEDIA_PLAYING); + readThemeValue(); createImportDirectory(); createNoMediaFile(); prefs.registerOnSharedPreferenceChangeListener(this); @@ -162,6 +168,8 @@ public class PodcastApp extends Application implements if (id != currentlyPlayingMediaId) { currentlyPlayingMediaId = id; } + } else if (key.equals(PREF_THEME)) { + readThemeValue(); } } @@ -182,4 +190,22 @@ public class PodcastApp extends Application implements || (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE; } + + public static int getThemeResourceId() { + return theme; + } + + /** Read value of prefTheme and determine the correct resource id. */ + private void readThemeValue() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + int prefTheme = Integer.parseInt(prefs.getString(PREF_THEME, "0")); + switch (prefTheme) { + case 0: + theme = R.style.Theme_AntennaPod_Light; + break; + case 1: + theme = R.style.Theme_AntennaPod_Dark; + break; + } + } } diff --git a/src/de/danoeh/antennapod/activity/AddFeedActivity.java b/src/de/danoeh/antennapod/activity/AddFeedActivity.java index 5d39659b6..b985e505c 100644 --- a/src/de/danoeh/antennapod/activity/AddFeedActivity.java +++ b/src/de/danoeh/antennapod/activity/AddFeedActivity.java @@ -18,6 +18,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.feed.Feed; import de.danoeh.antennapod.storage.DownloadRequestException; @@ -44,6 +45,7 @@ public class AddFeedActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); getSupportActionBar().setDisplayHomeAsUpEnabled(true); StorageUtils.checkStorageAvailability(this); setContentView(R.layout.addfeed); diff --git a/src/de/danoeh/antennapod/activity/DownloadActivity.java b/src/de/danoeh/antennapod/activity/DownloadActivity.java index fc466f7c4..ec75aba9f 100644 --- a/src/de/danoeh/antennapod/activity/DownloadActivity.java +++ b/src/de/danoeh/antennapod/activity/DownloadActivity.java @@ -22,6 +22,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.DownloadlistAdapter; import de.danoeh.antennapod.asynctask.DownloadStatus; @@ -52,6 +53,7 @@ public class DownloadActivity extends SherlockListActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); if (AppConfig.DEBUG) Log.d(TAG, "Creating Activity"); requester = DownloadRequester.getInstance(); diff --git a/src/de/danoeh/antennapod/activity/DownloadLogActivity.java b/src/de/danoeh/antennapod/activity/DownloadLogActivity.java index 2c19b5649..27ff17970 100644 --- a/src/de/danoeh/antennapod/activity/DownloadLogActivity.java +++ b/src/de/danoeh/antennapod/activity/DownloadLogActivity.java @@ -10,6 +10,7 @@ import com.actionbarsherlock.app.SherlockListActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.adapter.DownloadLogAdapter; import de.danoeh.antennapod.feed.FeedManager; @@ -26,6 +27,7 @@ public class DownloadLogActivity extends SherlockListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); manager = FeedManager.getInstance(); dla = new DownloadLogAdapter(this, 0, manager.getDownloadLog()); diff --git a/src/de/danoeh/antennapod/activity/FeedInfoActivity.java b/src/de/danoeh/antennapod/activity/FeedInfoActivity.java index 36d3844a5..37f2c5041 100644 --- a/src/de/danoeh/antennapod/activity/FeedInfoActivity.java +++ b/src/de/danoeh/antennapod/activity/FeedInfoActivity.java @@ -11,6 +11,7 @@ import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.asynctask.FeedImageLoader; import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator; @@ -37,6 +38,7 @@ public class FeedInfoActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); setContentView(R.layout.feedinfo); getSupportActionBar().setDisplayHomeAsUpEnabled(true); long feedId = getIntent().getLongExtra(EXTRA_FEED_ID, -1); diff --git a/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java b/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java index eca6cb003..1382e72a4 100644 --- a/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java +++ b/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java @@ -15,6 +15,7 @@ import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.Window; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.asynctask.FeedRemover; import de.danoeh.antennapod.dialog.ConfirmationDialog; @@ -42,6 +43,7 @@ public class FeedItemlistActivity extends SherlockFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); StorageUtils.checkStorageAvailability(this); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); diff --git a/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java b/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java index 730efb8ac..0773e1178 100644 --- a/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java +++ b/src/de/danoeh/antennapod/activity/FlattrAuthActivity.java @@ -17,6 +17,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.util.flattr.FlattrUtils; @@ -36,6 +37,7 @@ public class FlattrAuthActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); singleton = this; authSuccessful = false; if (AppConfig.DEBUG) Log.d(TAG, "Activity created"); diff --git a/src/de/danoeh/antennapod/activity/ItemviewActivity.java b/src/de/danoeh/antennapod/activity/ItemviewActivity.java index c651cdaa7..b65ee26f1 100644 --- a/src/de/danoeh/antennapod/activity/ItemviewActivity.java +++ b/src/de/danoeh/antennapod/activity/ItemviewActivity.java @@ -16,6 +16,7 @@ import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.Window; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator; import de.danoeh.antennapod.feed.Feed; @@ -42,6 +43,7 @@ public class ItemviewActivity extends SherlockFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); StorageUtils.checkStorageAvailability(this); manager = FeedManager.getInstance(); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); diff --git a/src/de/danoeh/antennapod/activity/MainActivity.java b/src/de/danoeh/antennapod/activity/MainActivity.java index 93849aa9b..c39a4fae2 100644 --- a/src/de/danoeh/antennapod/activity/MainActivity.java +++ b/src/de/danoeh/antennapod/activity/MainActivity.java @@ -20,6 +20,7 @@ import com.actionbarsherlock.view.Window; import com.viewpagerindicator.TabPageIndicator; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.feed.FeedManager; import de.danoeh.antennapod.fragment.ExternalPlayerFragment; @@ -46,6 +47,7 @@ public class MainActivity extends SherlockFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); StorageUtils.checkStorageAvailability(this); manager = FeedManager.getInstance(); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); diff --git a/src/de/danoeh/antennapod/activity/MediaplayerActivity.java b/src/de/danoeh/antennapod/activity/MediaplayerActivity.java index 0e7ddc479..bbbf03cfc 100644 --- a/src/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/src/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -18,6 +18,7 @@ import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator; import de.danoeh.antennapod.dialog.TimeDialog; @@ -138,6 +139,7 @@ public abstract class MediaplayerActivity extends SherlockFragmentActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); if (AppConfig.DEBUG) Log.d(TAG, "Creating Activity"); StorageUtils.checkStorageAvailability(this); diff --git a/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java index 9a799430c..3880ce51c 100644 --- a/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java +++ b/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java @@ -12,6 +12,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.viewpagerindicator.TabPageIndicator; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.fragment.MiroGuideChannellistFragment; @@ -34,6 +35,7 @@ public class MiroGuideCategoryActivity extends SherlockFragmentActivity { @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); + setTheme(PodcastApp.getThemeResourceId()); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setContentView(R.layout.miroguide_category); diff --git a/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java index 11e4a7803..f9bb821df 100644 --- a/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java +++ b/src/de/danoeh/antennapod/activity/MiroGuideChannelViewActivity.java @@ -6,6 +6,7 @@ import android.annotation.SuppressLint; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.View; @@ -21,6 +22,7 @@ import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.MiroGuideItemlistAdapter; import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator; @@ -62,6 +64,7 @@ public class MiroGuideChannelViewActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setContentView(R.layout.miroguide_channelview); @@ -101,6 +104,7 @@ public class MiroGuideChannelViewActivity extends SherlockActivity { return null; } + @SuppressLint("NewApi") @Override protected void onPostExecute(Void result) { if (AppConfig.DEBUG) @@ -115,7 +119,9 @@ public class MiroGuideChannelViewActivity extends SherlockActivity { listEntries.setAdapter(listAdapter); progLoading.setVisibility(View.GONE); layoutContent.setVisibility(View.VISIBLE); - invalidateOptionsMenu(); + if (Build.VERSION.SDK_INT >= 11) { + invalidateOptionsMenu(); + } } else { finish(); } @@ -145,6 +151,7 @@ public class MiroGuideChannelViewActivity extends SherlockActivity { return true; } + @SuppressLint("NewApi") @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -157,16 +164,21 @@ public class MiroGuideChannelViewActivity extends SherlockActivity { return true; case R.id.add_feed: try { - DownloadRequester.getInstance().downloadFeed(this, - new Feed(channel.getDownloadUrl(), new Date(), channel.getName())); + DownloadRequester.getInstance().downloadFeed( + this, + new Feed(channel.getDownloadUrl(), new Date(), channel + .getName())); } catch (DownloadRequestException e) { e.printStackTrace(); - DownloadRequestErrorDialogCreator.newRequestErrorDialog(this, e.getMessage()); + DownloadRequestErrorDialogCreator.newRequestErrorDialog(this, + e.getMessage()); } Toast toast = Toast.makeText(this, R.string.miro_feed_added, Toast.LENGTH_LONG); toast.show(); - invalidateOptionsMenu(); + if (Build.VERSION.SDK_INT >= 11) { + invalidateOptionsMenu(); + } return true; default: return false; diff --git a/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java index 8cc70a74b..af64a4750 100644 --- a/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java +++ b/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java @@ -15,6 +15,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.miroguide.conn.MiroGuideException; import de.danoeh.antennapod.miroguide.conn.MiroGuideService; @@ -34,6 +35,7 @@ public class MiroGuideMainActivity extends SherlockListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setContentView(R.layout.miroguide_categorylist); diff --git a/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java index 240a99395..c27fc1d49 100644 --- a/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java +++ b/src/de/danoeh/antennapod/activity/MiroGuideSearchActivity.java @@ -11,6 +11,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.fragment.MiroGuideChannellistFragment; @@ -26,6 +27,7 @@ public class MiroGuideSearchActivity extends SherlockFragmentActivity { @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); + setTheme(PodcastApp.getThemeResourceId()); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setContentView(R.layout.miroguidesearch); } diff --git a/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java b/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java index deca1f2d5..7838e2dc1 100644 --- a/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java +++ b/src/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java @@ -16,6 +16,7 @@ import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.opml.OpmlElement; @@ -36,6 +37,7 @@ public class OpmlFeedChooserActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); setContentView(R.layout.opml_selection); butConfirm = (Button) findViewById(R.id.butConfirm); diff --git a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java index 74b59cc72..e1f026be2 100644 --- a/src/de/danoeh/antennapod/activity/OpmlImportActivity.java +++ b/src/de/danoeh/antennapod/activity/OpmlImportActivity.java @@ -19,6 +19,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.asynctask.OpmlFeedQueuer; import de.danoeh.antennapod.asynctask.OpmlImportWorker; @@ -42,6 +43,8 @@ public class OpmlImportActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); setContentView(R.layout.opml_import); diff --git a/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java b/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java index 82cff51de..86fff9d71 100644 --- a/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java +++ b/src/de/danoeh/antennapod/activity/PlaybackHistoryActivity.java @@ -10,6 +10,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.feed.FeedManager; import de.danoeh.antennapod.fragment.PlaybackHistoryFragment; @@ -44,6 +45,8 @@ public class PlaybackHistoryActivity extends SherlockFragmentActivity { @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); + setTheme(PodcastApp.getThemeResourceId()); + if (AppConfig.DEBUG) Log.d(TAG, "Activity created"); getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/src/de/danoeh/antennapod/activity/PreferenceActivity.java b/src/de/danoeh/antennapod/activity/PreferenceActivity.java index 78d865da5..4e94ff074 100644 --- a/src/de/danoeh/antennapod/activity/PreferenceActivity.java +++ b/src/de/danoeh/antennapod/activity/PreferenceActivity.java @@ -3,12 +3,14 @@ package de.danoeh.antennapod.activity; import android.content.Intent; import android.os.Bundle; import android.preference.Preference; +import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import com.actionbarsherlock.app.SherlockPreferenceActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.asynctask.FlattrClickWorker; import de.danoeh.antennapod.asynctask.OpmlExportWorker; @@ -29,6 +31,8 @@ public class PreferenceActivity extends SherlockPreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); addPreferencesFromResource(R.xml.preferences); findPreference(PREF_FLATTR_THIS_APP).setOnPreferenceClickListener( @@ -79,6 +83,17 @@ public class PreferenceActivity extends SherlockPreferenceActivity { return true; } }); + findPreference(PodcastApp.PREF_THEME).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + Intent i = getIntent(); + i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); + finish(); + startActivity(i); + return true; + } + }); } diff --git a/src/de/danoeh/antennapod/activity/SearchActivity.java b/src/de/danoeh/antennapod/activity/SearchActivity.java index 506bedad5..c847d014d 100644 --- a/src/de/danoeh/antennapod/activity/SearchActivity.java +++ b/src/de/danoeh/antennapod/activity/SearchActivity.java @@ -16,6 +16,7 @@ import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.SearchlistAdapter; import de.danoeh.antennapod.feed.Feed; @@ -43,6 +44,8 @@ public class SearchActivity extends SherlockListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); setContentView(R.layout.searchlist); txtvStatus = (TextView) findViewById(android.R.id.empty); diff --git a/src/de/danoeh/antennapod/activity/StorageErrorActivity.java b/src/de/danoeh/antennapod/activity/StorageErrorActivity.java index e5c7bd40f..90e684828 100644 --- a/src/de/danoeh/antennapod/activity/StorageErrorActivity.java +++ b/src/de/danoeh/antennapod/activity/StorageErrorActivity.java @@ -10,6 +10,7 @@ import android.util.Log; import com.actionbarsherlock.app.SherlockActivity; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.util.StorageUtils; @@ -20,6 +21,8 @@ public class StorageErrorActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setTheme(PodcastApp.getThemeResourceId()); + setContentView(R.layout.storage_error); } diff --git a/src/de/danoeh/antennapod/activity/VideoplayerActivity.java b/src/de/danoeh/antennapod/activity/VideoplayerActivity.java index bb07437b5..b9e207c52 100644 --- a/src/de/danoeh/antennapod/activity/VideoplayerActivity.java +++ b/src/de/danoeh/antennapod/activity/VideoplayerActivity.java @@ -18,6 +18,7 @@ import android.widget.VideoView; import com.actionbarsherlock.view.Window; import de.danoeh.antennapod.AppConfig; +import de.danoeh.antennapod.PodcastApp; import de.danoeh.antennapod.R; import de.danoeh.antennapod.service.PlaybackService; import de.danoeh.antennapod.service.PlayerStatus; @@ -39,6 +40,8 @@ public class VideoplayerActivity extends MediaplayerActivity implements @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); + setTheme(PodcastApp.getThemeResourceId()); + super.onCreate(savedInstanceState); } -- cgit v1.2.3