Reduce dependencies of model to UserPreferences
This commit is contained in:
parent
daf6226483
commit
0d49f39ea0
|
@ -249,7 +249,7 @@ public class FeedItemMenuHandler {
|
||||||
final Handler h = new Handler(fragment.requireContext().getMainLooper());
|
final Handler h = new Handler(fragment.requireContext().getMainLooper());
|
||||||
final Runnable r = () -> {
|
final Runnable r = () -> {
|
||||||
FeedMedia media = item.getMedia();
|
FeedMedia media = item.getMedia();
|
||||||
if (media != null && media.hasAlmostEnded() && UserPreferences.isAutoDelete()) {
|
if (media != null && FeedItemUtil.hasAlmostEnded(media) && UserPreferences.isAutoDelete()) {
|
||||||
DBWriter.deleteFeedMediaOfItem(fragment.requireContext(), media.getId());
|
DBWriter.deleteFeedMediaOfItem(fragment.requireContext(), media.getId());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,7 +17,6 @@ import java.util.List;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.preferences.GpodnetPreferences;
|
import de.danoeh.antennapod.core.preferences.GpodnetPreferences;
|
||||||
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
|
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
|
||||||
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
|
||||||
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
import de.danoeh.antennapod.core.service.playback.PlaybackService;
|
||||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||||
import de.danoeh.antennapod.core.storage.PodDBAdapter;
|
import de.danoeh.antennapod.core.storage.PodDBAdapter;
|
||||||
|
@ -228,11 +227,6 @@ public class FeedMedia extends FeedFile implements Playable {
|
||||||
((PlaybackPreferences.getCurrentPlayerStatus() == PlaybackPreferences.PLAYER_STATUS_PLAYING));
|
((PlaybackPreferences.getCurrentPlayerStatus() == PlaybackPreferences.PLAYER_STATUS_PLAYING));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasAlmostEnded() {
|
|
||||||
int smartMarkAsPlayedSecs = UserPreferences.getSmartMarkAsPlayedSecs();
|
|
||||||
return this.duration > 0 && this.position >= this.duration - smartMarkAsPlayedSecs * 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getTypeAsInt() {
|
public int getTypeAsInt() {
|
||||||
return FEEDFILETYPE_FEEDMEDIA;
|
return FEEDFILETYPE_FEEDMEDIA;
|
||||||
|
|
|
@ -4,7 +4,6 @@ import android.database.Cursor;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
|
||||||
import de.danoeh.antennapod.core.storage.PodDBAdapter;
|
import de.danoeh.antennapod.core.storage.PodDBAdapter;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -203,16 +202,8 @@ public class FeedPreferences implements Serializable {
|
||||||
this.volumeAdaptionSetting = volumeAdaptionSetting;
|
this.volumeAdaptionSetting = volumeAdaptionSetting;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getCurrentAutoDelete() {
|
public AutoDeleteAction getCurrentAutoDelete() {
|
||||||
switch (autoDeleteAction) {
|
return autoDeleteAction;
|
||||||
case GLOBAL:
|
|
||||||
return UserPreferences.isAutoDelete();
|
|
||||||
case YES:
|
|
||||||
return true;
|
|
||||||
case NO:
|
|
||||||
default: // fall-through
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
|
|
|
@ -73,6 +73,7 @@ import de.danoeh.antennapod.core.storage.DBTasks;
|
||||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||||
import de.danoeh.antennapod.core.storage.FeedSearcher;
|
import de.danoeh.antennapod.core.storage.FeedSearcher;
|
||||||
import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
|
import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
|
||||||
|
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||||
import de.danoeh.antennapod.core.util.NetworkUtils;
|
import de.danoeh.antennapod.core.util.NetworkUtils;
|
||||||
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
|
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
|
||||||
|
@ -1095,7 +1096,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
}
|
}
|
||||||
FeedMedia media = (FeedMedia) playable;
|
FeedMedia media = (FeedMedia) playable;
|
||||||
FeedItem item = media.getItem();
|
FeedItem item = media.getItem();
|
||||||
boolean smartMarkAsPlayed = media.hasAlmostEnded();
|
boolean smartMarkAsPlayed = FeedItemUtil.hasAlmostEnded(media);
|
||||||
if (!ended && smartMarkAsPlayed) {
|
if (!ended && smartMarkAsPlayed) {
|
||||||
Log.d(TAG, "smart mark as played");
|
Log.d(TAG, "smart mark as played");
|
||||||
}
|
}
|
||||||
|
@ -1121,8 +1122,12 @@ public class PlaybackService extends MediaBrowserServiceCompat {
|
||||||
// don't know if it actually matters to not autodownload when smart mark as played is triggered
|
// don't know if it actually matters to not autodownload when smart mark as played is triggered
|
||||||
DBWriter.removeQueueItem(PlaybackService.this, ended, item);
|
DBWriter.removeQueueItem(PlaybackService.this, ended, item);
|
||||||
// Delete episode if enabled
|
// Delete episode if enabled
|
||||||
if (item.getFeed().getPreferences().getCurrentAutoDelete()
|
FeedPreferences.AutoDeleteAction action =
|
||||||
&& (!item.isTagged(FeedItem.TAG_FAVORITE) || !UserPreferences.shouldFavoriteKeepEpisode())) {
|
item.getFeed().getPreferences().getCurrentAutoDelete();
|
||||||
|
boolean shouldAutoDelete = action == FeedPreferences.AutoDeleteAction.YES
|
||||||
|
|| (action == FeedPreferences.AutoDeleteAction.GLOBAL && UserPreferences.isAutoDelete());
|
||||||
|
if (shouldAutoDelete && (!item.isTagged(FeedItem.TAG_FAVORITE)
|
||||||
|
|| !UserPreferences.shouldFavoriteKeepEpisode())) {
|
||||||
DBWriter.deleteFeedMediaOfItem(PlaybackService.this, media.getId());
|
DBWriter.deleteFeedMediaOfItem(PlaybackService.this, media.getId());
|
||||||
Log.d(TAG, "Episode Deleted");
|
Log.d(TAG, "Episode Deleted");
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ import de.danoeh.antennapod.core.sync.model.ISyncService;
|
||||||
import de.danoeh.antennapod.core.sync.model.SubscriptionChanges;
|
import de.danoeh.antennapod.core.sync.model.SubscriptionChanges;
|
||||||
import de.danoeh.antennapod.core.sync.model.SyncServiceException;
|
import de.danoeh.antennapod.core.sync.model.SyncServiceException;
|
||||||
import de.danoeh.antennapod.core.sync.model.UploadChangesResponse;
|
import de.danoeh.antennapod.core.sync.model.UploadChangesResponse;
|
||||||
|
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||||
import de.danoeh.antennapod.core.util.LongList;
|
import de.danoeh.antennapod.core.util.LongList;
|
||||||
import de.danoeh.antennapod.core.util.URLChecker;
|
import de.danoeh.antennapod.core.util.URLChecker;
|
||||||
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
|
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
|
||||||
|
@ -465,7 +466,7 @@ public class SyncService extends Worker {
|
||||||
if (playItem != null) {
|
if (playItem != null) {
|
||||||
FeedMedia media = playItem.getMedia();
|
FeedMedia media = playItem.getMedia();
|
||||||
media.setPosition(action.getPosition() * 1000);
|
media.setPosition(action.getPosition() * 1000);
|
||||||
if (playItem.getMedia().hasAlmostEnded()) {
|
if (FeedItemUtil.hasAlmostEnded(playItem.getMedia())) {
|
||||||
Log.d(TAG, "Marking as played");
|
Log.d(TAG, "Marking as played");
|
||||||
playItem.setPlayed(true);
|
playItem.setPlayed(true);
|
||||||
queueToBeRemoved.add(playItem.getId());
|
queueToBeRemoved.add(playItem.getId());
|
||||||
|
|
|
@ -2,6 +2,8 @@ package de.danoeh.antennapod.core.util;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import de.danoeh.antennapod.core.feed.FeedMedia;
|
||||||
|
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -66,4 +68,9 @@ public class FeedItemUtil {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean hasAlmostEnded(FeedMedia media) {
|
||||||
|
int smartMarkAsPlayedSecs = UserPreferences.getSmartMarkAsPlayedSecs();
|
||||||
|
return media.getDuration() > 0 && media.getPosition() >= media.getDuration() - smartMarkAsPlayedSecs * 1000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue