diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-07-13 12:23:47 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-07-13 12:23:47 +0200 |
commit | ba2d2afbbc6cbb79fc75493703425b5d6d040530 (patch) | |
tree | e731a1209160e8224679cb238c0a964c3e757590 /src/de/danoeh/antennapod/PodcastApp.java | |
parent | 1ae00a0f2531fdb05a44877dda88ee2300e3ffec (diff) | |
download | AntennaPod-ba2d2afbbc6cbb79fc75493703425b5d6d040530.zip |
Renamed package and application
Diffstat (limited to 'src/de/danoeh/antennapod/PodcastApp.java')
-rw-r--r-- | src/de/danoeh/antennapod/PodcastApp.java | 77 |
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"); + } + } + } +} |