diff options
author | ByteHamster <info@bytehamster.com> | 2019-07-25 00:38:00 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2019-07-25 00:38:00 +0200 |
commit | be42cc0c7176c056a5b1b7c2b0d16ad6e9850312 (patch) | |
tree | 7c3191c842cbc9e2899b608786e80eee7782ab9d /app | |
parent | 5173dd0118ab6683013c45297c0eb589d0a52a65 (diff) | |
download | AntennaPod-be42cc0c7176c056a5b1b7c2b0d16ad6e9850312.zip |
Refactored mobile updates setting
Diffstat (limited to 'app')
10 files changed, 49 insertions, 17 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AdapterUtils.java b/app/src/main/java/de/danoeh/antennapod/adapter/AdapterUtils.java index 5c58d00f2..315b3a173 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AdapterUtils.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AdapterUtils.java @@ -49,7 +49,7 @@ class AdapterUtils { } else if (!media.isDownloaded()) { if (media.getSize() > 0) { txtvPos.setText(Converter.byteToString(media.getSize())); - } else if(NetworkUtils.isDownloadAllowed() && !media.checkedOnSizeButUnknown()) { + } else if(NetworkUtils.isEpisodeHeadDownloadAllowed() && !media.checkedOnSizeButUnknown()) { txtvPos.setText("{fa-spinner}"); Iconify.addIcons(txtvPos); NetworkUtils.getFeedMediaSizeObservable(media) diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java index 7aa9f8f21..2eff33339 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java @@ -130,7 +130,7 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR holder.txtvDuration.setText(Converter.getDurationStringLong(media.getDuration())); } else if (media.getSize() > 0) { holder.txtvDuration.setText(Converter.byteToString(media.getSize())); - } else if(NetworkUtils.isDownloadAllowed() && !media.checkedOnSizeButUnknown()) { + } else if(NetworkUtils.isEpisodeHeadDownloadAllowed() && !media.checkedOnSizeButUnknown()) { holder.txtvDuration.setText("{fa-spinner}"); Iconify.addIcons(holder.txtvDuration); NetworkUtils.getFeedMediaSizeObservable(media) diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java index d9d54ac15..382abfb32 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java @@ -252,7 +252,7 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap } else { if(media.getSize() > 0) { progressLeft.setText(Converter.byteToString(media.getSize())); - } else if(NetworkUtils.isDownloadAllowed() && !media.checkedOnSizeButUnknown()) { + } else if(NetworkUtils.isEpisodeHeadDownloadAllowed() && !media.checkedOnSizeButUnknown()) { progressLeft.setText("{fa-spinner}"); Iconify.addIcons(progressLeft); NetworkUtils.getFeedMediaSizeObservable(media) diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java index 202a41161..c1559528e 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java @@ -43,7 +43,7 @@ class DownloadActionButton extends ItemActionButton { return; } - if (NetworkUtils.isDownloadAllowed() || MobileDownloadHelper.userAllowedMobileDownloads()) { + if (NetworkUtils.isEpisodeDownloadAllowed() || MobileDownloadHelper.userAllowedMobileDownloads()) { downloadEpisode(context); } else if (MobileDownloadHelper.userChoseAddToQueue() && !isInQueue) { addEpisodeToQueue(context); diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java index f8d2a139e..0d2498b60 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MobileDownloadHelper.java @@ -13,7 +13,7 @@ import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequestException; -class MobileDownloadHelper { +public class MobileDownloadHelper { private static long addToQueueTimestamp; private static long allowMobileDownloadTimestamp; private static final int TEN_MINUTES_IN_MILLIS = 10 * 60 * 1000; @@ -41,6 +41,16 @@ class MobileDownloadHelper { builder.show(); } + public static void confirmMobileStreaming(final Context context, MaterialDialog.SingleButtonCallback onAllowed) { + MaterialDialog.Builder builder = new MaterialDialog.Builder(context) + .title(R.string.confirm_mobile_streaming_dialog_title) + .content(R.string.confirm_mobile_streaming_dialog_message) + .positiveText(R.string.yes) + .onPositive(onAllowed) + .negativeText(R.string.no); + builder.show(); + } + private static void addToQueue(Context context, FeedItem item) { addToQueueTimestamp = System.currentTimeMillis(); DBWriter.addQueueItem(context, item); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index 432ada44e..e43d78ecc 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -35,6 +35,7 @@ import com.bumptech.glide.request.RequestOptions; import com.joanzapata.iconify.Iconify; import com.joanzapata.iconify.widget.IconButton; +import de.danoeh.antennapod.adapter.actionbutton.MobileDownloadHelper; import org.apache.commons.lang3.ArrayUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -248,9 +249,16 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { if (item.hasMedia()) { FeedMedia media = item.getMedia(); - if (!media.isDownloaded()) { - DBTasks.playMedia(getActivity(), media, true, true, true); - ((MainActivity) getActivity()).dismissChildFragment(); + if (!media.isDownloaded()) { // Stream + if (NetworkUtils.isStreamingAllowed()) { + DBTasks.playMedia(getActivity(), media, true, true, true); + ((MainActivity) getActivity()).dismissChildFragment(); + } else { + MobileDownloadHelper.confirmMobileStreaming(getContext(), (dialog, which) -> { + DBTasks.playMedia(getActivity(), media, true, true, true); + ((MainActivity) getActivity()).dismissChildFragment(); + }); + } } else { DBWriter.deleteFeedMediaOfItem(getActivity(), media.getId()); } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AutoDownloadPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AutoDownloadPreferencesFragment.java index bfd94b9a2..6cba798ba 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AutoDownloadPreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/AutoDownloadPreferencesFragment.java @@ -66,7 +66,6 @@ public class AutoDownloadPreferencesFragment extends PreferenceFragmentCompat { findPreference(UserPreferences.PREF_ENABLE_AUTODL_ON_BATTERY).setEnabled(autoDownload); findPreference(UserPreferences.PREF_ENABLE_AUTODL_WIFI_FILTER).setEnabled(autoDownload); findPreference(UserPreferences.PREF_EPISODE_CLEANUP).setEnabled(autoDownload); - findPreference(UserPreferences.PREF_ENABLE_AUTODL_ON_MOBILE).setEnabled(autoDownload); setSelectedNetworksEnabled(autoDownload && UserPreferences.isEnableAutodownloadWifiFilter()); } diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java index 5866f8715..751b6789a 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java @@ -2,11 +2,14 @@ package de.danoeh.antennapod.preferences; import android.content.Context; import android.content.SharedPreferences; +import android.preference.MultiSelectListPreference; import android.preference.PreferenceManager; import de.danoeh.antennapod.BuildConfig; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.util.gui.NotificationUtils; +import java.util.HashSet; + public class PreferenceUpgrader { private static final String PREF_CONFIGURED_VERSION = "configuredVersion"; private static final String PREF_NAME = "PreferenceUpgrader"; @@ -37,7 +40,7 @@ public class PreferenceUpgrader { } if (oldVersion < 1070197) { if (prefs.getBoolean("prefMobileUpdate", false)) { - prefs.edit().putString(UserPreferences.PREF_MOBILE_UPDATE, "everything").apply(); + prefs.edit().putString("prefMobileUpdateAllowed", "everything").apply(); } } if (oldVersion < 1070300) { @@ -47,6 +50,23 @@ public class PreferenceUpgrader { prefs.edit().putString(UserPreferences.PREF_MEDIA_PLAYER, UserPreferences.PREF_MEDIA_PLAYER_EXOPLAYER).apply(); } + + if (prefs.getBoolean("prefEnableAutoDownloadOnMobile", false)) { + UserPreferences.setAllowMobileAutoDownload(true); + } + switch (prefs.getString("prefMobileUpdateAllowed", "images")) { + case "everything": + UserPreferences.setAllowMobileFeedRefresh(true); + UserPreferences.setAllowMobileEpisodeDownload(true); + UserPreferences.setAllowMobileImages(true); + break; + case "images": + UserPreferences.setAllowMobileImages(true); + break; + case "nothing": + UserPreferences.setAllowMobileImages(false); + break; + } } } } diff --git a/app/src/main/res/xml/preferences_autodownload.xml b/app/src/main/res/xml/preferences_autodownload.xml index 0f3d5d024..a4967c839 100644 --- a/app/src/main/res/xml/preferences_autodownload.xml +++ b/app/src/main/res/xml/preferences_autodownload.xml @@ -31,11 +31,6 @@ android:summary="@string/pref_automatic_download_on_battery_sum" android:defaultValue="true"/> <SwitchPreference - android:key="prefEnableAutoDownloadOnMobile" - android:title="@string/pref_autodl_allow_on_mobile_title" - android:summary="@string/pref_autodl_allow_on_mobile_sum" - android:defaultValue="false"/> - <SwitchPreference android:key="prefEnableAutoDownloadWifiFilter" android:title="@string/pref_autodl_wifi_filter_title" android:summary="@string/pref_autodl_wifi_filter_sum"/> diff --git a/app/src/main/res/xml/preferences_network.xml b/app/src/main/res/xml/preferences_network.xml index 59dd0c51b..e418323a9 100644 --- a/app/src/main/res/xml/preferences_network.xml +++ b/app/src/main/res/xml/preferences_network.xml @@ -16,11 +16,11 @@ </PreferenceCategory> <PreferenceCategory android:title="@string/download_pref_details"> - <ListPreference + <MultiSelectListPreference android:defaultValue="images" android:entries="@array/mobile_update_entries" android:entryValues="@array/mobile_update_values" - android:key="prefMobileUpdateAllowed" + android:key="prefMobileUpdateTypes" android:summary="@string/pref_mobileUpdate_sum" android:title="@string/pref_mobileUpdate_title"/> <de.danoeh.antennapod.preferences.NumberPickerPreference |