diff options
Diffstat (limited to 'core')
19 files changed, 109 insertions, 311 deletions
diff --git a/core/src/main/AndroidManifest.xml b/core/src/main/AndroidManifest.xml index 7478eb48a..9b23acd1d 100644 --- a/core/src/main/AndroidManifest.xml +++ b/core/src/main/AndroidManifest.xml @@ -46,11 +46,6 @@ android:label="@string/feed_update_receiver_name" android:exported="true" tools:ignore="ExportedReceiver" /> <!-- allow feeds update to be triggered by external apps --> - - <service - android:name=".widget.WidgetUpdaterJobService" - android:permission="android.permission.BIND_JOB_SERVICE" - android:exported="true"/> </application> <queries> diff --git a/core/src/main/java/androidx/core/app/SafeJobIntentService.java b/core/src/main/java/androidx/core/app/SafeJobIntentService.java deleted file mode 100644 index aedc9418b..000000000 --- a/core/src/main/java/androidx/core/app/SafeJobIntentService.java +++ /dev/null @@ -1,118 +0,0 @@ -package androidx.core.app; - -import android.app.job.JobParameters; -import android.app.job.JobServiceEngine; -import android.app.job.JobWorkItem; -import android.content.Intent; -import android.os.Build; -import android.os.IBinder; -import androidx.annotation.RequiresApi; -import android.util.Log; - - -public abstract class SafeJobIntentService extends JobIntentService { - - @Override - public void onCreate() { - super.onCreate(); - if (Build.VERSION.SDK_INT >= 26) { - mJobImpl = new SafeJobServiceEngineImpl(this); - } - } - - /** - * Implementation of a safe JobServiceEngine for interaction with JobIntentService. - */ - @RequiresApi(26) - static final class SafeJobServiceEngineImpl extends JobServiceEngine - implements JobIntentService.CompatJobEngine { - static final String TAG = "JobServiceEngineImpl"; - - static final boolean DEBUG = false; - - final JobIntentService mService; - final Object mLock = new Object(); - JobParameters mParams; - - final class WrapperWorkItem implements JobIntentService.GenericWorkItem { - final JobWorkItem mJobWork; - - WrapperWorkItem(JobWorkItem jobWork) { - mJobWork = jobWork; - } - - @Override - public Intent getIntent() { - return mJobWork.getIntent(); - } - - @Override - public void complete() { - synchronized (mLock) { - if (mParams != null) { - try { - mParams.completeWork(mJobWork); - } catch (SecurityException e) { - Log.e(TAG, Log.getStackTraceString(e)); - } - } - } - } - } - - SafeJobServiceEngineImpl(JobIntentService service) { - super(service); - mService = service; - } - - @Override - public IBinder compatGetBinder() { - return getBinder(); - } - - @Override - public boolean onStartJob(JobParameters params) { - if (DEBUG) Log.d(TAG, "onStartJob: " + params); - mParams = params; - // We can now start dequeuing work! - mService.ensureProcessorRunningLocked(false); - return true; - } - - @Override - public boolean onStopJob(JobParameters params) { - if (DEBUG) Log.d(TAG, "onStartJob: " + params); - boolean result = mService.doStopCurrentWork(); - synchronized (mLock) { - // Once we return, the job is stopped, so its JobParameters are no - // longer valid and we should not be doing anything with them. - mParams = null; - } - return result; - } - - /** - * Dequeue some work. - */ - @Override - public JobIntentService.GenericWorkItem dequeueWork() { - JobWorkItem work = null; - synchronized (mLock) { - if (mParams == null) { - return null; - } - try { - work = mParams.dequeueWork(); - } catch (SecurityException e) { - Log.e(TAG, Log.getStackTraceString(e)); - } - } - if (work != null) { - work.getIntent().setExtrasClassLoader(mService.getClassLoader()); - return new WrapperWorkItem(work); - } else { - return null; - } - } - } -} diff --git a/core/src/main/java/de/danoeh/antennapod/core/dialog/ConfirmationDialog.java b/core/src/main/java/de/danoeh/antennapod/core/dialog/ConfirmationDialog.java index c9fe886fb..47b5dcd09 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/dialog/ConfirmationDialog.java +++ b/core/src/main/java/de/danoeh/antennapod/core/dialog/ConfirmationDialog.java @@ -13,50 +13,43 @@ import de.danoeh.antennapod.core.R; */ public abstract class ConfirmationDialog { - private static final String TAG = ConfirmationDialog.class.getSimpleName(); + private static final String TAG = ConfirmationDialog.class.getSimpleName(); - private final Context context; - private final int titleId; - private final String message; + private final Context context; + private final int titleId; + private final String message; - private int positiveText; - private int negativeText; + private int positiveText; - public ConfirmationDialog(Context context, int titleId, int messageId) { - this(context, titleId, context.getString(messageId)); - } + public ConfirmationDialog(Context context, int titleId, int messageId) { + this(context, titleId, context.getString(messageId)); + } - public ConfirmationDialog(Context context, int titleId, String message) { - this.context = context; - this.titleId = titleId; - this.message = message; - } + public ConfirmationDialog(Context context, int titleId, String message) { + this.context = context; + this.titleId = titleId; + this.message = message; + } - private void onCancelButtonPressed(DialogInterface dialog) { - Log.d(TAG, "Dialog was cancelled"); - dialog.dismiss(); - } + private void onCancelButtonPressed(DialogInterface dialog) { + Log.d(TAG, "Dialog was cancelled"); + dialog.dismiss(); + } public void setPositiveText(int id) { this.positiveText = id; } - public void setNegativeText(int id) { - this.negativeText = id; + public abstract void onConfirmButtonPressed(DialogInterface dialog); + + public final AlertDialog createNewDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(titleId); + builder.setMessage(message); + builder.setPositiveButton(positiveText != 0 ? positiveText : R.string.confirm_label, + (dialog, which) -> onConfirmButtonPressed(dialog)); + builder.setNegativeButton(R.string.cancel_label, (dialog, which) -> onCancelButtonPressed(dialog)); + builder.setOnCancelListener(ConfirmationDialog.this::onCancelButtonPressed); + return builder.create(); } - - - public abstract void onConfirmButtonPressed(DialogInterface dialog); - - public final AlertDialog createNewDialog() { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(titleId); - builder.setMessage(message); - builder.setPositiveButton(positiveText != 0 ? positiveText : R.string.confirm_label, - (dialog, which) -> onConfirmButtonPressed(dialog)); - builder.setNegativeButton(negativeText != 0 ? negativeText : R.string.cancel_label, - (dialog, which) -> onCancelButtonPressed(dialog)); - builder.setOnCancelListener(ConfirmationDialog.this::onCancelButtonPressed); - return builder.create(); - } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/glide/AudioCoverFetcher.java b/core/src/main/java/de/danoeh/antennapod/core/glide/AudioCoverFetcher.java index b6b607904..9d270360a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/glide/AudioCoverFetcher.java +++ b/core/src/main/java/de/danoeh/antennapod/core/glide/AudioCoverFetcher.java @@ -16,9 +16,6 @@ import java.io.InputStream; // see https://github.com/bumptech/glide/issues/699 class AudioCoverFetcher implements DataFetcher<InputStream> { - - private static final String TAG = "AudioCoverFetcher"; - private final String path; private final Context context; diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index 82ad27dcd..82e1fb55a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -125,12 +125,9 @@ public class UserPreferences { private static final String PREF_FAST_FORWARD_SECS = "prefFastForwardSecs"; private static final String PREF_REWIND_SECS = "prefRewindSecs"; private static final String PREF_QUEUE_LOCKED = "prefQueueLocked"; - private static final String PREF_LEFT_VOLUME = "prefLeftVolume"; - private static final String PREF_RIGHT_VOLUME = "prefRightVolume"; // Experimental private static final String PREF_STEREO_TO_MONO = "PrefStereoToMono"; - public static final String PREF_CAST_ENABLED = "prefCast"; //Used for enabling Chromecast support public static final int EPISODE_CLEANUP_QUEUE = -1; public static final int EPISODE_CLEANUP_NULL = -2; public static final int EPISODE_CLEANUP_EXCEPT_FAVORITE = -3; @@ -827,10 +824,6 @@ public class UserPreferences { return getMediaPlayer().equals(PREF_MEDIA_PLAYER_EXOPLAYER); } - public static void enableSonic() { - prefs.edit().putString(PREF_MEDIA_PLAYER, "sonic").apply(); - } - public static void enableExoplayer() { prefs.edit().putString(PREF_MEDIA_PLAYER, PREF_MEDIA_PLAYER_EXOPLAYER).apply(); } @@ -956,13 +949,6 @@ public class UserPreferences { return getUpdateTimeOfDay().length == 2; } - /** - * Evaluates whether Cast support (Chromecast, Audio Cast, etc) is enabled on the preferences. - */ - public static boolean isCastEnabled() { - return prefs.getBoolean(PREF_CAST_ENABLED, false); - } - public enum BackButtonBehavior { DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT, GO_TO_PAGE } @@ -1059,9 +1045,4 @@ public class UserPreferences { public static boolean shouldShowSubscriptionTitle() { return prefs.getBoolean(PREF_SUBSCRIPTION_TITLE, false); } - - public static void setSubscriptionTitleSetting(boolean showTitle) { - prefs.edit().putBoolean(PREF_SUBSCRIPTION_TITLE, showTitle).apply(); - } - } diff --git a/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java b/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java index cf0debed2..842dcdf75 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java +++ b/core/src/main/java/de/danoeh/antennapod/core/receiver/PlayerWidget.java @@ -9,7 +9,7 @@ import android.util.Log; import java.util.Arrays; -import de.danoeh.antennapod.core.widget.WidgetUpdaterJobService; +import de.danoeh.antennapod.core.widget.WidgetUpdaterWorker; public class PlayerWidget extends AppWidgetProvider { private static final String TAG = "PlayerWidget"; @@ -25,7 +25,7 @@ public class PlayerWidget extends AppWidgetProvider { public void onReceive(Context context, Intent intent) { Log.d(TAG, "onReceive"); super.onReceive(context, intent); - WidgetUpdaterJobService.performBackgroundUpdate(context); + WidgetUpdaterWorker.enqueueWork(context); } @Override @@ -33,14 +33,14 @@ public class PlayerWidget extends AppWidgetProvider { super.onEnabled(context); Log.d(TAG, "Widget enabled"); setEnabled(context, true); - WidgetUpdaterJobService.performBackgroundUpdate(context); + WidgetUpdaterWorker.enqueueWork(context); } @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Log.d(TAG, "onUpdate() called with: " + "context = [" + context + "], appWidgetManager = [" + appWidgetManager + "], appWidgetIds = [" + Arrays.toString(appWidgetIds) + "]"); - WidgetUpdaterJobService.performBackgroundUpdate(context); + WidgetUpdaterWorker.enqueueWork(context); } @Override diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java index 9760c57b1..8f559a889 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FeedSyncTask.java @@ -9,7 +9,6 @@ import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.parser.feed.FeedHandlerResult; public class FeedSyncTask { - private static final String TAG = "FeedParserTask"; private final DownloadRequest request; private final Context context; private DownloadStatus downloadStatus; diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java index d54d10dc6..f1b9510d9 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java @@ -713,7 +713,6 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { return stream; } - /** * Releases internally used resources. This method should only be called when the object is not used anymore. */ @@ -738,16 +737,6 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { releaseWifiLockIfNecessary(); } - /** - * Releases internally used resources. This method should only be called when the object is not used anymore. - * This method is executed on an internal executor service. - */ - @Override - public void shutdownQuietly() { - executor.submit(this::shutdown); - executor.shutdown(); - } - @Override public void setVideoSurface(final SurfaceHolder surface) { executor.submit(() -> { diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index d6d11bc8a..07e197752 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -82,7 +82,6 @@ import de.danoeh.antennapod.core.util.gui.NotificationUtils; import de.danoeh.antennapod.core.util.playback.PlayableUtils; import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter; import de.danoeh.antennapod.core.widget.WidgetUpdater; -import de.danoeh.antennapod.model.feed.Chapter; import de.danoeh.antennapod.model.feed.Feed; import de.danoeh.antennapod.model.feed.FeedItem; import de.danoeh.antennapod.model.feed.FeedMedia; @@ -1663,24 +1662,15 @@ public class PlaybackService extends MediaBrowserServiceCompat { mediaPlayer.setStartWhenPrepared(s); } - public void seekTo(final int t) { mediaPlayer.seekTo(t); } - private void seekDelta(final int d) { mediaPlayer.seekDelta(d); } /** - * Seek to the start of the specified chapter. - */ - public void seekToChapter(Chapter c) { - seekTo((int) c.getStart()); - } - - /** * call getDuration() on mediaplayer or return INVALID_TIME if player is in * an invalid state. */ @@ -1792,7 +1782,7 @@ public class PlaybackService extends MediaBrowserServiceCompat { public void onPlayFromSearch(String query, Bundle extras) { Log.d(TAG, "onPlayFromSearch query=" + query + " extras=" + extras.toString()); - List<FeedItem> results = FeedSearcher.searchFeedItems(getBaseContext(), query, 0); + List<FeedItem> results = FeedSearcher.searchFeedItems(query, 0); if (results.size() > 0 && results.get(0).getMedia() != null) { FeedMedia media = results.get(0).getMedia(); startPlaying(media, false); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java index 83c065e0e..addc6b996 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceStateManager.java @@ -36,10 +36,6 @@ class PlaybackServiceStateManager { isInForeground = false; } - boolean isInForeground() { - return isInForeground; - } - boolean hasReceivedValidStartCommand() { return hasReceivedValidStartCommand; } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java index d1c041723..f447090a8 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java @@ -176,7 +176,7 @@ public final class DBTasks { media.setDownloaded(false); media.setFile_url(null); DBWriter.setFeedMedia(media); - EventBus.getDefault().post(FeedItemEvent.deletedMedia(media.getItem())); + EventBus.getDefault().post(FeedItemEvent.updated(media.getItem())); EventBus.getDefault().post(new MessageEvent(context.getString(R.string.error_file_not_found))); } @@ -230,36 +230,7 @@ public final class DBTasks { UserPreferences.getEpisodeCleanupAlgorithm().performCleanup(context); } - /** - * Returns the successor of a FeedItem in the queue. - * - * @param itemId ID of the FeedItem - * @param queue Used for determining the successor of the item. If this parameter is null, the method will load - * the queue from the database in the same thread. - * @return Successor of the FeedItem or null if the FeedItem is not in the queue or has no successor. - */ - public static FeedItem getQueueSuccessorOfItem(final long itemId, List<FeedItem> queue) { - FeedItem result = null; - if (queue == null) { - queue = DBReader.getQueue(); - } - if (queue != null) { - Iterator<FeedItem> iterator = queue.iterator(); - while (iterator.hasNext()) { - FeedItem item = iterator.next(); - if (item.getId() == itemId) { - if (iterator.hasNext()) { - result = iterator.next(); - } - break; - } - } - } - return result; - } - - private static Feed searchFeedByIdentifyingValueOrID(PodDBAdapter adapter, - Feed feed) { + private static Feed searchFeedByIdentifyingValueOrID(Feed feed) { if (feed.getId() != 0) { return DBReader.getFeed(feed.getId()); } else { @@ -322,7 +293,7 @@ public final class DBTasks { adapter.open(); // Look up feed in the feedslist - final Feed savedFeed = searchFeedByIdentifyingValueOrID(adapter, newFeed); + final Feed savedFeed = searchFeedByIdentifyingValueOrID(newFeed); if (savedFeed == null) { Log.d(TAG, "Found no existing Feed with title " + newFeed.getTitle() + ". Adding as new one."); @@ -456,7 +427,7 @@ public final class DBTasks { if (savedFeed == null) { DBWriter.addNewFeed(context, newFeed).get(); // Update with default values that are set in database - resultFeed = searchFeedByIdentifyingValueOrID(adapter, newFeed); + resultFeed = searchFeedByIdentifyingValueOrID(newFeed); } else { DBWriter.setCompleteFeed(savedFeed).get(); } @@ -487,15 +458,13 @@ public final class DBTasks { /** * Searches the FeedItems of a specific Feed for a given string. * - * @param context Used for accessing the DB. * @param feedID The id of the feed whose items should be searched. * @param query The search string. * @return A FutureTask object that executes the search request * and returns the search result as a List of FeedItems. */ - public static FutureTask<List<FeedItem>> searchFeedItems(final Context context, - final long feedID, final String query) { - return new FutureTask<>(new QueryTask<List<FeedItem>>(context) { + public static FutureTask<List<FeedItem>> searchFeedItems(final long feedID, final String query) { + return new FutureTask<>(new QueryTask<List<FeedItem>>() { @Override public void execute(PodDBAdapter adapter) { Cursor searchResult = adapter.searchItems(feedID, query); @@ -507,8 +476,8 @@ public final class DBTasks { }); } - public static FutureTask<List<Feed>> searchFeeds(final Context context, final String query) { - return new FutureTask<>(new QueryTask<List<Feed>>(context) { + public static FutureTask<List<Feed>> searchFeeds(final String query) { + return new FutureTask<>(new QueryTask<List<Feed>>() { @Override public void execute(PodDBAdapter adapter) { Cursor cursor = adapter.searchFeeds(query); @@ -533,7 +502,7 @@ public final class DBTasks { abstract static class QueryTask<T> implements Callable<T> { private T result; - public QueryTask(Context context) { + public QueryTask() { } @Override diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java index af57cbdae..e572b4d8c 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java @@ -13,7 +13,6 @@ import org.greenrobot.eventbus.EventBus; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; @@ -142,7 +141,7 @@ public class DBWriter { .build(); SynchronizationQueueSink.enqueueEpisodeActionIfSynchronizationIsActive(context, action); } - EventBus.getDefault().post(FeedItemEvent.deletedMedia(Collections.singletonList(media.getItem()))); + EventBus.getDefault().post(FeedItemEvent.updated(media.getItem())); return true; } @@ -550,7 +549,7 @@ public class DBWriter { adapter.addFavoriteItem(item); adapter.close(); item.addTag(FeedItem.TAG_FAVORITE); - EventBus.getDefault().post(FavoritesEvent.added(item)); + EventBus.getDefault().post(new FavoritesEvent()); EventBus.getDefault().post(FeedItemEvent.updated(item)); }); } @@ -561,7 +560,7 @@ public class DBWriter { adapter.removeFavoriteItem(item); adapter.close(); item.removeTag(FeedItem.TAG_FAVORITE); - EventBus.getDefault().post(FavoritesEvent.removed(item)); + EventBus.getDefault().post(new FavoritesEvent()); EventBus.getDefault().post(FeedItemEvent.updated(item)); }); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java index c3dd52b49..68ce7b7ef 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java @@ -1,6 +1,5 @@ package de.danoeh.antennapod.core.storage; -import android.content.Context; import androidx.annotation.NonNull; import de.danoeh.antennapod.model.feed.Feed; import de.danoeh.antennapod.model.feed.FeedItem; @@ -19,9 +18,9 @@ public class FeedSearcher { } @NonNull - public static List<FeedItem> searchFeedItems(final Context context, final String query, final long selectedFeed) { + public static List<FeedItem> searchFeedItems(final String query, final long selectedFeed) { try { - FutureTask<List<FeedItem>> itemSearchTask = DBTasks.searchFeedItems(context, selectedFeed, query); + FutureTask<List<FeedItem>> itemSearchTask = DBTasks.searchFeedItems(selectedFeed, query); itemSearchTask.run(); return itemSearchTask.get(); } catch (ExecutionException | InterruptedException e) { @@ -31,9 +30,9 @@ public class FeedSearcher { } @NonNull - public static List<Feed> searchFeeds(final Context context, final String query) { + public static List<Feed> searchFeeds(final String query) { try { - FutureTask<List<Feed>> feedSearchTask = DBTasks.searchFeeds(context, query); + FutureTask<List<Feed>> feedSearchTask = DBTasks.searchFeeds(query); feedSearchTask.run(); return feedSearchTask.get(); } catch (ExecutionException | InterruptedException e) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateFormatter.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateFormatter.java index 99628dfcc..dc7ed4508 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DateFormatter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateFormatter.java @@ -37,7 +37,7 @@ public class DateFormatter { return android.text.format.DateUtils.formatDateTime(context, date.getTime(), format); } - public static String formatForAccessibility(final Context context, final Date date) { + public static String formatForAccessibility(final Date date) { if (date == null) { return ""; } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java index 0bf301366..85be3c787 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java @@ -5,7 +5,6 @@ import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; -import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; import android.text.TextUtils; @@ -146,18 +145,6 @@ public class NetworkUtils { return selectedNetworks.contains(Integer.toString(wm.getConnectionInfo().getNetworkId())); } - /** - * Returns the SSID of the wifi connection, or <code>null</code> if there is no wifi. - */ - public static String getWifiSsid() { - WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); - WifiInfo wifiInfo = wifiManager.getConnectionInfo(); - if (wifiInfo != null) { - return wifiInfo.getSSID(); - } - return null; - } - public static boolean wasDownloadBlocked(Throwable throwable) { String message = throwable.getMessage(); if (message != null) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/PowerUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/PowerUtils.java index 39deea36a..a1fadb4dc 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/PowerUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/PowerUtils.java @@ -10,8 +10,6 @@ import android.os.BatteryManager; */ public class PowerUtils { - private static final String TAG = "PowerUtils"; - private PowerUtils() { } diff --git a/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdaterJobService.java b/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdaterJobService.java deleted file mode 100644 index 598544a0c..000000000 --- a/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdaterJobService.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.danoeh.antennapod.core.widget; - -import android.content.Context; -import android.content.Intent; -import androidx.annotation.NonNull; -import androidx.core.app.SafeJobIntentService; -import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils; -import de.danoeh.antennapod.model.playback.Playable; -import de.danoeh.antennapod.core.util.playback.PlayableUtils; -import de.danoeh.antennapod.playback.base.PlayerStatus; - -public class WidgetUpdaterJobService extends SafeJobIntentService { - private static final int JOB_ID = -17001; - - /** - * Loads the current media from the database and updates the widget in a background job. - */ - public static void performBackgroundUpdate(Context context) { - enqueueWork(context, WidgetUpdaterJobService.class, - WidgetUpdaterJobService.JOB_ID, new Intent(context, WidgetUpdaterJobService.class)); - } - - @Override - protected void onHandleWork(@NonNull Intent intent) { - Playable media = PlayableUtils.createInstanceFromPreferences(getApplicationContext()); - if (media != null) { - WidgetUpdater.updateWidget(this, new WidgetUpdater.WidgetState(media, PlayerStatus.STOPPED, - media.getPosition(), media.getDuration(), PlaybackSpeedUtils.getCurrentPlaybackSpeed(media))); - } else { - WidgetUpdater.updateWidget(this, new WidgetUpdater.WidgetState(PlayerStatus.STOPPED)); - } - } -}
\ No newline at end of file diff --git a/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdaterWorker.java b/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdaterWorker.java new file mode 100644 index 000000000..3b8546a8e --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/widget/WidgetUpdaterWorker.java @@ -0,0 +1,59 @@ +package de.danoeh.antennapod.core.widget; + +import android.content.Context; +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.work.OneTimeWorkRequest; +import androidx.work.WorkManager; +import androidx.work.WorkRequest; +import androidx.work.Worker; +import androidx.work.WorkerParameters; + +import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils; +import de.danoeh.antennapod.core.util.playback.PlayableUtils; +import de.danoeh.antennapod.model.playback.Playable; +import de.danoeh.antennapod.playback.base.PlayerStatus; + +public class WidgetUpdaterWorker extends Worker { + + private static final String TAG = "WidgetUpdaterWorker"; + + public WidgetUpdaterWorker(@NonNull final Context context, + @NonNull final WorkerParameters workerParams) { + super(context, workerParams); + } + + public static void enqueueWork(final Context context) { + final WorkRequest workRequest = new OneTimeWorkRequest.Builder(WidgetUpdaterWorker.class).build(); + WorkManager.getInstance(context).enqueue(workRequest); + } + + @NonNull + @Override + public Result doWork() { + try { + updateWidget(); + } catch (final Exception e) { + Log.d(TAG, "Failed to update AntennaPod widget: ", e); + return Result.failure(); + } + return Result.success(); + } + + /** + * Loads the current media from the database and updates the widget in a background job. + */ + private void updateWidget() { + final Playable media = PlayableUtils.createInstanceFromPreferences(getApplicationContext()); + if (media != null) { + WidgetUpdater.updateWidget(getApplicationContext(), + new WidgetUpdater.WidgetState(media, PlayerStatus.STOPPED, + media.getPosition(), media.getDuration(), + PlaybackSpeedUtils.getCurrentPlaybackSpeed(media))); + } else { + WidgetUpdater.updateWidget(getApplicationContext(), + new WidgetUpdater.WidgetState(PlayerStatus.STOPPED)); + } + } +} diff --git a/core/src/play/java/de/danoeh/antennapod/core/service/playback/WearMediaSession.java b/core/src/play/java/de/danoeh/antennapod/core/service/playback/WearMediaSession.java index 2167d9f2c..8df05d10d 100644 --- a/core/src/play/java/de/danoeh/antennapod/core/service/playback/WearMediaSession.java +++ b/core/src/play/java/de/danoeh/antennapod/core/service/playback/WearMediaSession.java @@ -6,8 +6,6 @@ import android.support.v4.media.session.PlaybackStateCompat; import android.support.wearable.media.MediaControlConstants; public class WearMediaSession { - public static final String TAG = "WearMediaSession"; - static void sessionStateAddActionForWear(PlaybackStateCompat.Builder sessionState, String actionName, CharSequence name, int icon) { PlaybackStateCompat.CustomAction.Builder actionBuilder = |