summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/PodcastApp.java
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-07-13 12:23:47 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-07-13 12:23:47 +0200
commitba2d2afbbc6cbb79fc75493703425b5d6d040530 (patch)
treee731a1209160e8224679cb238c0a964c3e757590 /src/de/danoeh/antennapod/PodcastApp.java
parent1ae00a0f2531fdb05a44877dda88ee2300e3ffec (diff)
downloadAntennaPod-ba2d2afbbc6cbb79fc75493703425b5d6d040530.zip
Renamed package and application
Diffstat (limited to 'src/de/danoeh/antennapod/PodcastApp.java')
-rw-r--r--src/de/danoeh/antennapod/PodcastApp.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/PodcastApp.java b/src/de/danoeh/antennapod/PodcastApp.java
new file mode 100644
index 000000000..a82356663
--- /dev/null
+++ b/src/de/danoeh/antennapod/PodcastApp.java
@@ -0,0 +1,77 @@
+package de.danoeh.antennapod;
+
+import java.util.concurrent.TimeUnit;
+
+import android.app.AlarmManager;
+import android.app.Application;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import de.danoeh.antennapod.asynctask.FeedImageLoader;
+import de.danoeh.antennapod.feed.FeedManager;
+import de.danoeh.antennapod.receiver.FeedUpdateReceiver;
+import de.danoeh.antennapod.util.StorageUtils;
+
+public class PodcastApp extends Application implements
+ SharedPreferences.OnSharedPreferenceChangeListener {
+
+ private static final String TAG = "PodcastApp";
+ public static final String PREF_NAME = "AntennapodPrefs";
+
+ public static final String PREF_PAUSE_ON_HEADSET_DISCONNECT = "prefPauseOnHeadsetDisconnect";
+ public static final String PREF_FOLLOW_QUEUE = "prefFollowQueue";
+ public static final String PREF_DOWNLOAD_MEDIA_ON_WIFI_ONLY = "prefDownloadMediaOnWifiOnly";
+ public static final String PREF_UPDATE_INTERVALL = "prefAutoUpdateIntervall";
+ public static final String PREF_MOBILE_UPDATE = "prefMobileUpdate";
+
+ private static PodcastApp singleton;
+
+ public static PodcastApp getInstance() {
+ return singleton;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ singleton = this;
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(this);
+ prefs.registerOnSharedPreferenceChangeListener(this);
+ if (StorageUtils.storageAvailable()) {
+ FeedManager manager = FeedManager.getInstance();
+ manager.loadDBData(getApplicationContext());
+ }
+ }
+
+ @Override
+ public void onLowMemory() {
+ super.onLowMemory();
+ Log.w(TAG, "Received onLowOnMemory warning. Cleaning image cache...");
+ FeedImageLoader.getInstance().wipeImageCache();
+ }
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+ String key) {
+ Log.d(TAG, "Registered change of application preferences");
+ if (key.equals(PREF_UPDATE_INTERVALL)) {
+ AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
+ int hours = Integer.parseInt(sharedPreferences.getString(
+ PREF_UPDATE_INTERVALL, "0"));
+ PendingIntent updateIntent = PendingIntent.getBroadcast(this, 0,
+ new Intent(FeedUpdateReceiver.ACTION_REFRESH_FEEDS), 0);
+ alarmManager.cancel(updateIntent);
+ if (hours != 0) {
+ long newIntervall = TimeUnit.HOURS.toMillis(hours);
+ alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
+ newIntervall, newIntervall, updateIntent);
+ Log.d(TAG, "Changed alarm to new intervall");
+ } else {
+ Log.d(TAG, "Automatic update was deactivated");
+ }
+ }
+ }
+}