summaryrefslogtreecommitdiff
path: root/app/src/main/java/de
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2021-03-28 22:46:37 +0200
committerGitHub <noreply@github.com>2021-03-28 22:46:37 +0200
commit7465b747f3630a82ee6375c766dcba015aa78cfc (patch)
tree9744412b09ee9e12f3a3fb002cd343fdbf659376 /app/src/main/java/de
parentdcbe5e6905e8fb2c37bb73f9c692d07ae21111a8 (diff)
parent998535515bae8ec5bcd2bd95bc0cf4f34416dff7 (diff)
downloadAntennaPod-7465b747f3630a82ee6375c766dcba015aa78cfc.zip
Merge pull request #5055 from ByteHamster/spotbugs
Add SpotBugs CI check
Diffstat (limited to 'app/src/main/java/de')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java8
-rw-r--r--app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/ItunesTopListLoader.java10
-rw-r--r--app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/error/CrashReportWriter.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/PagedToolbarFragment.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/LicensesFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java2
18 files changed, 34 insertions, 41 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java
index 721291597..50794ba5b 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/BugReportActivity.java
@@ -99,7 +99,10 @@ public class BugReportActivity extends AppCompatActivity {
private void exportLog() {
try {
File filename = new File(UserPreferences.getDataFolder(null), "full-logs.txt");
- filename.createNewFile();
+ boolean success = filename.createNewFile();
+ if (!success) {
+ throw new IOException("Unable to create output file");
+ }
String cmd = "logcat -d -f " + filename.getAbsolutePath();
Runtime.getRuntime().exec(cmd);
//share file
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index b5edcc878..aa1d746a5 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -188,7 +188,9 @@ public class MainActivity extends CastEnabledActivity {
public void setupToolbarToggle(@NonNull Toolbar toolbar, boolean displayUpArrow) {
if (drawerLayout != null) { // Tablet layout does not have a drawer
- drawerLayout.removeDrawerListener(drawerToggle);
+ if (drawerToggle != null) {
+ drawerLayout.removeDrawerListener(drawerToggle);
+ }
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar,
R.string.drawer_open, R.string.drawer_close);
drawerLayout.addDrawerListener(drawerToggle);
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index 56a66ba93..1fcc3512d 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -2,7 +2,6 @@ package de.danoeh.antennapod.activity;
import android.annotation.TargetApi;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.graphics.PixelFormat;
import android.os.Build;
import android.os.Bundle;
@@ -479,7 +478,6 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
cardViewSeek = findViewById(R.id.cardViewSeek);
txtvSeek = findViewById(R.id.txtvSeek);
- SharedPreferences prefs = getSharedPreferences(PREFS, MODE_PRIVATE);
showTimeLeft = UserPreferences.shouldShowRemainingTime();
Log.d("timeleft", showTimeLeft ? "true" : "false");
txtvLength = findViewById(R.id.txtvLength);
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
index 86bba0d50..2ba46a7ae 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
@@ -58,9 +58,8 @@ public class NavListAdapter extends RecyclerView.Adapter<NavListAdapter.Holder>
*/
public static final String SUBSCRIPTION_LIST_TAG = "SubscriptionList";
- private static List<String> fragmentTags;
- private static String[] titles;
-
+ private final List<String> fragmentTags = new ArrayList<>();
+ private final String[] titles;
private final ItemAccess itemAccess;
private final WeakReference<Activity> activity;
public boolean showSubscriptionList = true;
@@ -98,7 +97,8 @@ public class NavListAdapter extends RecyclerView.Adapter<NavListAdapter.Holder>
showSubscriptionList = false;
}
- fragmentTags = newTags;
+ fragmentTags.clear();
+ fragmentTags.addAll(newTags);
notifyDataSetChanged();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java b/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java
index 906d50c61..73e19c746 100644
--- a/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java
+++ b/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java
@@ -5,7 +5,6 @@ import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.documentfile.provider.DocumentFile;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
@@ -37,9 +36,6 @@ public class DocumentFileExportWorker {
OutputStreamWriter writer = null;
try {
Uri uri = output.getUri();
- if (uri == null) {
- throw new FileNotFoundException("Export file not found.");
- }
outputStream = context.getContentResolver().openOutputStream(uri);
if (outputStream == null) {
throw new IOException();
diff --git a/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java b/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java
index 0930b59eb..af9f041af 100644
--- a/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java
+++ b/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java
@@ -41,8 +41,8 @@ public class ExportWorker {
public Observable<File> exportObservable() {
if (output.exists()) {
- Log.w(TAG, "Overwriting previously exported file.");
- output.delete();
+ boolean success = output.delete();
+ Log.w(TAG, "Overwriting previously exported file: " + success);
}
return Observable.create(subscriber -> {
OutputStreamWriter writer = null;
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java
index d0fb91692..375f676c8 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java
@@ -206,7 +206,7 @@ public class ProxyDialog {
private boolean checkPort() {
int port = getPort();
- if(port < 0 && port > 65535) {
+ if (port < 0 || port > 65535) {
etPort.setError(context.getString(R.string.proxy_port_invalid_error));
return false;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/ItunesTopListLoader.java b/app/src/main/java/de/danoeh/antennapod/discovery/ItunesTopListLoader.java
index e1034f89b..e4135fcaa 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/ItunesTopListLoader.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/ItunesTopListLoader.java
@@ -1,7 +1,6 @@
package de.danoeh.antennapod.discovery;
import android.content.Context;
-import android.content.SharedPreferences;
import android.util.Log;
import de.danoeh.antennapod.R;
@@ -24,8 +23,6 @@ import java.util.List;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
-import static android.content.Context.MODE_PRIVATE;
-
public class ItunesTopListLoader {
private static final String TAG = "ITunesTopListLoader";
private final Context context;
@@ -38,13 +35,6 @@ public class ItunesTopListLoader {
this.context = context;
}
- public Single<List<PodcastSearchResult>> loadToplist() {
- String defaultCountry = Locale.getDefault().getCountry();
- SharedPreferences prefs = context.getSharedPreferences(PREFS, MODE_PRIVATE);
- String countryCode = prefs.getString(PREF_KEY_COUNTRY_CODE, COUNTRY_CODE_UNSET);
- return this.loadToplist(countryCode, 25);
- }
-
public Single<List<PodcastSearchResult>> loadToplist(String country, int limit) {
return Single.create((SingleOnSubscribe<List<PodcastSearchResult>>) emitter -> {
OkHttpClient client = AntennapodHttpClient.getHttpClient();
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java
index 16c5548be..dfea627df 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcherRegistry.java
@@ -12,7 +12,7 @@ public class PodcastSearcherRegistry {
private PodcastSearcherRegistry() {
}
- public static List<SearcherInfo> getSearchProviders() {
+ public static synchronized List<SearcherInfo> getSearchProviders() {
if (searchProviders == null) {
searchProviders = new ArrayList<>();
searchProviders.add(new SearcherInfo(new CombinedSearcher(), 1.0f));
diff --git a/app/src/main/java/de/danoeh/antennapod/error/CrashReportWriter.java b/app/src/main/java/de/danoeh/antennapod/error/CrashReportWriter.java
index dc62863f9..23c8ffdd5 100644
--- a/app/src/main/java/de/danoeh/antennapod/error/CrashReportWriter.java
+++ b/app/src/main/java/de/danoeh/antennapod/error/CrashReportWriter.java
@@ -7,7 +7,6 @@ import de.danoeh.antennapod.BuildConfig;
import org.apache.commons.io.IOUtils;
import java.io.File;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
@@ -40,7 +39,7 @@ public class CrashReportWriter implements Thread.UncaughtExceptionHandler {
File path = getFile();
PrintWriter out = null;
try {
- out = new PrintWriter(new FileWriter(path));
+ out = new PrintWriter(path, "UTF-8");
out.println("## Crash info");
out.println("Time: " + new SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.getDefault()).format(new Date()));
out.println("AntennaPod version: " + BuildConfig.VERSION_NAME);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
index 612959c04..18b011a08 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -27,7 +27,7 @@ public class AllEpisodesFragment extends EpisodesListFragment {
private static final String PREF_NAME = "PrefAllEpisodesFragment";
private static final String PREF_FILTER = "filter";
- private static FeedItemFilter feedItemFilter = new FeedItemFilter("");
+ private FeedItemFilter feedItemFilter = new FeedItemFilter("");
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/PagedToolbarFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/PagedToolbarFragment.java
index 2ed26b1c0..f79bffabc 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/PagedToolbarFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/PagedToolbarFragment.java
@@ -1,5 +1,6 @@
package de.danoeh.antennapod.fragment;
+import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.widget.ViewPager2;
@@ -14,12 +15,12 @@ public abstract class PagedToolbarFragment extends Fragment {
/**
* Invalidate the toolbar menu if the current child fragment is visible.
- * @param child The fragment, or null to force-refresh whatever the active fragment is.
+ * @param child The fragment to invalidate
*/
- void invalidateOptionsMenuIfActive(Fragment child) {
+ void invalidateOptionsMenuIfActive(@NonNull Fragment child) {
Fragment visibleChild = getChildFragmentManager().findFragmentByTag("f" + viewPager.getCurrentItem());
- if (visibleChild == child || child == null) {
- child.onPrepareOptionsMenu(toolbar.getMenu());
+ if (visibleChild == child) {
+ visibleChild.onPrepareOptionsMenu(toolbar.getMenu());
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
index 58cfece14..f6b7e74bb 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
@@ -291,6 +291,9 @@ public class SubscriptionFragment extends Fragment implements Toolbar.OnMenuItem
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
+ if (menuInfo == null) {
+ return;
+ }
AdapterView.AdapterContextMenuInfo adapterInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
int position = adapterInfo.position;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java
index 0ce38656a..0d9181d84 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagFragment.java
@@ -1,13 +1,13 @@
package de.danoeh.antennapod.fragment.gpodnet;
import android.os.Bundle;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import de.danoeh.antennapod.core.sync.gpoddernet.GpodnetService;
import de.danoeh.antennapod.core.sync.gpoddernet.GpodnetServiceException;
import de.danoeh.antennapod.core.sync.gpoddernet.model.GpodnetPodcast;
import de.danoeh.antennapod.core.sync.gpoddernet.model.GpodnetTag;
-import org.apache.commons.lang3.Validate;
import de.danoeh.antennapod.activity.MainActivity;
@@ -24,8 +24,7 @@ public class TagFragment extends PodcastListFragment {
private GpodnetTag tag;
- public static TagFragment newInstance(GpodnetTag tag) {
- Validate.notNull(tag);
+ public static TagFragment newInstance(@NonNull GpodnetTag tag) {
TagFragment fragment = new TagFragment();
Bundle args = new Bundle();
args.putParcelable("tag", tag);
@@ -38,7 +37,9 @@ public class TagFragment extends PodcastListFragment {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
- Validate.isTrue(args != null && args.getParcelable("tag") != null, "args invalid");
+ if (args == null || args.getParcelable("tag") == null) {
+ throw new IllegalArgumentException("Arguments not given");
+ }
tag = args.getParcelable("tag");
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java
index b844234b7..dcd720dc2 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java
@@ -29,7 +29,7 @@ public class DevelopersFragment extends ListFragment {
developersLoader = Single.create((SingleOnSubscribe<ArrayList<SimpleIconListAdapter.ListItem>>) emitter -> {
ArrayList<SimpleIconListAdapter.ListItem> developers = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(
- getContext().getAssets().open("developers.csv")));
+ getContext().getAssets().open("developers.csv"), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
String[] info = line.split(";");
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/LicensesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/LicensesFragment.java
index 97565a613..38e532aed 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/LicensesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/LicensesFragment.java
@@ -95,7 +95,7 @@ public class LicensesFragment extends ListFragment {
private void showLicenseText(String licenseTextFile) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
- getContext().getAssets().open(licenseTextFile)));
+ getContext().getAssets().open(licenseTextFile), "UTF-8"));
StringBuilder licenseText = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java
index d759a5ff2..1b4beeea0 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java
@@ -29,7 +29,7 @@ public class SpecialThanksFragment extends ListFragment {
translatorsLoader = Single.create((SingleOnSubscribe<ArrayList<SimpleIconListAdapter.ListItem>>) emitter -> {
ArrayList<SimpleIconListAdapter.ListItem> translators = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(
- getContext().getAssets().open("special_thanks.csv")));
+ getContext().getAssets().open("special_thanks.csv"), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
String[] info = line.split(";");
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java
index b77c74de6..ed0d53145 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java
@@ -29,7 +29,7 @@ public class TranslatorsFragment extends ListFragment {
translatorsLoader = Single.create((SingleOnSubscribe<ArrayList<SimpleIconListAdapter.ListItem>>) emitter -> {
ArrayList<SimpleIconListAdapter.ListItem> translators = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(
- getContext().getAssets().open("translators.csv")));
+ getContext().getAssets().open("translators.csv"), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
String[] info = line.split(";");