Add prompt logic in mobile feed refresh (#5462)

This commit is contained in:
RafaelBo 2021-10-13 22:28:46 +02:00 committed by GitHub
parent 5d01b80b9d
commit 66250bebea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 3 deletions

View File

@ -1,9 +1,10 @@
package de.danoeh.antennapod.core.util.download;
import android.content.Context;
import androidx.annotation.NonNull;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.work.Constraints;
import androidx.work.Data;
import androidx.work.ExistingPeriodicWorkPolicy;
@ -17,6 +18,7 @@ import java.util.Arrays;
import java.util.Calendar;
import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.FeedUpdateWorker;
import de.danoeh.antennapod.core.storage.DBTasks;
@ -70,7 +72,7 @@ public class AutoUpdateManager {
Log.d(TAG, "Restarting update alarm.");
Calendar now = Calendar.getInstance();
Calendar alarm = (Calendar)now.clone();
Calendar alarm = (Calendar) now.clone();
alarm.set(Calendar.HOUR_OF_DAY, hoursOfDay);
alarm.set(Calendar.MINUTE, minute);
if (alarm.before(now) || alarm.equals(now)) {
@ -121,8 +123,24 @@ public class AutoUpdateManager {
Log.d(TAG, "Run auto update immediately in background.");
if (!NetworkUtils.networkAvailable()) {
Log.d(TAG, "Ignoring: No network connection.");
return;
} else if (NetworkUtils.isEpisodeDownloadAllowed()) {
startRefreshAllFeeds(context);
} else {
confirmMobileAllFeedsRefresh(context);
}
}
private static void confirmMobileAllFeedsRefresh(final Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setTitle(R.string.feed_refresh_title)
.setMessage(R.string.confirm_mobile_feed_refresh_dialog_message)
.setPositiveButton(R.string.yes,
(dialog, which) -> startRefreshAllFeeds(context))
.setNegativeButton(R.string.no, null);
builder.show();
}
private static void startRefreshAllFeeds(final Context context) {
new Thread(() -> DBTasks.refreshAllFeeds(
context.getApplicationContext(), true), "ManualRefreshAllFeeds").start();
}

View File

@ -188,6 +188,7 @@
<item quantity="other">%d subscriptions updated.</item>
</plurals>
<string name="add_to_folder">Add to folder</string>
<string name="confirm_mobile_feed_refresh_dialog_message">Downloading episodes over mobile data connection is disabled in the settings.\n\nDo you still want to refresh all podcasts over mobile data?</string>
<!-- actions on feeditems -->
<string name="download_label">Download</string>