mirror of
https://github.com/AntennaPod/AntennaPod.git
synced 2025-02-02 19:56:59 +01:00
Implemented automatic update preference
This commit is contained in:
parent
2163049305
commit
a05edcb0a4
@ -83,6 +83,11 @@
|
||||
</intent-filter>
|
||||
<meta-data android:resource="@xml/player_widget_info" android:name="android.appwidget.provider"/>
|
||||
</receiver>
|
||||
<receiver android:name=".receiver.FeedUpdateReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="de.podfetcher.feedupdatereceiver.refreshFeeds"/>
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
|
||||
</manifest>
|
@ -1,11 +1,22 @@
|
||||
package de.podfetcher;
|
||||
|
||||
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.podfetcher.asynctask.FeedImageLoader;
|
||||
import de.podfetcher.feed.FeedManager;
|
||||
import de.podfetcher.receiver.FeedUpdateReceiver;
|
||||
|
||||
public class PodcastApp extends Application implements
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
public class PodcastApp extends Application {
|
||||
private static final String TAG = "PodcastApp";
|
||||
public static final String PREF_NAME = "PodfetcherPrefs";
|
||||
|
||||
@ -24,7 +35,9 @@ public class PodcastApp extends Application {
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
singleton = this;
|
||||
|
||||
SharedPreferences prefs = PreferenceManager
|
||||
.getDefaultSharedPreferences(this);
|
||||
prefs.registerOnSharedPreferenceChangeListener(this);
|
||||
FeedManager manager = FeedManager.getInstance();
|
||||
manager.loadDBData(getApplicationContext());
|
||||
}
|
||||
@ -36,4 +49,26 @@ public class PodcastApp extends Application {
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
22
src/de/podfetcher/receiver/FeedUpdateReceiver.java
Normal file
22
src/de/podfetcher/receiver/FeedUpdateReceiver.java
Normal file
@ -0,0 +1,22 @@
|
||||
package de.podfetcher.receiver;
|
||||
|
||||
import de.podfetcher.feed.FeedManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
/** Refreshes all feeds when it receives an intent */
|
||||
public class FeedUpdateReceiver extends BroadcastReceiver {
|
||||
private static final String TAG = "FeedUpdateReceiver";
|
||||
public static final String ACTION_REFRESH_FEEDS = "de.podfetcher.feedupdatereceiver.refreshFeeds";
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(ACTION_REFRESH_FEEDS)) {
|
||||
Log.d(TAG, "Received intent");
|
||||
FeedManager.getInstance().refreshAllFeeds(context);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user