Merge pull request #5581 from TacoTheDank/remove-old-compat

Remove no longer needed compat methods
This commit is contained in:
ByteHamster 2021-12-14 21:23:52 +01:00 committed by GitHub
commit 20e8b3ed6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 31 additions and 90 deletions

View File

@ -27,7 +27,6 @@ import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.drawerlayout.widget.DrawerLayout; import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
@ -153,14 +152,14 @@ public class MainActivity extends CastEnabledActivity {
} }
/** /**
* ViewCompat.generateViewId stores the current ID in a static variable. * View.generateViewId stores the current ID in a static variable.
* When the process is killed, the variable gets reset. * When the process is killed, the variable gets reset.
* This makes sure that we do not get ID collisions * This makes sure that we do not get ID collisions
* and therefore errors when trying to restore state from another view. * and therefore errors when trying to restore state from another view.
*/ */
@SuppressWarnings("StatementWithEmptyBody") @SuppressWarnings("StatementWithEmptyBody")
private void ensureGeneratedViewIdGreaterThan(int minimum) { private void ensureGeneratedViewIdGreaterThan(int minimum) {
while (ViewCompat.generateViewId() <= minimum) { while (View.generateViewId() <= minimum) {
// Generate new IDs // Generate new IDs
} }
} }
@ -168,7 +167,7 @@ public class MainActivity extends CastEnabledActivity {
@Override @Override
protected void onSaveInstanceState(@NonNull Bundle outState) { protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
outState.putInt(KEY_GENERATED_VIEW_ID, ViewCompat.generateViewId()); outState.putInt(KEY_GENERATED_VIEW_ID, View.generateViewId());
} }
private final BottomSheetBehavior.BottomSheetCallback bottomSheetCallback = private final BottomSheetBehavior.BottomSheetCallback bottomSheetCallback =

View File

@ -9,7 +9,6 @@ import android.widget.ProgressBar;
import android.widget.RadioButton; import android.widget.RadioButton;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.core.util.Consumer; import androidx.core.util.Consumer;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R; import de.danoeh.antennapod.R;
@ -74,7 +73,7 @@ public class DataFolderAdapter extends RecyclerView.Adapter<DataFolderAdapter.Vi
} }
private List<StoragePath> getStorageEntries(Context context) { private List<StoragePath> getStorageEntries(Context context) {
File[] mediaDirs = ContextCompat.getExternalFilesDirs(context, null); File[] mediaDirs = context.getExternalFilesDirs(null);
final List<StoragePath> entries = new ArrayList<>(mediaDirs.length); final List<StoragePath> entries = new ArrayList<>(mediaDirs.length);
for (File dir : mediaDirs) { for (File dir : mediaDirs) {
if (!isWritable(dir)) { if (!isWritable(dir)) {

View File

@ -7,7 +7,6 @@ import android.view.MenuInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import androidx.core.view.ViewCompat;
import de.danoeh.antennapod.R; import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.preferences.UserPreferences;
@ -53,7 +52,7 @@ public class QueueRecyclerAdapter extends EpisodeItemListAdapter {
}); });
holder.coverHolder.setOnTouchListener((v1, event) -> { holder.coverHolder.setOnTouchListener((v1, event) -> {
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
boolean isLtr = ViewCompat.getLayoutDirection(holder.itemView) == ViewCompat.LAYOUT_DIRECTION_LTR; boolean isLtr = holder.itemView.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
float factor = isLtr ? 1 : -1; float factor = isLtr ? 1 : -1;
if (factor * event.getX() < factor * 0.5 * v1.getWidth()) { if (factor * event.getX() < factor * 0.5 * v1.getWidth()) {
Log.d(TAG, "startDrag()"); Log.d(TAG, "startDrag()");

View File

@ -4,6 +4,7 @@ import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -18,8 +19,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.text.TextUtilsCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -222,8 +221,7 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter<Subscription
feedTitle.setText(drawerItem.getTitle()); feedTitle.setText(drawerItem.getTitle());
imageView.setContentDescription(drawerItem.getTitle()); imageView.setContentDescription(drawerItem.getTitle());
feedTitle.setVisibility(View.VISIBLE); feedTitle.setVisibility(View.VISIBLE);
if (TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) if (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL) {
== ViewCompat.LAYOUT_DIRECTION_RTL) {
count.setCorner(TriangleLabelView.Corner.TOP_LEFT); count.setCorner(TriangleLabelView.Corner.TOP_LEFT);
} }

View File

@ -24,7 +24,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.AppCompatDrawableManager; import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.documentfile.provider.DocumentFile; import androidx.documentfile.provider.DocumentFile;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -124,9 +124,9 @@ public class FeedInfoFragment extends Fragment implements Toolbar.OnMenuItemClic
@Override @Override
protected void doTint(Context themedContext) { protected void doTint(Context themedContext) {
toolbar.getMenu().findItem(R.id.visit_website_item) toolbar.getMenu().findItem(R.id.visit_website_item)
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_web)); .setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_web));
toolbar.getMenu().findItem(R.id.share_parent) toolbar.getMenu().findItem(R.id.share_parent)
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_share)); .setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_share));
} }
}; };
iconTintManager.updateTint(); iconTintManager.updateTint();

View File

@ -22,7 +22,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatDrawableManager; import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -187,13 +187,13 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
@Override @Override
protected void doTint(Context themedContext) { protected void doTint(Context themedContext) {
toolbar.getMenu().findItem(R.id.sort_items) toolbar.getMenu().findItem(R.id.sort_items)
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_sort)); .setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_sort));
toolbar.getMenu().findItem(R.id.filter_items) toolbar.getMenu().findItem(R.id.filter_items)
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_filter)); .setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_filter));
toolbar.getMenu().findItem(R.id.refresh_item) toolbar.getMenu().findItem(R.id.refresh_item)
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_refresh)); .setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_refresh));
toolbar.getMenu().findItem(R.id.action_search) toolbar.getMenu().findItem(R.id.action_search)
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_search)); .setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_search));
} }
}; };
iconTintManager.updateTint(); iconTintManager.updateTint();

View File

@ -15,9 +15,6 @@ import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.text.TextUtilsCompat;
import androidx.core.util.ObjectsCompat;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.FitCenter; import com.bumptech.glide.load.resource.bitmap.FitCenter;
@ -71,6 +68,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Objects;
/** /**
* Displays information about a FeedItem and actions. * Displays information about a FeedItem and actions.
@ -148,7 +146,7 @@ public class ItemFragment extends Fragment {
webvDescription = layout.findViewById(R.id.webvDescription); webvDescription = layout.findViewById(R.id.webvDescription);
webvDescription.setTimecodeSelectedListener(time -> { webvDescription.setTimecodeSelectedListener(time -> {
if (controller != null && item.getMedia() != null && controller.getMedia() != null if (controller != null && item.getMedia() != null && controller.getMedia() != null
&& ObjectsCompat.equals(item.getMedia().getIdentifier(), controller.getMedia().getIdentifier())) { && Objects.equals(item.getMedia().getIdentifier(), controller.getMedia().getIdentifier())) {
controller.seekTo(time); controller.seekTo(time);
} else { } else {
((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.play_this_to_seek_position, ((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.play_this_to_seek_position,
@ -189,8 +187,8 @@ public class ItemFragment extends Fragment {
} }
private void showOnDemandConfigBalloon(boolean offerStreaming) { private void showOnDemandConfigBalloon(boolean offerStreaming) {
boolean isLocaleRtl = TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) boolean isLocaleRtl = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault())
== ViewCompat.LAYOUT_DIRECTION_RTL; == View.LAYOUT_DIRECTION_RTL;
Balloon balloon = new Balloon.Builder(getContext()) Balloon balloon = new Balloon.Builder(getContext())
.setArrowOrientation(ArrowOrientation.TOP) .setArrowOrientation(ArrowOrientation.TOP)
.setArrowPosition(0.25f + ((isLocaleRtl ^ offerStreaming) ? 0f : 0.5f)) .setArrowPosition(0.25f + ((isLocaleRtl ^ offerStreaming) ? 0f : 0.5f))

View File

@ -9,7 +9,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2; import androidx.viewpager2.widget.ViewPager2;
@ -78,7 +77,7 @@ public class ItemPagerFragment extends Fragment implements Toolbar.OnMenuItemCli
// > When using FragmentStatePagerAdapter the host ViewPager must have a valid ID set. // > When using FragmentStatePagerAdapter the host ViewPager must have a valid ID set.
// When opening multiple ItemPagerFragments by clicking "item" -> "visit podcast" -> "item" -> etc, // When opening multiple ItemPagerFragments by clicking "item" -> "visit podcast" -> "item" -> etc,
// the ID is no longer unique and FragmentStatePagerAdapter does not display any pages. // the ID is no longer unique and FragmentStatePagerAdapter does not display any pages.
int newId = ViewCompat.generateViewId(); int newId = View.generateViewId();
if (savedInstanceState != null && savedInstanceState.getInt(KEY_PAGER_ID, 0) != 0) { if (savedInstanceState != null && savedInstanceState.getInt(KEY_PAGER_ID, 0) != 0) {
// Restore state by using the same ID as before. ID collisions are prevented in MainActivity. // Restore state by using the same ID as before. ID collisions are prevented in MainActivity.
newId = savedInstanceState.getInt(KEY_PAGER_ID, 0); newId = savedInstanceState.getInt(KEY_PAGER_ID, 0);

View File

@ -17,7 +17,6 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.DownloadStatisticsListAdapter; import de.danoeh.antennapod.adapter.DownloadStatisticsListAdapter;
import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.StatisticsItem; import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.core.util.comparator.CompareCompat;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
@ -75,7 +74,7 @@ public class DownloadStatisticsFragment extends Fragment {
Observable.fromCallable(() -> { Observable.fromCallable(() -> {
List<StatisticsItem> statisticsData = DBReader.getStatistics(); List<StatisticsItem> statisticsData = DBReader.getStatistics();
Collections.sort(statisticsData, (item1, item2) -> Collections.sort(statisticsData, (item1, item2) ->
CompareCompat.compareLong(item1.totalDownloadSize, item2.totalDownloadSize)); Long.compare(item2.totalDownloadSize, item1.totalDownloadSize));
return statisticsData; return statisticsData;
}) })
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())

View File

@ -8,9 +8,7 @@ import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.util.Log; import android.util.Log;
import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResult;
@ -42,7 +40,6 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -169,21 +166,7 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat {
} }
private void exportDatabase() { private void exportDatabase() {
if (Build.VERSION.SDK_INT >= 19) { backupDatabaseLauncher.launch(dateStampFilename(DATABASE_EXPORT_FILENAME));
backupDatabaseLauncher.launch(dateStampFilename(DATABASE_EXPORT_FILENAME));
} else {
File sd = Environment.getExternalStorageDirectory();
File backupDB = new File(sd, dateStampFilename(DATABASE_EXPORT_FILENAME));
progressDialog.show();
disposable = Completable.fromAction(() ->
DatabaseExporter.exportToStream(new FileOutputStream(backupDB), getContext()))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(() -> {
Snackbar.make(getView(), R.string.export_success_title, Snackbar.LENGTH_LONG).show();
progressDialog.dismiss();
}, this::showExportErrorDialog);
}
} }
private void importDatabase() { private void importDatabase() {

View File

@ -28,7 +28,6 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.core.storage.StatisticsItem; import de.danoeh.antennapod.core.storage.StatisticsItem;
import de.danoeh.antennapod.core.util.comparator.CompareCompat;
import io.reactivex.Completable; import io.reactivex.Completable;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
@ -188,10 +187,10 @@ public class PlaybackStatisticsFragment extends Fragment {
List<StatisticsItem> statisticsData = DBReader.getStatistics(); List<StatisticsItem> statisticsData = DBReader.getStatistics();
if (countAll) { if (countAll) {
Collections.sort(statisticsData, (item1, item2) -> Collections.sort(statisticsData, (item1, item2) ->
CompareCompat.compareLong(item1.timePlayedCountAll, item2.timePlayedCountAll)); Long.compare(item2.timePlayedCountAll, item1.timePlayedCountAll));
} else { } else {
Collections.sort(statisticsData, (item1, item2) -> Collections.sort(statisticsData, (item1, item2) ->
CompareCompat.compareLong(item1.timePlayed, item2.timePlayed)); Long.compare(item2.timePlayed, item1.timePlayed));
} }
return statisticsData; return statisticsData;
} }

View File

@ -6,7 +6,6 @@ import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.view.ViewCompat;
import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout;
import de.danoeh.antennapod.R; import de.danoeh.antennapod.R;
@ -25,7 +24,7 @@ public abstract class ToolbarIconTintManager implements AppBarLayout.OnOffsetCha
@Override @Override
public void onOffsetChanged(AppBarLayout appBarLayout, int offset) { public void onOffsetChanged(AppBarLayout appBarLayout, int offset) {
boolean tint = (collapsingToolbar.getHeight() + offset) > (2 * ViewCompat.getMinimumHeight(collapsingToolbar)); boolean tint = (collapsingToolbar.getHeight() + offset) > (2 * collapsingToolbar.getMinimumHeight());
if (isTinted != tint) { if (isTinted != tint) {
isTinted = tint; isTinted = tint;
updateTint(); updateTint();

View File

@ -8,7 +8,6 @@ import android.net.NetworkInfo;
import android.net.wifi.WifiInfo; import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Build; import android.os.Build;
import androidx.core.net.ConnectivityManagerCompat;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
@ -97,7 +96,7 @@ public class NetworkUtils {
private static boolean isNetworkMetered() { private static boolean isNetworkMetered() {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return ConnectivityManagerCompat.isActiveNetworkMetered(connManager); return connManager.isActiveNetworkMetered();
} }
private static boolean isNetworkCellular() { private static boolean isNetworkCellular() {

View File

@ -1,29 +0,0 @@
package de.danoeh.antennapod.core.util.comparator;
/**
* Some compare() methods are not available before API 19.
* This class provides fallbacks
*/
public class CompareCompat {
private CompareCompat() {
// Must not be instantiated
}
/**
* Compares two {@code long} values. Long.compare() is not available before API 19
*
* @return 0 if long1 = long2, less than 0 if long1 &lt; long2,
* and greater than 0 if long1 &gt; long2.
*/
public static int compareLong(long long1, long long2) {
//noinspection UseCompareMethod
if (long1 > long2) {
return -1;
} else if (long1 < long2) {
return 1;
} else {
return 0;
}
}
}

View File

@ -5,5 +5,4 @@ dependencies {
implementation project(':model') implementation project(':model')
annotationProcessor "androidx.annotation:annotation:$annotationVersion" annotationProcessor "androidx.annotation:annotation:$annotationVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
} }

View File

@ -4,7 +4,6 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.util.ObjectsCompat;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
@ -13,6 +12,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import java.util.Objects;
import java.util.TimeZone; import java.util.TimeZone;
import de.danoeh.antennapod.model.feed.FeedItem; import de.danoeh.antennapod.model.feed.FeedItem;
@ -159,10 +159,10 @@ public class EpisodeAction {
&& position == that.position && position == that.position
&& total == that.total && total == that.total
&& action != that.action && action != that.action
&& ObjectsCompat.equals(podcast, that.podcast) && Objects.equals(podcast, that.podcast)
&& ObjectsCompat.equals(episode, that.episode) && Objects.equals(episode, that.episode)
&& ObjectsCompat.equals(timestamp, that.timestamp) && Objects.equals(timestamp, that.timestamp)
&& ObjectsCompat.equals(guid, that.guid); && Objects.equals(guid, that.guid);
} }
@Override @Override