Merge pull request #5581 from TacoTheDank/remove-old-compat
Remove no longer needed compat methods
This commit is contained in:
commit
20e8b3ed6c
@ -27,7 +27,6 @@ import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
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.
|
||||
* This makes sure that we do not get ID collisions
|
||||
* and therefore errors when trying to restore state from another view.
|
||||
*/
|
||||
@SuppressWarnings("StatementWithEmptyBody")
|
||||
private void ensureGeneratedViewIdGreaterThan(int minimum) {
|
||||
while (ViewCompat.generateViewId() <= minimum) {
|
||||
while (View.generateViewId() <= minimum) {
|
||||
// Generate new IDs
|
||||
}
|
||||
}
|
||||
@ -168,7 +167,7 @@ public class MainActivity extends CastEnabledActivity {
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle 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 =
|
||||
|
@ -9,7 +9,6 @@ import android.widget.ProgressBar;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.util.Consumer;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import de.danoeh.antennapod.R;
|
||||
@ -74,7 +73,7 @@ public class DataFolderAdapter extends RecyclerView.Adapter<DataFolderAdapter.Vi
|
||||
}
|
||||
|
||||
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);
|
||||
for (File dir : mediaDirs) {
|
||||
if (!isWritable(dir)) {
|
||||
|
@ -7,7 +7,6 @@ import android.view.MenuInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.core.view.ViewCompat;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||
@ -53,7 +52,7 @@ public class QueueRecyclerAdapter extends EpisodeItemListAdapter {
|
||||
});
|
||||
holder.coverHolder.setOnTouchListener((v1, event) -> {
|
||||
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;
|
||||
if (factor * event.getX() < factor * 0.5 * v1.getWidth()) {
|
||||
Log.d(TAG, "startDrag()");
|
||||
|
@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuInflater;
|
||||
@ -18,8 +19,6 @@ import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.core.text.TextUtilsCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
@ -222,8 +221,7 @@ public class SubscriptionsRecyclerAdapter extends SelectableAdapter<Subscription
|
||||
feedTitle.setText(drawerItem.getTitle());
|
||||
imageView.setContentDescription(drawerItem.getTitle());
|
||||
feedTitle.setVisibility(View.VISIBLE);
|
||||
if (TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault())
|
||||
== ViewCompat.LAYOUT_DIRECTION_RTL) {
|
||||
if (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL) {
|
||||
count.setCorner(TriangleLabelView.Corner.TOP_LEFT);
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.AppCompatDrawableManager;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.documentfile.provider.DocumentFile;
|
||||
import androidx.fragment.app.Fragment;
|
||||
@ -124,9 +124,9 @@ public class FeedInfoFragment extends Fragment implements Toolbar.OnMenuItemClic
|
||||
@Override
|
||||
protected void doTint(Context themedContext) {
|
||||
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)
|
||||
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_share));
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_share));
|
||||
}
|
||||
};
|
||||
iconTintManager.updateTint();
|
||||
|
@ -22,7 +22,7 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatDrawableManager;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@ -187,13 +187,13 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
@Override
|
||||
protected void doTint(Context themedContext) {
|
||||
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)
|
||||
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_filter));
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_filter));
|
||||
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)
|
||||
.setIcon(AppCompatDrawableManager.get().getDrawable(themedContext, R.drawable.ic_search));
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_search));
|
||||
}
|
||||
};
|
||||
iconTintManager.updateTint();
|
||||
|
@ -15,9 +15,6 @@ import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
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 com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.resource.bitmap.FitCenter;
|
||||
@ -71,6 +68,7 @@ import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Displays information about a FeedItem and actions.
|
||||
@ -148,7 +146,7 @@ public class ItemFragment extends Fragment {
|
||||
webvDescription = layout.findViewById(R.id.webvDescription);
|
||||
webvDescription.setTimecodeSelectedListener(time -> {
|
||||
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);
|
||||
} else {
|
||||
((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.play_this_to_seek_position,
|
||||
@ -189,8 +187,8 @@ public class ItemFragment extends Fragment {
|
||||
}
|
||||
|
||||
private void showOnDemandConfigBalloon(boolean offerStreaming) {
|
||||
boolean isLocaleRtl = TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault())
|
||||
== ViewCompat.LAYOUT_DIRECTION_RTL;
|
||||
boolean isLocaleRtl = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault())
|
||||
== View.LAYOUT_DIRECTION_RTL;
|
||||
Balloon balloon = new Balloon.Builder(getContext())
|
||||
.setArrowOrientation(ArrowOrientation.TOP)
|
||||
.setArrowPosition(0.25f + ((isLocaleRtl ^ offerStreaming) ? 0f : 0.5f))
|
||||
|
@ -9,7 +9,6 @@ import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||
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 opening multiple ItemPagerFragments by clicking "item" -> "visit podcast" -> "item" -> etc,
|
||||
// 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) {
|
||||
// Restore state by using the same ID as before. ID collisions are prevented in MainActivity.
|
||||
newId = savedInstanceState.getInt(KEY_PAGER_ID, 0);
|
||||
|
@ -17,7 +17,6 @@ import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.adapter.DownloadStatisticsListAdapter;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.core.util.comparator.CompareCompat;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
@ -75,7 +74,7 @@ public class DownloadStatisticsFragment extends Fragment {
|
||||
Observable.fromCallable(() -> {
|
||||
List<StatisticsItem> statisticsData = DBReader.getStatistics();
|
||||
Collections.sort(statisticsData, (item1, item2) ->
|
||||
CompareCompat.compareLong(item1.totalDownloadSize, item2.totalDownloadSize));
|
||||
Long.compare(item2.totalDownloadSize, item1.totalDownloadSize));
|
||||
return statisticsData;
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
|
@ -8,9 +8,7 @@ import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.activity.result.ActivityResult;
|
||||
@ -42,7 +40,6 @@ import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -169,21 +166,7 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat {
|
||||
}
|
||||
|
||||
private void exportDatabase() {
|
||||
if (Build.VERSION.SDK_INT >= 19) {
|
||||
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);
|
||||
}
|
||||
backupDatabaseLauncher.launch(dateStampFilename(DATABASE_EXPORT_FILENAME));
|
||||
}
|
||||
|
||||
private void importDatabase() {
|
||||
|
@ -28,7 +28,6 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.storage.StatisticsItem;
|
||||
import de.danoeh.antennapod.core.util.comparator.CompareCompat;
|
||||
import io.reactivex.Completable;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
@ -188,10 +187,10 @@ public class PlaybackStatisticsFragment extends Fragment {
|
||||
List<StatisticsItem> statisticsData = DBReader.getStatistics();
|
||||
if (countAll) {
|
||||
Collections.sort(statisticsData, (item1, item2) ->
|
||||
CompareCompat.compareLong(item1.timePlayedCountAll, item2.timePlayedCountAll));
|
||||
Long.compare(item2.timePlayedCountAll, item1.timePlayedCountAll));
|
||||
} else {
|
||||
Collections.sort(statisticsData, (item1, item2) ->
|
||||
CompareCompat.compareLong(item1.timePlayed, item2.timePlayed));
|
||||
Long.compare(item2.timePlayed, item1.timePlayed));
|
||||
}
|
||||
return statisticsData;
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.appbar.CollapsingToolbarLayout;
|
||||
import de.danoeh.antennapod.R;
|
||||
@ -25,7 +24,7 @@ public abstract class ToolbarIconTintManager implements AppBarLayout.OnOffsetCha
|
||||
|
||||
@Override
|
||||
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) {
|
||||
isTinted = tint;
|
||||
updateTint();
|
||||
|
@ -8,7 +8,6 @@ import android.net.NetworkInfo;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Build;
|
||||
import androidx.core.net.ConnectivityManagerCompat;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
@ -97,7 +96,7 @@ public class NetworkUtils {
|
||||
|
||||
private static boolean isNetworkMetered() {
|
||||
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
return ConnectivityManagerCompat.isActiveNetworkMetered(connManager);
|
||||
return connManager.isActiveNetworkMetered();
|
||||
}
|
||||
|
||||
private static boolean isNetworkCellular() {
|
||||
|
@ -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 < long2,
|
||||
* and greater than 0 if long1 > 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;
|
||||
}
|
||||
}
|
||||
}
|
@ -5,5 +5,4 @@ dependencies {
|
||||
implementation project(':model')
|
||||
|
||||
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
|
||||
implementation "androidx.appcompat:appcompat:$appcompatVersion"
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.util.ObjectsCompat;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
@ -13,6 +12,7 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
@ -159,10 +159,10 @@ public class EpisodeAction {
|
||||
&& position == that.position
|
||||
&& total == that.total
|
||||
&& action != that.action
|
||||
&& ObjectsCompat.equals(podcast, that.podcast)
|
||||
&& ObjectsCompat.equals(episode, that.episode)
|
||||
&& ObjectsCompat.equals(timestamp, that.timestamp)
|
||||
&& ObjectsCompat.equals(guid, that.guid);
|
||||
&& Objects.equals(podcast, that.podcast)
|
||||
&& Objects.equals(episode, that.episode)
|
||||
&& Objects.equals(timestamp, that.timestamp)
|
||||
&& Objects.equals(guid, that.guid);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user