Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-05-03 21:11:35 +0300
committerStefan Niedermann <info@niedermann.it>2021-05-03 21:11:35 +0300
commitb43ec8fd32811ee6d498d5304fe262a9228f36ad (patch)
tree2fcda6f7fe6d74549c5a40e35cd431ba77a65246 /News-Android-App/src/main/java
parentfeb3ed672129182b2bf6f6512ac8fcd467dc8394 (diff)
Remove warnings, use lambdas, use try-with, ...
Diffstat (limited to 'News-Android-App/src/main/java')
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java37
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastFeedArrayAdapter.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/SubscriptionExpandableListAdapter.java75
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/LoginDialogActivity.java29
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewFeedActivity.java39
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java81
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailFragment.java49
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailImageDialogFragment.java108
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java54
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java127
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListDialogFragment.java227
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java49
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragment.java12
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java18
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SyncIntervalSelectorActivity.java8
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/VersionInfoDialogFragment.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/DividerItemDecoration.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/NewsListRecyclerAdapter.java18
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/ProgressBarWebChromeClient.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadChangelogTask.java16
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadImageHandler.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudAccountAuthenticator.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java43
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/chrometabs/CustomTabActivityManager.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java67
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseHelperOrm.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/generator/DatabaseOrmGenerator.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/CurrentRssItemViewDao.java18
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FeedDao.java16
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FolderDao.java9
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/RssItemDao.java16
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/di/ApiModule.java7
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/events/podcast/UpdatePodcastStatusEvent.java17
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/AutoResizeTextView.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ColorHelper.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/FavIconHandler.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ForegroundListener.java16
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageDownloadFinished.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NetworkConnection.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NewsFileUtils.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/OpmlXmlParser.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/PostDelayHandler.java23
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/SquareRoundedBitmapDisplayer.java1
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeChooser.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeUtils.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/interfaces/ExpListTextClicked.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/AbstractItem.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/ConcreteFeedItem.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/FolderSubscribtionItem.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/NextcloudStatus.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/Tuple.java1
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java10
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/FeedItemTags.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/InsertIntoDatabase.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OkHttpImageDownloader.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OnAsyncTaskCompletedListener.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/RssItemObservable.java8
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadImagesService.java7
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadWebPageService.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastDownloadService.java7
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java21
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/SyncItemStateService.java5
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/events/SyncFailedEvent.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/MediaPlayerPlaybackService.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/PlaybackService.java4
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingDialogFragment.java17
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingTrustManager.java49
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/OkHttpSSLClient.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/TLSSocketFactory.java8
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/AnimatingProgressBar.java16
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastNotification.java2
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java3
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetNewsViewsFactory.java6
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetProvider.java8
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetService.java2
83 files changed, 631 insertions, 855 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java
index 1d42285a..ee3da659 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/Constants.java
@@ -31,7 +31,7 @@ public class Constants {
Pattern p = Pattern.compile("(\\d+).(\\d+).(\\d+)");
Matcher m = p.matcher(appVersion);
- int version[] = new int[] { 0, 0, 0 };
+ int[] version = new int[] { 0, 0, 0 };
if (m.matches()) {
version[0] = Integer.parseInt(m.group(1));
version[1] = Integer.parseInt(m.group(2));
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java
index 5e9b45b7..185ccb8c 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastArrayAdapter.java
@@ -1,5 +1,6 @@
package de.luhmer.owncloudnewsreader.ListView;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
@@ -20,8 +21,8 @@ import de.luhmer.owncloudnewsreader.model.PodcastItem;
public class PodcastArrayAdapter extends ArrayAdapter<PodcastItem> {
- private LayoutInflater inflater;
- private EventBus eventBus;
+ private final LayoutInflater inflater;
+ private final EventBus eventBus;
public PodcastArrayAdapter(Context context, PodcastItem[] values) {
super(context, R.layout.podcast_row, values);
@@ -30,6 +31,7 @@ public class PodcastArrayAdapter extends ArrayAdapter<PodcastItem> {
//eventBus.register(this);
}
+ @SuppressLint("SetTextI18n")
@Override
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
@@ -55,32 +57,21 @@ public class PodcastArrayAdapter extends ArrayAdapter<PodcastItem> {
});
- holder.binding.flDownloadPodcastWrapper.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- holder.binding.flDownloadPodcastWrapper.setVisibility(View.GONE);
+ holder.binding.flDownloadPodcastWrapper.setOnClickListener(view1 -> {
+ holder.binding.flDownloadPodcastWrapper.setVisibility(View.GONE);
- Toast.makeText(getContext(), "Starting download.. Please wait", Toast.LENGTH_SHORT).show();
+ Toast.makeText(getContext(), "Starting download.. Please wait", Toast.LENGTH_SHORT).show();
- eventBus.post(new StartDownloadPodcast() {{ podcast = podcastItem; }});
- }
+ eventBus.post(new StartDownloadPodcast() {{ podcast = podcastItem; }});
});
- holder.binding.flPlayPodcastWrapper.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- playPodcast(position);
- }
- });
+ holder.binding.flPlayPodcastWrapper.setOnClickListener(view12 -> playPodcast(position));
- holder.binding.flDeletePodcastWrapper.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if(NewsFileUtils.deletePodcastFile(getContext(), podcastItem.link)) {
- podcastItem.offlineCached = false;
- podcastItem.downloadProgress = PodcastItem.DOWNLOAD_NOT_STARTED;
- notifyDataSetChanged();
- }
+ holder.binding.flDeletePodcastWrapper.setOnClickListener(view13 -> {
+ if(NewsFileUtils.deletePodcastFile(getContext(), podcastItem.link)) {
+ podcastItem.offlineCached = false;
+ podcastItem.downloadProgress = PodcastItem.DOWNLOAD_NOT_STARTED;
+ notifyDataSetChanged();
}
});
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastFeedArrayAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastFeedArrayAdapter.java
index f30dd4e9..d87363ff 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastFeedArrayAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/PodcastFeedArrayAdapter.java
@@ -18,8 +18,8 @@ import de.luhmer.owncloudnewsreader.model.PodcastFeedItem;
public class PodcastFeedArrayAdapter extends ArrayAdapter<PodcastFeedItem> {
- private LayoutInflater inflater;
- private EventBus eventBus;
+ private final LayoutInflater inflater;
+ private final EventBus eventBus;
public PodcastFeedArrayAdapter(Context context, PodcastFeedItem[] values) {
super(context, R.layout.podcast_feed_row, values);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/SubscriptionExpandableListAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/SubscriptionExpandableListAdapter.java
index de94ffb9..960247cd 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/SubscriptionExpandableListAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ListView/SubscriptionExpandableListAdapter.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -64,15 +64,14 @@ import static de.luhmer.owncloudnewsreader.ListView.SubscriptionExpandableListAd
public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter {
private final String TAG = getClass().getCanonicalName();
- private Context mContext;
- private DatabaseConnectionOrm dbConn;
+ private final Context mContext;
+ private final DatabaseConnectionOrm dbConn;
- private ListView listView;
+ private final ListView listView;
private ExpListTextClicked eListTextClickHandler;
- private FavIconHandler favIconHandler;
- private LayoutInflater inflater;
+ private final FavIconHandler favIconHandler;
private ArrayList<AbstractItem> mCategoriesArrayList;
private SparseArray<ArrayList<ConcreteFeedItem>> mItemsArrayList;
@@ -83,12 +82,12 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
private SparseArray<String> unreadCountFolders;
private SparseArray<String> unreadCountFeeds;
- private SharedPreferences mPrefs;
+ private final SharedPreferences mPrefs;
public enum SPECIAL_FOLDERS {
ALL_UNREAD_ITEMS(-10), ALL_STARRED_ITEMS(-11), ALL_ITEMS(-12), ITEMS_WITHOUT_FOLDER(-22);
- private int id;
+ private final int id;
SPECIAL_FOLDERS(int id) {
this.id = id;
}
@@ -112,7 +111,6 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
this.favIconHandler = new FavIconHandler(mContext);
this.mPrefs = prefs;
- this.inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.mContext = mContext;
this.dbConn = dbConn;
@@ -246,38 +244,30 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
}
viewHolder.binding.summary.setText(group.header);
- viewHolder.binding.listItemLayout.setOnClickListener(new OnClickListener() {
+ viewHolder.binding.listItemLayout.setOnClickListener(v -> {
- @Override
- public void onClick(View v) {
+ long idFeed = group.id_database;
+ boolean skipFireEvent = false;
- long idFeed = group.id_database;
- boolean skipFireEvent = false;
-
- if (group instanceof ConcreteFeedItem) {
- fireListTextClicked(idFeed, false, (long) ITEMS_WITHOUT_FOLDER.getValue());
- skipFireEvent = true;
- }
-
- if (!skipFireEvent)
- fireListTextClicked(idFeed, true, ((FolderSubscribtionItem) group).idFolder);
+ if (group instanceof ConcreteFeedItem) {
+ fireListTextClicked(idFeed, false, (long) ITEMS_WITHOUT_FOLDER.getValue());
+ skipFireEvent = true;
}
- });
- viewHolder.binding.listItemLayout.setOnLongClickListener(new View.OnLongClickListener() {
+ if (!skipFireEvent)
+ fireListTextClicked(idFeed, true, ((FolderSubscribtionItem) group).idFolder);
+ });
- @Override
- public boolean onLongClick(View v) {
+ viewHolder.binding.listItemLayout.setOnLongClickListener(v -> {
- long idFeed = group.id_database;
+ long idFeed = group.id_database;
- if (group instanceof ConcreteFeedItem) {
- fireListTextLongClicked(idFeed, false, (long) ITEMS_WITHOUT_FOLDER.getValue());
- } else {
- fireListTextLongClicked(idFeed, true, ((FolderSubscribtionItem) group).idFolder);
- }
- return true; //consume event
+ if (group instanceof ConcreteFeedItem) {
+ fireListTextLongClicked(idFeed, false, (long) ITEMS_WITHOUT_FOLDER.getValue());
+ } else {
+ fireListTextLongClicked(idFeed, true, ((FolderSubscribtionItem) group).idFolder);
}
+ return true; //consume event
});
@@ -337,14 +327,11 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
contentDescriptionId = R.string.content_desc_expand;
}
- viewHolder.binding.imgViewExpandableIndicator.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- if(isExpanded)
- ((ExpandableListView)listView).collapseGroup(groupPosition);
- else
- ((ExpandableListView)listView).expandGroup(groupPosition);
- }
+ viewHolder.binding.imgViewExpandableIndicator.setOnClickListener(v -> {
+ if(isExpanded)
+ ((ExpandableListView)listView).collapseGroup(groupPosition);
+ else
+ ((ExpandableListView)listView).expandGroup(groupPosition);
});
}
}
@@ -448,7 +435,7 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
}
}
- notifyCountDataSetChanged(unreadCountFoldersTemp, unreadCountFeedsTemp, urlsToFavIconsTemp, starredCountFeedsTemp);
+ notifyCountDataSetChanged(unreadCountFoldersTemp, unreadCountFeedsTemp, starredCountFeedsTemp);
super.onPostExecute(aVoid);
}
}
@@ -527,7 +514,7 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
for(int groupPosition = 0; groupPosition < mCategoriesArrayListAsync.size(); groupPosition++) {
//int parent_id = (int)getGroupId(groupPosition);
int parent_id = (int) mCategoriesArrayListAsync.get(groupPosition).id_database;
- mItemsArrayListAsync.append(parent_id, new ArrayList<ConcreteFeedItem>());
+ mItemsArrayListAsync.append(parent_id, new ArrayList<>());
List<Feed> feedItemList = null;
@@ -557,7 +544,7 @@ public class SubscriptionExpandableListAdapter extends BaseExpandableListAdapter
@SuppressLint("NewApi") // wrongly reports setSelectionFromTop is only available in lollipop
- public void notifyCountDataSetChanged(SparseArray<String> unreadCountFolders, SparseArray<String> unreadCountFeeds, SparseArray<String> urlsToFavIcons, SparseArray<String> starredCountFeeds) {
+ public void notifyCountDataSetChanged(SparseArray<String> unreadCountFolders, SparseArray<String> unreadCountFeeds, SparseArray<String> starredCountFeeds) {
this.unreadCountFolders = unreadCountFolders;
this.unreadCountFeeds = unreadCountFeeds;
this.starredCountFeeds = starredCountFeeds;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/LoginDialogActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/LoginDialogActivity.java
index da8feb32..e12fbabe 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/LoginDialogActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/LoginDialogActivity.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -63,6 +63,7 @@ import com.nextcloud.android.sso.ui.UiExceptionManager;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Objects;
import javax.inject.Inject;
@@ -79,6 +80,7 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import static de.luhmer.owncloudnewsreader.Constants.MIN_NEXTCLOUD_FILES_APP_VERSION_CODE;
+import static java.util.Objects.requireNonNull;
/**
* Activity which displays a login screen to the user, offering registration as
@@ -141,15 +143,9 @@ public class LoginDialogActivity extends AppCompatActivity {
binding.edtOwncloudRootPath.setText(mOc_root_path);
binding.cbAllowAllSSLCertificates.setChecked(mCbDisableHostnameVerification);
- binding.cbAllowAllSSLCertificates.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @SuppressLint("ApplySharedPref")
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- mPrefs.edit()
- .putBoolean(SettingsActivity.CB_DISABLE_HOSTNAME_VERIFICATION_STRING, isChecked)
- .commit();
- }
- });
+ binding.cbAllowAllSSLCertificates.setOnCheckedChangeListener((buttonView, isChecked) -> mPrefs.edit()
+ .putBoolean(SettingsActivity.CB_DISABLE_HOSTNAME_VERIFICATION_STRING, isChecked)
+ .commit());
}
@Override
@@ -200,7 +196,7 @@ public class LoginDialogActivity extends AppCompatActivity {
binding.oldLoginWrapper.setVisibility(View.VISIBLE);
}
- private TextWatcher PasswordTextChangedListener = new TextWatcher() {
+ private final TextWatcher PasswordTextChangedListener = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -219,7 +215,7 @@ public class LoginDialogActivity extends AppCompatActivity {
}
};
- private View.OnClickListener ImgViewShowPasswordListener = new View.OnClickListener() {
+ private final View.OnClickListener ImgViewShowPasswordListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
mPasswordVisible = !mPasswordVisible;
@@ -274,21 +270,22 @@ public class LoginDialogActivity extends AppCompatActivity {
* If there are form errors (invalid email, missing fields, etc.), the
* errors are presented and no actual login attempt is made.
*/
- public void attemptLogin() {
+ @SuppressLint({"SetTextI18n"})
+ public void attemptLogin() {
// Reset errors.
binding.username.setError(null);
binding.password.setError(null);
binding.edtOwncloudRootPath.setError(null);
// Append "https://" is url doesn't contain it already
- mOc_root_path = binding.edtOwncloudRootPath.getText().toString().trim();
+ mOc_root_path = requireNonNull(binding.edtOwncloudRootPath.getText()).toString().trim();
if(!mOc_root_path.startsWith("http")) {
binding.edtOwncloudRootPath.setText("https://" + mOc_root_path);
}
// Store values at the time of the login attempt.
- mUsername = binding.username.getText().toString().trim();
- mPassword = binding.password.getText().toString();
+ mUsername = requireNonNull(binding.username.getText()).toString().trim();
+ mPassword = requireNonNull(binding.password.getText()).toString();
mOc_root_path = binding.edtOwncloudRootPath.getText().toString().trim();
boolean cancel = false;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewFeedActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewFeedActivity.java
index 7f35bd06..2b9d4848 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewFeedActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewFeedActivity.java
@@ -48,6 +48,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import javax.inject.Inject;
@@ -65,6 +66,8 @@ import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
+import static java.util.Objects.requireNonNull;
+
public class NewFeedActivity extends AppCompatActivity {
private static final String TAG = NewFeedActivity.class.getCanonicalName();
@@ -94,10 +97,8 @@ public class NewFeedActivity extends AppCompatActivity {
binding.btnImportOpml.setOnClickListener((v) -> importOpml());
binding.btnExportOpml.setOnClickListener((v) -> exportOpml());
- if (binding.toolbarLayout.toolbar != null) {
- setSupportActionBar(binding.toolbarLayout.toolbar);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- }
+ setSupportActionBar(binding.toolbarLayout.toolbar);
+ requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(this);
@@ -124,7 +125,7 @@ public class NewFeedActivity extends AppCompatActivity {
url = intent.getStringExtra(Intent.EXTRA_TEXT);
}
- if(url.endsWith(".opml")) {
+ if(url != null && url.endsWith(".opml")) {
AsyncTaskHelper.StartAsyncTask(new ImportOpmlSubscriptionsTask(url, NewFeedActivity.this));
}
@@ -229,7 +230,7 @@ public class NewFeedActivity extends AppCompatActivity {
private final String mUrlToFile;
private HashMap<String, String> extractedUrls;
private ProgressDialog pd;
- private Context mContext;
+ private final Context mContext;
ImportOpmlSubscriptionsTask(String urlToFile, Context context) {
this.mUrlToFile = urlToFile;
@@ -318,16 +319,16 @@ public class NewFeedActivity extends AppCompatActivity {
@Override
protected void onProgressUpdate(List<String>... values) {
- String text = "This might take a few minutes.. please wait:\n";
+ StringBuilder text = new StringBuilder("This might take a few minutes.. please wait:\n");
List<String> log = values[0];
for (String line : log) {
- text += "\n" + line;
+ text.append("\n").append(line);
}
pd.setMax(extractedUrls.size());
pd.setProgress(log.size());
- pd.setMessage(text);
+ pd.setMessage(text.toString());
super.onProgressUpdate(values);
}
@@ -390,7 +391,7 @@ public class NewFeedActivity extends AppCompatActivity {
mApi.getNewsAPI().createFeed(urlToFeed, folder.getId()).enqueue(new Callback<List<Feed>>() {
@Override
- public void onResponse(Call<List<Feed>> call, final Response<List<Feed>> response) {
+ public void onResponse(@NonNull Call<List<Feed>> call, @NonNull final Response<List<Feed>> response) {
runOnUiThread(() -> {
showProgress(false);
@@ -423,7 +424,7 @@ public class NewFeedActivity extends AppCompatActivity {
}
@Override
- public void onFailure(Call<List<Feed>> call, final Throwable t) {
+ public void onFailure(@NonNull Call<List<Feed>> call, @NonNull final Throwable t) {
runOnUiThread(() -> {
showProgress(false);
@@ -480,14 +481,12 @@ public class NewFeedActivity extends AppCompatActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- // Respond to the action bar's Up/Home button
- case android.R.id.home:
- //NavUtils.navigateUpFromSameTask(this);
- finish();
- return true;
- default:
- Log.v(TAG, "Unknown option selected..");
+ // Respond to the action bar's Up/Home button
+ if (item.getItemId() == android.R.id.home) {//NavUtils.navigateUpFromSameTask(this);
+ finish();
+ return true;
+ } else {
+ Log.v(TAG, "Unknown option selected..");
}
return super.onOptionsItemSelected(item);
}
@@ -498,7 +497,7 @@ public class NewFeedActivity extends AppCompatActivity {
@NonNull public static String convertStreamToString(InputStream is) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
- String line = null;
+ String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
index 801c7612..5785f081 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java
@@ -1,5 +1,5 @@
-/**
- * Android ownCloud News
+/*
+* Android ownCloud News
*
* @author David Luhmer
* @copyright 2013 David Luhmer david-dev@live.de
@@ -38,6 +38,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
+import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
@@ -47,6 +48,7 @@ import androidx.viewpager.widget.ViewPager;
import java.lang.ref.WeakReference;
import java.util.HashSet;
+import java.util.Objects;
import java.util.Set;
import javax.inject.Inject;
@@ -61,6 +63,8 @@ import de.luhmer.owncloudnewsreader.model.TTSItem;
import de.luhmer.owncloudnewsreader.view.PodcastSlidingUpPanelLayout;
import de.luhmer.owncloudnewsreader.widget.WidgetProvider;
+import static java.util.Objects.requireNonNull;
+
public class NewsDetailActivity extends PodcastFragmentActivity {
@@ -141,9 +145,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
}
- if (binding.toolbarLayout.toolbar != null) {
- setSupportActionBar(binding.toolbarLayout.toolbar);
- }
+ setSupportActionBar(binding.toolbarLayout.toolbar);
/*
if (bottomAppBar != null) {
setSupportActionBar(bottomAppBar);
@@ -159,10 +161,10 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
item_id = intent.getExtras().getInt(NewsReaderListActivity.ITEM_ID);
}
if (intent.hasExtra(NewsReaderListActivity.TITLE)) {
- getSupportActionBar().setTitle(intent.getExtras().getString(NewsReaderListActivity.TITLE));
+ requireNonNull(getSupportActionBar()).setTitle(intent.getExtras().getString(NewsReaderListActivity.TITLE));
}
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
rssItems = dbConn.getAllRssItems();
@@ -289,7 +291,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
rssItems.close();
}
- private ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {
+ private final ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int pos) {
@@ -348,9 +350,9 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
if (rssItems.get(position).getFeed() != null) {
// Try getting the feed title and use it for the action bar title
- getSupportActionBar().setTitle(rssItems.get(position).getFeed().getFeedTitle());
+ requireNonNull(getSupportActionBar()).setTitle(rssItems.get(position).getFeed().getFeedTitle());
} else {
- getSupportActionBar().setTitle(rssItems.get(position).getTitle());
+ requireNonNull(getSupportActionBar()).setTitle(rssItems.get(position).getTitle());
}
RssItem rssItem = rssItems.get(position);
@@ -480,38 +482,24 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
public boolean onOptionsItemSelected(MenuItem item) {
RssItem rssItem = rssItems.get(currentPosition);
- switch (item.getItemId()) {
- case android.R.id.home:
- onBackPressed();
- return true;
-
- case R.id.action_read:
- this.markRead(currentPosition);
- break;
-
- case R.id.action_starred:
- toggleRssItemStarredState();
- break;
-
- case R.id.action_openInBrowser:
- this.openInBrowser(currentPosition);
- break;
-
- case R.id.action_playPodcast:
- openPodcast(rssItem);
- break;
-
- case R.id.action_tts:
- this.startTTS(currentPosition);
- break;
-
- case R.id.action_ShareItem:
- this.share(currentPosition);
- break;
-
- case R.id.action_incognito_mode:
- toggleIncognitoMode();
- break;
+ final int itemId = item.getItemId();
+ if (itemId == android.R.id.home) {
+ onBackPressed();
+ return true;
+ } else if (itemId == R.id.action_read) {
+ this.markRead(currentPosition);
+ } else if (itemId == R.id.action_starred) {
+ toggleRssItemStarredState();
+ } else if (itemId == R.id.action_openInBrowser) {
+ this.openInBrowser(currentPosition);
+ } else if (itemId == R.id.action_playPodcast) {
+ openPodcast(rssItem);
+ } else if (itemId == R.id.action_tts) {
+ this.startTTS(currentPosition);
+ } else if (itemId == R.id.action_ShareItem) {
+ this.share(currentPosition);
+ } else if (itemId == R.id.action_incognito_mode) {
+ toggleIncognitoMode();
}
return super.onOptionsItemSelected(item);
@@ -527,7 +515,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
NewsDetailFragment newsDetailFragment = getNewsDetailFragmentAtPosition(currentPosition);
String link = "about:blank";
- if (newsDetailFragment != null && newsDetailFragment.binding.webview != null) {
+ if (newsDetailFragment != null) {
link = newsDetailFragment.binding.webview.getUrl();
}
@@ -536,7 +524,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
}
if (link.length() > 0) {
- newsDetailFragment.loadURL(link);
+ requireNonNull(newsDetailFragment).loadURL(link);
}
}
@@ -610,7 +598,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://"));
ResolveInfo resolveInfo = getPackageManager().resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY);
- Log.v(TAG, "Default Browser is: " + resolveInfo.loadLabel(getPackageManager()).toString());
+ Log.v(TAG, "Default Browser is: " + requireNonNull(resolveInfo).loadLabel(getPackageManager()).toString());
return (resolveInfo.loadLabel(getPackageManager()).toString().contains("Chrome"));
}
@@ -710,6 +698,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
}
}
+ @NonNull
@Override
public Fragment getItem(int position) {
NewsDetailFragment fragment = null;
@@ -730,7 +719,7 @@ public class NewsDetailActivity extends PodcastFragmentActivity {
}
@Override
- public void destroyItem(ViewGroup container, int position, Object object) {
+ public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
items.remove(position);
super.destroyItem(container, position, object);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailFragment.java
index 3e8cc957..755349ea 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailFragment.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -39,11 +39,14 @@ import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.browser.customtabs.CustomTabsIntent;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
import org.jsoup.Jsoup;
@@ -92,7 +95,7 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- ((NewsReaderApplication) getActivity().getApplication()).getAppComponent().injectFragment(this);
+ ((NewsReaderApplication) requireActivity().getApplication()).getAppComponent().injectFragment(this);
// Retain this fragment across configuration changes.
setRetainInstance(true);
@@ -115,24 +118,18 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
@Override
public void onDestroy() {
super.onDestroy();
- if(binding.webview != null) {
- binding.webview.destroy();
- }
+ binding.webview.destroy();
}
public void pauseCurrentPage() {
- if(binding.webview != null) {
- binding.webview.onPause();
- binding.webview.pauseTimers();
- }
+ binding.webview.onPause();
+ binding.webview.pauseTimers();
}
public void resumeCurrentPage() {
- if(binding.webview != null) {
- binding.webview.onResume();
- binding.webview.resumeTimers();
- }
+ binding.webview.onResume();
+ binding.webview.resumeTimers();
}
/**
@@ -159,10 +156,10 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentNewsDetailBinding.inflate(inflater, container, false);
- section_number = (Integer) getArguments().get(ARG_SECTION_NUMBER);
+ section_number = (Integer) requireArguments().get(ARG_SECTION_NUMBER);
// Do not reload webview if retained
if(savedInstanceState == null) {
@@ -181,14 +178,14 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
}
protected void syncIncognitoState() {
- NewsDetailActivity ndActivity = ((NewsDetailActivity)getActivity());
+ NewsDetailActivity ndActivity = ((NewsDetailActivity) requireActivity());
boolean isIncognito = ndActivity.isIncognitoEnabled();
binding.webview.getSettings().setBlockNetworkLoads(isIncognito);
// binding.webview.getSettings().setBlockNetworkImage(isIncognito);
}
@Override
- public void onSaveInstanceState(Bundle outState) {
+ public void onSaveInstanceState(@NonNull Bundle outState) {
binding.webview.saveState(outState);
}
@@ -261,8 +258,6 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
/**
* This function has no effect on devices with api level < HONEYCOMB
- * @param htmlPage
- * @param webView
*/
private void setSoftwareRenderModeForWebView(String htmlPage, WebView webView) {
if (htmlPage.contains(".gif")) {
@@ -307,7 +302,7 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
binding.webview.setWebViewClient(new WebViewClient() {
- private Map<String, Boolean> loadedUrls = new HashMap<>();
+ private final Map<String, Boolean> loadedUrls = new HashMap<>();
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
@@ -385,13 +380,14 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
binding.tvOfflineVersion.setVisibility(View.GONE);
switch (selectedBrowser) {
case 0: // Custom Tabs
+ final FragmentActivity activity = requireActivity();
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder()
- .setToolbarColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary))
+ .setToolbarColor(ContextCompat.getColor(activity, R.color.colorPrimary))
.setShowTitle(true)
- .setStartAnimations(getActivity(), R.anim.slide_in_right, R.anim.slide_out_left)
- .setExitAnimations(getActivity(), R.anim.slide_in_left, R.anim.slide_out_right)
+ .setStartAnimations(activity, R.anim.slide_in_right, R.anim.slide_out_left)
+ .setExitAnimations(activity, R.anim.slide_in_left, R.anim.slide_out_right)
.addDefaultShareMenuItem();
- builder.build().launchUrl(getActivity(), Uri.parse(url));
+ builder.build().launchUrl(activity, Uri.parse(url));
break;
case 1: // External Browser
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
@@ -407,7 +403,7 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
}
- public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
+ public void onCreateContextMenu(@NonNull ContextMenu menu, @NonNull View view, ContextMenu.ContextMenuInfo menuInfo) {
if (!(view instanceof WebView)) {
Log.w(TAG, "onCreateContextMenu - no webview reference found");
return;
@@ -421,7 +417,7 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
int type = result.getType();
Document htmlDoc = Jsoup.parse(html);
- FragmentTransaction ft = getFragmentManager().beginTransaction();
+ FragmentTransaction ft = requireFragmentManager().beginTransaction();
String text;
DialogFragment newFragment;
@@ -505,6 +501,7 @@ public class NewsDetailFragment extends Fragment implements RssItemToHtmlTask.Li
* @return true when the current page on the webview's history stack is
* the original rss item page
*/
+ @SuppressWarnings("BooleanMethodIsAlwaysInverted")
private boolean isCurrentPageRssItem() {
if(binding.webview.copyBackForwardList().getCurrentItem() != null) {
String currentPageUrl = binding.webview.copyBackForwardList().getCurrentItem().getOriginalUrl();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailImageDialogFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailImageDialogFragment.java
index 36c61463..a2c22a76 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailImageDialogFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailImageDialogFragment.java
@@ -96,11 +96,12 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mDialogIcon = getArguments().getInt("titleIcon");
- mDialogTitle = getArguments().getString("title");
- mDialogText = getArguments().getString("text");
- mImageUrl = (URL) getArguments().getSerializable("imageUrl");
- mDialogType = (TYPE) getArguments().getSerializable("dialogType");
+ final Bundle args = requireArguments();
+ mDialogIcon = args.getInt("titleIcon");
+ mDialogTitle = args.getString("title");
+ mDialogText = args.getString("text");
+ mImageUrl = (URL) args.getSerializable("imageUrl");
+ mDialogType = (TYPE) args.getSerializable("dialogType");
mMenuItems = new LinkedHashMap<>();
@@ -120,24 +121,9 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
changeDownloadDir();
}
});
- mMenuItems.put(getString(R.string.action_img_open), new MenuAction() {
- @Override
- public void execute() {
- openLinkInBrowser(mImageUrl);
- }
- });
- mMenuItems.put(getString(R.string.action_img_sharelink), new MenuAction() {
- @Override
- public void execute() {
- shareImage();
- }
- });
- mMenuItems.put(getString(R.string.action_img_copylink), new MenuAction() {
- @Override
- public void execute() {
- copyToClipboard(mDialogTitle, mImageUrl.toString());
- }
- });
+ mMenuItems.put(getString(R.string.action_img_open), () -> openLinkInBrowser(mImageUrl));
+ mMenuItems.put(getString(R.string.action_img_sharelink), this::shareImage);
+ mMenuItems.put(getString(R.string.action_img_copylink), () -> copyToClipboard(mDialogTitle, mImageUrl.toString()));
} else if (mImageUrl.toString().startsWith("file:///")) {
mMenuItems.put(getString(R.string.action_img_download), new MenuActionLongClick() {
@Override
@@ -157,35 +143,20 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
}
break;
case URL:
- mMenuItems.put(getString(R.string.action_link_open), new MenuAction() {
- @Override
- public void execute() {
- try {
- openLinkInBrowser(new URL(mDialogText));
- } catch (MalformedURLException e) {
- Toast.makeText(getActivity(), getString(R.string.error_invalid_url), Toast.LENGTH_SHORT).show();
- e.printStackTrace();
- }
- }
- });
- mMenuItems.put(getString(R.string.action_link_share), new MenuAction() {
- @Override
- public void execute() {
- shareLink();
- }
- });
- mMenuItems.put(getString(R.string.action_link_copy), new MenuAction() {
- @Override
- public void execute() {
- copyToClipboard(mDialogTitle, mDialogText);
+ mMenuItems.put(getString(R.string.action_link_open), () -> {
+ try {
+ openLinkInBrowser(new URL(mDialogText));
+ } catch (MalformedURLException e) {
+ Toast.makeText(getActivity(), getString(R.string.error_invalid_url), Toast.LENGTH_SHORT).show();
+ e.printStackTrace();
}
});
+ mMenuItems.put(getString(R.string.action_link_share), this::shareLink);
+ mMenuItems.put(getString(R.string.action_link_copy), () -> copyToClipboard(mDialogTitle, mDialogText));
break;
}
- int style = DialogFragment.STYLE_NO_TITLE;
- int theme = R.style.FloatingDialog;
- setStyle(style, theme);
+ setStyle(DialogFragment.STYLE_NO_TITLE, R.style.FloatingDialog);
}
@Override
@@ -195,9 +166,10 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
}
private void showDownloadShowcase() {
- if(mMenuItems.containsKey(getActivity().getString(R.string.action_img_download))) {
+ final Context context = requireContext();
+ if(mMenuItems.containsKey(context.getString(R.string.action_img_download))) {
List<String> menuItemsList = new ArrayList<>(mMenuItems.keySet());
- int position = menuItemsList.indexOf(getActivity().getString(R.string.action_img_download));
+ int position = menuItemsList.indexOf(context.getString(R.string.action_img_download));
Log.v(TAG, "Position of Download Menu: " + position);
/*
// Bug in the Library.. ShowcaseView is rendered behind the DialogFragment //TODO check https://github.com/deano2390/MaterialShowcaseView/issues/51 for updates
@@ -233,7 +205,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
}
}
- ListView mListView = (ListView) v.findViewById(R.id.ic_menu_item_list);
+ ListView mListView = v.findViewById(R.id.ic_menu_item_list);
List<String> menuItemsList = new ArrayList<>(mMenuItems.keySet());
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(
@@ -278,7 +250,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
private void copyToClipboard(String label, String text) {
- ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Activity.CLIPBOARD_SERVICE);
+ ClipboardManager clipboard = (ClipboardManager) requireContext().getSystemService(Activity.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText(label, text);
clipboard.setPrimaryClip(clip);
Toast.makeText(getActivity(), getString(R.string.toast_copied_to_clipboard), Toast.LENGTH_SHORT).show();
@@ -312,11 +284,11 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
}
private void downloadImage(URL url) {
- Toast.makeText(getActivity().getApplicationContext(), getString(R.string.toast_img_download_wait), Toast.LENGTH_SHORT).show();
+ Toast.makeText(requireContext().getApplicationContext(), getString(R.string.toast_img_download_wait), Toast.LENGTH_SHORT).show();
if(isExternalStorageWritable()) {
String filename = url.getFile().substring(url.getFile().lastIndexOf('/') + 1, url.getFile().length());
- downloadManager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
+ downloadManager = (DownloadManager) requireContext().getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url.toString()));
request.setDestinationUri(getDownloadDir(filename));
request.setTitle(getString(R.string.app_name) + " - " + getString(R.string.action_img_download));
@@ -327,9 +299,9 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
//request.setVisibleInDownloadsUi(false);
//request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
downloadID = downloadManager.enqueue(request);
- getDialog().hide();
+ requireDialog().hide();
} else {
- Toast.makeText(getActivity().getApplicationContext(), getString(R.string.toast_img_notwriteable), Toast.LENGTH_LONG).show();
+ Toast.makeText(requireContext().getApplicationContext(), getString(R.string.toast_img_notwriteable), Toast.LENGTH_LONG).show();
dismiss();
}
}
@@ -343,24 +315,24 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
try {
NewsFileUtils.copyFile(new FileInputStream(path), new FileOutputStream(dstPath));
} catch (IOException e) {
- Toast.makeText(getActivity().getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
+ Toast.makeText(requireContext().getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
- NextcloudNotificationManager.showNotificationSaveSingleCachedImageService(getActivity().getApplicationContext(), CHANNEL_ID, dstPath);
- getDialog().hide();
+ NextcloudNotificationManager.showNotificationSaveSingleCachedImageService(requireContext().getApplicationContext(), CHANNEL_ID, dstPath);
+ requireDialog().hide();
} else {
- Toast.makeText(getActivity().getApplicationContext(), getString(R.string.toast_img_notwriteable), Toast.LENGTH_LONG).show();
+ Toast.makeText(requireContext().getApplicationContext(), getString(R.string.toast_img_notwriteable), Toast.LENGTH_LONG).show();
dismiss();
}
}
public boolean haveStoragePermission() {
if (Build.VERSION.SDK_INT >= 23) {
- if (checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
+ if (checkSelfPermission(requireContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED) {
Log.v("Permission error","You have permission");
return true;
} else {
Log.e("Permission error","Asking for permission");
- ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
+ ActivityCompat.requestPermissions(requireActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
return false;
}
}
@@ -374,7 +346,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
private void changeDownloadDir() {
final Intent chooserIntent = new Intent(getActivity(), DirectoryChooserActivity.class);
final DirectoryChooserConfig config = DirectoryChooserConfig.builder()
- .initialDirectory(getActivity().getPreferences(Context.MODE_PRIVATE).getString("manualImageDownloadLocation", ""))
+ .initialDirectory(requireActivity().getPreferences(Context.MODE_PRIVATE).getString("manualImageDownloadLocation", ""))
.newDirectoryName("new folder")
.allowNewDirectoryNameModification(true)
.allowReadOnlyDirectory(false)
@@ -388,14 +360,14 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
if(path.equals("")) {
path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString();
}
- SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
+ SharedPreferences sharedPref = requireActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("manualImageDownloadLocation", path);
editor.commit();
}
private Uri getDownloadDir(String filename) {
- SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
+ SharedPreferences sharedPref = requireActivity().getPreferences(Context.MODE_PRIVATE);
String dir = sharedPref.getString("manualImageDownloadLocation", "");
if(dir.equals("")) { //sharedPref has never been set
setNewDownloadDir(""); //set to default public download dir
@@ -419,7 +391,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
private void unregisterImageDownloadReceiver() {
if (downloadCompleteReceiver != null) {
- getActivity().unregisterReceiver(downloadCompleteReceiver);
+ requireActivity().unregisterReceiver(downloadCompleteReceiver);
downloadCompleteReceiver = null;
}
}
@@ -443,7 +415,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
switch (status) {
case DownloadManager.STATUS_SUCCESSFUL:
- Toast.makeText(getActivity().getApplicationContext(), getString(R.string.toast_img_saved), Toast.LENGTH_LONG).show();
+ Toast.makeText(requireContext().getApplicationContext(), getString(R.string.toast_img_saved), Toast.LENGTH_LONG).show();
//String imagePath = downloadManager.getUriForDownloadedFile(refID).toString();
@@ -457,7 +429,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
}
break;
case DownloadManager.STATUS_FAILED:
- Toast.makeText(getActivity().getApplicationContext(), getString(R.string.error_download_failed) + ": " + reason, Toast.LENGTH_LONG).show();
+ Toast.makeText(requireContext().getApplicationContext(), getString(R.string.error_download_failed) + ": " + reason, Toast.LENGTH_LONG).show();
if(isVisible()) {
dismiss();
}
@@ -469,7 +441,7 @@ public class NewsDetailImageDialogFragment extends DialogFragment {
}
};
IntentFilter intentFilter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
- getActivity().registerReceiver(downloadCompleteReceiver, intentFilter);
+ requireActivity().registerReceiver(downloadCompleteReceiver, intentFilter);
}
public boolean isExternalStorageWritable() {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java
index 86859afb..f4fc236b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderDetailFragment.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -46,6 +46,7 @@ import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.Toast;
+import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.core.view.GestureDetectorCompat;
import androidx.fragment.app.Fragment;
@@ -58,6 +59,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.List;
+import java.util.Objects;
import javax.inject.Inject;
@@ -81,6 +83,7 @@ import static de.luhmer.owncloudnewsreader.SettingsActivity.SP_SWIPE_LEFT_ACTION
import static de.luhmer.owncloudnewsreader.SettingsActivity.SP_SWIPE_LEFT_ACTION_DEFAULT;
import static de.luhmer.owncloudnewsreader.SettingsActivity.SP_SWIPE_RIGHT_ACTION;
import static de.luhmer.owncloudnewsreader.SettingsActivity.SP_SWIPE_RIGHT_ACTION_DEFAULT;
+import static java.util.Objects.requireNonNull;
/**
* A fragment representing a single NewsReader detail screen. This fragment is
@@ -125,7 +128,7 @@ public class NewsReaderDetailFragment extends Fragment {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
this.mActivity = (PodcastFragmentActivity) context;
}
@@ -138,7 +141,7 @@ public class NewsReaderDetailFragment extends Fragment {
protected DisposableObserver<List<RssItem>> searchResultObserver = new DisposableObserver<List<RssItem>>() {
@Override
- public void onNext(List<RssItem> rssItems) {
+ public void onNext(@NonNull List<RssItem> rssItems) {
loadRssItemsIntoView(rssItems);
}
@@ -186,7 +189,7 @@ public class NewsReaderDetailFragment extends Fragment {
this.idFeed = idFeed;
this.idFolder = idFolder;
this.titel = title;
- mActivity.getSupportActionBar().setTitle(title);
+ requireNonNull(mActivity.getSupportActionBar()).setTitle(title);
if (updateListView) {
updateCurrentRssView();
@@ -200,7 +203,7 @@ public class NewsReaderDetailFragment extends Fragment {
Log.v(TAG, "onResume called!");
mMarkAsReadWhileScrollingEnabled = mPrefs.getBoolean(SettingsActivity.CB_MARK_AS_READ_WHILE_SCROLLING_STRING, false);
- this.initFastDoneAll(this.getView());
+ this.initFastDoneAll(this.requireView());
//When the fragment is instantiated by the xml file, onResume will be called twice
if (onResumeCount >= 2) {
@@ -216,11 +219,7 @@ public class NewsReaderDetailFragment extends Fragment {
protected void updateMenuItemsState() {
NewsReaderListActivity nla = (NewsReaderListActivity) mActivity;
if(nla != null && nla.getMenuItemDownloadMoreItems() != null) {
- if (idFolder != null && idFolder == ALL_UNREAD_ITEMS.getValue()) {
- nla.getMenuItemDownloadMoreItems().setEnabled(false);
- } else {
- nla.getMenuItemDownloadMoreItems().setEnabled(true);
- }
+ nla.getMenuItemDownloadMoreItems().setEnabled(idFolder == null || idFolder != ALL_UNREAD_ITEMS.getValue());
}
}
@@ -243,7 +242,7 @@ public class NewsReaderDetailFragment extends Fragment {
binding.pbLoading.setVisibility(View.GONE);
if (layoutManagerSavedState != null) {
- binding.list.getLayoutManager().onRestoreInstanceState(layoutManagerSavedState);
+ requireNonNull(binding.list.getLayoutManager()).onRestoreInstanceState(layoutManagerSavedState);
layoutManagerSavedState = null;
}
});
@@ -278,7 +277,6 @@ public class NewsReaderDetailFragment extends Fragment {
}
public LinearLayoutManager getLayoutManager() {
- if (binding.list == null) return null;
return (LinearLayoutManager) binding.list.getLayoutManager();
}
@@ -319,7 +317,7 @@ public class NewsReaderDetailFragment extends Fragment {
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentNewsreaderDetailBinding.inflate(inflater, container, false);
@@ -346,7 +344,7 @@ public class NewsReaderDetailFragment extends Fragment {
binding.list.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
- public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
if (dy > 0) { //check for scroll down
if (mMarkAsReadWhileScrollingEnabled) {
//Log.v(TAG, "Scroll Delta y: " + dy);
@@ -357,16 +355,16 @@ public class NewsReaderDetailFragment extends Fragment {
});
itemTouchListener = new RecyclerView.OnItemTouchListener() {
- GestureDetectorCompat detector = new GestureDetectorCompat(mActivity, new RecyclerViewOnGestureListener());
+ final GestureDetectorCompat detector = new GestureDetectorCompat(mActivity, new RecyclerViewOnGestureListener());
@Override
- public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
+ public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
detector.onTouchEvent(e);
return false;
}
@Override
- public void onTouchEvent(RecyclerView rv, MotionEvent e) {
+ public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
}
@Override
@@ -431,10 +429,10 @@ public class NewsReaderDetailFragment extends Fragment {
}
@Override
- public void onInflate(Context context, AttributeSet attrs, Bundle savedInstanceState) {
+ public void onInflate(@NonNull Context context, @NonNull AttributeSet attrs, Bundle savedInstanceState) {
super.onInflate(context, attrs, savedInstanceState);
- ((NewsReaderApplication) getActivity().getApplication()).getAppComponent().injectFragment(this);
+ ((NewsReaderApplication) requireActivity().getApplication()).getAppComponent().injectFragment(this);
TypedArray styledAttributes = context.obtainStyledAttributes(attrs, new int[]{R.attr.colorAccent});
updateSwipeDrawables(true);
@@ -460,7 +458,7 @@ public class NewsReaderDetailFragment extends Fragment {
int leftId = getLayoutId(leftAction);
int rightId = getLayoutId(rightAction);
- TypedArray styledAttributes = getContext().obtainStyledAttributes(new int[]{leftId, rightId});
+ TypedArray styledAttributes = requireContext().obtainStyledAttributes(new int[]{leftId, rightId});
leftSwipeDrawable = styledAttributes.getDrawable(0);
rightSwipeDrawable = styledAttributes.getDrawable(1);
styledAttributes.recycle();
@@ -485,7 +483,7 @@ public class NewsReaderDetailFragment extends Fragment {
}
@Override
- public void onSaveInstanceState(Bundle outState) {
+ public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(LAYOUT_MANAGER_STATE, getLayoutManager().onSaveInstanceState());
@@ -597,17 +595,17 @@ public class NewsReaderDetailFragment extends Fragment {
}
@Override
- public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
+ public float getSwipeThreshold(@NonNull RecyclerView.ViewHolder viewHolder) {
return 0.25f;
}
@Override
- public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
+ public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
- public void onSwiped(final RecyclerView.ViewHolder viewHolder, final int direction) {
+ public void onSwiped(@NonNull final RecyclerView.ViewHolder viewHolder, final int direction) {
final NewsListRecyclerAdapter adapter = (NewsListRecyclerAdapter) binding.list.getAdapter();
String swipeAction;
@@ -637,7 +635,7 @@ public class NewsReaderDetailFragment extends Fragment {
}
@Override
- public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
+ public void onChildDraw(@NonNull Canvas c, @NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
// binding.swipeRefresh cancels swiping left/right when accidentally moving in the y direction;
binding.swipeRefresh.setEnabled(!isCurrentlyActive);
@@ -673,8 +671,8 @@ public class NewsReaderDetailFragment extends Fragment {
* A movement up is required to prevent accidentally marking articles as read.
*/
private class FastMarkReadMotionListener implements View.OnTouchListener {
- private View fabMarkAllAsRead;
- private ImageView targetView;
+ private final View fabMarkAllAsRead;
+ private final ImageView targetView;
private boolean markAsRead = false;
private float originX,
@@ -684,7 +682,7 @@ public class NewsReaderDetailFragment extends Fragment {
public FastMarkReadMotionListener(View fabMarkAllAsRead) {
this.fabMarkAllAsRead = fabMarkAllAsRead;
- this.targetView = (ImageView)fabMarkAllAsRead.findViewById(R.id.target_done_all);
+ this.targetView = fabMarkAllAsRead.findViewById(R.id.target_done_all);
}
@Override
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
index 826d520e..07c51c93 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -171,7 +171,7 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
String sharedPreferencesFileName;
- private View.OnClickListener mSnackbarListener = view -> {
+ private final View.OnClickListener mSnackbarListener = view -> {
//Toast.makeText(getActivity(), "button 1 pressed", 3000).show();
updateCurrentRssView();
};
@@ -219,9 +219,7 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
initAccountManager();
binding.toolbarLayout.avatar.setVisibility(View.VISIBLE);
- binding.toolbarLayout.avatar.setOnClickListener((v) -> {
- startActivityForResult(new Intent(this, LoginDialogActivity.class), RESULT_LOGIN);
- });
+ binding.toolbarLayout.avatar.setOnClickListener((v) -> startActivityForResult(new Intent(this, LoginDialogActivity.class), RESULT_LOGIN));
// Init config --> if nothing is configured start the login dialog.
if (!isUserLoggedIn()) {
@@ -780,63 +778,50 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
if (drawerToggle != null && drawerToggle.onOptionsItemSelected(item))
return true;
- switch (item.getItemId()) {
-
- case android.R.id.home:
- if (handlePodcastBackPressed())
- return true;
- break;
-
- case R.id.menu_update:
- startSync();
- break;
-
- case R.id.menu_StartImageCaching:
- final DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(this);
-
- long highestItemId = dbConn.getLowestRssItemIdUnread();
-
-
- Intent data = new Intent();
- data.putExtra(DownloadImagesService.LAST_ITEM_ID, highestItemId);
- data.putExtra(DownloadImagesService.DOWNLOAD_MODE_STRING, DownloadImagesService.DownloadMode.PICTURES_ONLY);
- DownloadImagesService.enqueueWork(this, data);
-
- break;
-
- case R.id.menu_CreateDatabaseDump:
- DatabaseUtils.CopyDatabaseToSdCard(this);
-
- new AlertDialog.Builder(this)
- .setMessage("Created dump at: " + DatabaseUtils.GetPath(this))
- .setNeutralButton(getString(android.R.string.ok), null)
- .show();
- break;
-
- case R.id.menu_markAllAsRead:
- NewsReaderDetailFragment ndf = getNewsReaderDetailFragment();
- if(ndf != null) {
- DatabaseConnectionOrm dbConn2 = new DatabaseConnectionOrm(this);
- dbConn2.markAllItemsAsReadForCurrentView();
-
- reloadCountNumbersOfSlidingPaneAdapter();
- ndf.refreshCurrentRssView();
- }
+ int itemId = item.getItemId();
+ if (itemId == android.R.id.home) {
+ if (handlePodcastBackPressed())
return true;
-
- case R.id.menu_downloadMoreItems:
- DownloadMoreItems();
- return true;
-
- case R.id.menu_search:
- mSearchView.setIconified(false);
- mSearchView.setFocusable(true);
- mSearchView.requestFocusFromTouch();
- return true;
-
- case R.id.menu_download_web_archive:
- checkAndStartDownloadWebPagesForOfflineReadingPermission();
- return true;
+ } else if (itemId == R.id.menu_update) {
+ startSync();
+ } else if (itemId == R.id.menu_StartImageCaching) {
+ final DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(this);
+
+ long highestItemId = dbConn.getLowestRssItemIdUnread();
+
+
+ Intent data = new Intent();
+ data.putExtra(DownloadImagesService.LAST_ITEM_ID, highestItemId);
+ data.putExtra(DownloadImagesService.DOWNLOAD_MODE_STRING, DownloadImagesService.DownloadMode.PICTURES_ONLY);
+ DownloadImagesService.enqueueWork(this, data);
+ } else if (itemId == R.id.menu_CreateDatabaseDump) {
+ DatabaseUtils.CopyDatabaseToSdCard(this);
+
+ new AlertDialog.Builder(this)
+ .setMessage("Created dump at: " + DatabaseUtils.GetPath(this))
+ .setNeutralButton(getString(android.R.string.ok), null)
+ .show();
+ } else if (itemId == R.id.menu_markAllAsRead) {
+ NewsReaderDetailFragment ndf = getNewsReaderDetailFragment();
+ if (ndf != null) {
+ DatabaseConnectionOrm dbConn2 = new DatabaseConnectionOrm(this);
+ dbConn2.markAllItemsAsReadForCurrentView();
+
+ reloadCountNumbersOfSlidingPaneAdapter();
+ ndf.refreshCurrentRssView();
+ }
+ return true;
+ } else if (itemId == R.id.menu_downloadMoreItems) {
+ DownloadMoreItems();
+ return true;
+ } else if (itemId == R.id.menu_search) {
+ mSearchView.setIconified(false);
+ mSearchView.setFocusable(true);
+ mSearchView.requestFocusFromTouch();
+ return true;
+ } else if (itemId == R.id.menu_download_web_archive) {
+ checkAndStartDownloadWebPagesForOfflineReadingPermission();
+ return true;
}
return super.onOptionsItemSelected(item);
}
@@ -914,19 +899,13 @@ public class NewsReaderListActivity extends PodcastFragmentActivity implements
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Action() {
- @Override
- public void run() throws Exception {
- updateCurrentRssView();
- Log.v(TAG, "Finished Download extra items..");
- }
- }, new Consumer<Throwable>() {
- @Override
- public void accept(@io.reactivex.annotations.NonNull Throwable throwable) throws Exception {
- throwable.printStackTrace();
- Throwable e = OkHttpSSLClient.HandleExceptions(throwable);
- Toast.makeText(NewsReaderListActivity.this, getString(R.string.login_dialog_text_something_went_wrong) + " - " + e.getMessage(), Toast.LENGTH_SHORT).show();
- }
+ .subscribe(() -> {
+ updateCurrentRssView();
+ Log.v(TAG, "Finished Download extra items..");
+ }, throwable -> {
+ throwable.printStackTrace();
+ Throwable e = OkHttpSSLClient.HandleExceptions(throwable);
+ Toast.makeText(NewsReaderListActivity.this, getString(R.string.login_dialog_text_something_went_wrong) + " - " + e.getMessage(), Toast.LENGTH_SHORT).show();
});
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListDialogFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListDialogFragment.java
index 62c71275..6b72e27a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListDialogFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListDialogFragment.java
@@ -68,59 +68,42 @@ public class NewsReaderListDialogFragment extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- ((NewsReaderApplication) getActivity().getApplication()).getAppComponent().injectFragment(this);
+ ((NewsReaderApplication) requireActivity().getApplication()).getAppComponent().injectFragment(this);
- mFeedId = getArguments().getLong("feedid");
- mDialogTitle = getArguments().getString("title");
- mDialogIconUrl = getArguments().getString("iconurl");
- mDialogText = getArguments().getString("feedurl");
+ final Bundle args = requireArguments();
+ mFeedId = args.getLong("feedid");
+ mDialogTitle = args.getString("title");
+ mDialogIconUrl = args.getString("iconurl");
+ mDialogText = args.getString("feedurl");
mMenuItems = new LinkedHashMap<>();
- mMenuItems.put(getString(R.string.action_feed_rename), new MenuAction() {
- @Override
- public void execute() {
- showRenameFeedView(mFeedId, mDialogTitle);
- }
- });
+ mMenuItems.put(getString(R.string.action_feed_rename), () -> showRenameFeedView(mFeedId, mDialogTitle));
- mMenuItems.put(getString(R.string.action_feed_remove), new MenuAction() {
- @Override
- public void execute() {
- showRemoveFeedView(mFeedId);
- }
- });
+ mMenuItems.put(getString(R.string.action_feed_remove), () -> showRemoveFeedView(mFeedId));
- mMenuItems.put(getString(R.string.action_feed_move), new MenuAction() {
- @Override
- public void execute() { showMoveFeedView(mFeedId); }
- });
+ mMenuItems.put(getString(R.string.action_feed_move), () -> showMoveFeedView(mFeedId));
- int style = DialogFragment.STYLE_NO_TITLE;
- int theme = R.style.FloatingDialog;
- setStyle(style, theme);
+ setStyle(DialogFragment.STYLE_NO_TITLE, R.style.FloatingDialog);
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentDialogFeedoptionsBinding.inflate(inflater, container, false);
- FavIconHandler favIconHandler = new FavIconHandler(getContext());
+ FavIconHandler favIconHandler = new FavIconHandler(requireContext());
favIconHandler.loadFavIconForFeed(mDialogIconUrl, binding.icMenuFeedicon);
binding.tvMenuTitle.setText(mDialogTitle);
binding.tvMenuText.setText(mDialogText);
- binding.tvMenuText.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mDialogText != null) {
- Intent i = new Intent(Intent.ACTION_VIEW);
- i.setData(Uri.parse(mDialogText));
- startActivity(i);
- }
+ binding.tvMenuText.setOnClickListener(v -> {
+ if (mDialogText != null) {
+ Intent i = new Intent(Intent.ACTION_VIEW);
+ i.setData(Uri.parse(mDialogText));
+ startActivity(i);
}
});
@@ -133,13 +116,10 @@ public class NewsReaderListDialogFragment extends DialogFragment {
binding.lvMenuList.setAdapter(arrayAdapter);
- binding.lvMenuList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- String key = arrayAdapter.getItem(i);
- MenuAction mAction = mMenuItems.get(key);
- mAction.execute();
- }
+ binding.lvMenuList.setOnItemClickListener((adapterView, view, i, l) -> {
+ String key = arrayAdapter.getItem(i);
+ MenuAction mAction = mMenuItems.get(key);
+ mAction.execute();
});
return binding.getRoot();
}
@@ -182,19 +162,11 @@ public class NewsReaderListDialogFragment extends DialogFragment {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
- if (s.toString().equals(feedName) || s.length() == 0) {
- binding.buttonRenameConfirm.setEnabled(false);
- } else {
- binding.buttonRenameConfirm.setEnabled(true);
- }
+ binding.buttonRenameConfirm.setEnabled(!s.toString().equals(feedName) && s.length() != 0);
}
});
- binding.buttonRenameCancel.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- dismiss();
- }
- });
+ binding.buttonRenameCancel.setOnClickListener(v -> dismiss());
binding.buttonRenameConfirm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -208,23 +180,17 @@ public class NewsReaderListDialogFragment extends DialogFragment {
mApi.getNewsAPI().renameFeed(feedId, paramMap)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Action() {
- @Override
- public void run() throws Exception {
- DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getContext());
- dbConn.renameFeedById(mFeedId, binding.renamefeedFeedname.getText().toString());
-
- parentActivity.getSlidingListFragment().reloadAdapter();
- parentActivity.startSync();
-
- dismiss();
- }
- }, new Consumer<Throwable>() {
- @Override
- public void accept(@NonNull Throwable throwable) throws Exception {
- Toast.makeText(getContext().getApplicationContext(), getString(R.string.login_dialog_text_something_went_wrong) + " - " + throwable.getMessage(), Toast.LENGTH_LONG).show();
- dismiss();
- }
+ .subscribe(() -> {
+ DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getContext());
+ dbConn.renameFeedById(mFeedId, binding.renamefeedFeedname.getText().toString());
+
+ parentActivity.getSlidingListFragment().reloadAdapter();
+ parentActivity.startSync();
+
+ dismiss();
+ }, throwable -> {
+ Toast.makeText(getContext().getApplicationContext(), getString(R.string.login_dialog_text_something_went_wrong) + " - " + throwable.getMessage(), Toast.LENGTH_LONG).show();
+ dismiss();
});
}
});
@@ -235,45 +201,33 @@ public class NewsReaderListDialogFragment extends DialogFragment {
binding.lvMenuList.setVisibility(View.GONE);
binding.removeFeedDialog.setVisibility(View.VISIBLE);
- binding.buttonRemoveCancel.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- dismiss();
- }
- });
-
- binding.buttonRemoveConfirm.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- showProgress(true);
- setCancelable(false);
- getDialog().setCanceledOnTouchOutside(false);
-
-
- mApi.getNewsAPI().deleteFeed(feedId)
- .subscribeOn(Schedulers.newThread())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Action() {
- @Override
- public void run() throws Exception {
- DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getContext());
- dbConn.removeFeedById(mFeedId);
-
- Long currentFeedId = parentActivity.getNewsReaderDetailFragment().getIdFeed();
- if(currentFeedId != null && currentFeedId == mFeedId) {
- parentActivity.switchToAllUnreadItemsFolder();
- }
- parentActivity.getSlidingListFragment().reloadAdapter();
- parentActivity.updateCurrentRssView();
-
- dismiss();
- }
- }, new Consumer<Throwable>() {
- @Override
- public void accept(@NonNull Throwable throwable) throws Exception {
- Toast.makeText(getContext().getApplicationContext(), getString(R.string.login_dialog_text_something_went_wrong) + " - " + throwable.getMessage(), Toast.LENGTH_LONG).show();
- dismiss();
- }
- });
- }
+ binding.buttonRemoveCancel.setOnClickListener(v -> dismiss());
+
+ binding.buttonRemoveConfirm.setOnClickListener(v -> {
+ showProgress(true);
+ setCancelable(false);
+ getDialog().setCanceledOnTouchOutside(false);
+
+
+ mApi.getNewsAPI().deleteFeed(feedId)
+ .subscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(() -> {
+ DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getContext());
+ dbConn.removeFeedById(mFeedId);
+
+ Long currentFeedId = parentActivity.getNewsReaderDetailFragment().getIdFeed();
+ if(currentFeedId != null && currentFeedId == mFeedId) {
+ parentActivity.switchToAllUnreadItemsFolder();
+ }
+ parentActivity.getSlidingListFragment().reloadAdapter();
+ parentActivity.updateCurrentRssView();
+
+ dismiss();
+ }, throwable -> {
+ Toast.makeText(getContext().getApplicationContext(), getString(R.string.login_dialog_text_something_went_wrong) + " - " + throwable.getMessage(), Toast.LENGTH_LONG).show();
+ dismiss();
+ });
});
}
@@ -299,40 +253,31 @@ public class NewsReaderListDialogFragment extends DialogFragment {
ArrayAdapter<String> folderAdapter = new ArrayAdapter<> (getActivity(), R.layout.dialog_list_folder, android.R.id.text1, folderNames);
binding.folderList.setAdapter(folderAdapter);
- binding.folderList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- final Folder folder = folders.get(position);
-
- showProgress(true);
- setCancelable(false);
- getDialog().setCanceledOnTouchOutside(false);
-
- Map<String, Long> paramMap = new LinkedHashMap<>();
- paramMap.put("folderId", folder.getId());
- mApi.getNewsAPI().moveFeed(mFeedId, paramMap)
- .subscribeOn(Schedulers.newThread())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Action() {
- @Override
- public void run() {
- DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getContext());
- Feed feed = dbConn.getFeedById(mFeedId);
- feed.setFolder(folder);
-
- parentActivity.getSlidingListFragment().reloadAdapter();
- parentActivity.startSync();
-
- dismiss();
- }
- }, new Consumer<Throwable>() {
- @Override
- public void accept(@NonNull Throwable throwable) throws Exception {
- Toast.makeText(getContext().getApplicationContext(), getString(R.string.login_dialog_text_something_went_wrong) + " - " + throwable.getMessage(), Toast.LENGTH_LONG).show();
- dismiss();
- }
- });
- }
+ binding.folderList.setOnItemClickListener((parent, view, position, id) -> {
+ final Folder folder = folders.get(position);
+
+ showProgress(true);
+ setCancelable(false);
+ getDialog().setCanceledOnTouchOutside(false);
+
+ Map<String, Long> paramMap = new LinkedHashMap<>();
+ paramMap.put("folderId", folder.getId());
+ mApi.getNewsAPI().moveFeed(mFeedId, paramMap)
+ .subscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(() -> {
+ DatabaseConnectionOrm dbConn1 = new DatabaseConnectionOrm(getContext());
+ Feed feed = dbConn1.getFeedById(mFeedId);
+ feed.setFolder(folder);
+
+ parentActivity.getSlidingListFragment().reloadAdapter();
+ parentActivity.startSync();
+
+ dismiss();
+ }, throwable -> {
+ Toast.makeText(getContext().getApplicationContext(), getString(R.string.login_dialog_text_something_went_wrong) + " - " + throwable.getMessage(), Toast.LENGTH_LONG).show();
+ dismiss();
+ });
});
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java
index 0d6112de..4b6d6ab1 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListFragment.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -35,6 +35,7 @@ import android.widget.AdapterView;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
@@ -59,7 +60,6 @@ import de.luhmer.owncloudnewsreader.model.ConcreteFeedItem;
import de.luhmer.owncloudnewsreader.model.OcsUser;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
@@ -92,7 +92,6 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
private Callbacks mCallbacks = null;
- @SuppressWarnings("unused")
protected static final String TAG = "NewsReaderListFragment";
public void ListViewNotifyDataSetChanged() {
@@ -141,12 +140,12 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
- ((NewsReaderApplication) getActivity().getApplication()).getAppComponent().injectFragment(this);
+ ((NewsReaderApplication) requireActivity().getApplication()).getAppComponent().injectFragment(this);
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
binding = FragmentNewsreaderListBinding.inflate(requireActivity().getLayoutInflater(), container, false);
lvAdapter = new SubscriptionExpandableListAdapter(getActivity(), new DatabaseConnectionOrm(getActivity()), binding.expandableListView, mPrefs);
@@ -161,12 +160,7 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
binding.expandableListView.setLongClickable(true);
binding.expandableListView.setAdapter(lvAdapter);
- binding.headerView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ((NewsReaderListActivity) getActivity()).startSync();
- }
- });
+ binding.headerView.setOnClickListener(v -> ((NewsReaderListActivity) requireActivity()).startSync());
lvAdapter.notifyDataSetChanged();
reloadAdapter();
@@ -177,7 +171,7 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
// Activities containing this fragment must implement its callbacks.
@@ -229,10 +223,10 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
case R.id.action_add_new_feed:
if(mApi.getNewsAPI() != null) {
Intent newFeedIntent = new Intent(getContext(), NewFeedActivity.class);
- getActivity().startActivityForResult(newFeedIntent, NewsReaderListActivity.RESULT_ADD_NEW_FEED);
+ requireActivity().startActivityForResult(newFeedIntent, NewsReaderListActivity.RESULT_ADD_NEW_FEED);
} else {
Intent loginIntent = new Intent(getContext(), LoginDialogActivity.class);
- getActivity().startActivityForResult(loginIntent, RESULT_LOGIN);
+ requireActivity().startActivityForResult(loginIntent, RESULT_LOGIN);
}
return true;
default:
@@ -242,7 +236,7 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
list.addFooterView(footerView);
}
- private ExpListTextClicked expListTextClickedListener = new ExpListTextClicked() {
+ private final ExpListTextClicked expListTextClickedListener = new ExpListTextClicked() {
@Override
public void onTextClicked(long idFeed, boolean isFolder, Long optional_folder_id) {
@@ -284,23 +278,14 @@ public class NewsReaderListFragment extends Fragment implements OnCreateContextM
}
};
- AdapterView.OnItemLongClickListener onItemLongClickListener = new AdapterView.OnItemLongClickListener() {
-
- @Override
- public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
- if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
- int childPosition = ExpandableListView.getPackedPositionChild(id);
- mCallbacks.onChildItemLongClicked(childPosition);
- }
-
- return true;
- }
- };
-
+ AdapterView.OnItemLongClickListener onItemLongClickListener = (parent, view, position, id) -> {
+ if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
+ int childPosition = ExpandableListView.getPackedPositionChild(id);
+ mCallbacks.onChildItemLongClicked(childPosition);
+ }
- public ExpandableListView getListView() {
- return binding.expandableListView;
- }
+ return true;
+ };
public void startAsyncTaskGetUserInfo() {
mApi.getServerAPI().user()
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragment.java
index bd54a090..fa417f34 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragment.java
@@ -214,7 +214,7 @@ public class PodcastFragment extends Fragment {
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// create ContextThemeWrapper from the original Activity Context with the custom theme
//Context context = new ContextThemeWrapper(getActivity(), R.style.Theme_MaterialComponents_Light_DarkActionBar);
// clone the inflater using the ContextThemeWrapper
@@ -259,7 +259,7 @@ public class PodcastFragment extends Fragment {
- private SlidingUpPanelLayout.PanelSlideListener onPanelSlideListener = new SlidingUpPanelLayout.PanelSlideListener() {
+ private final SlidingUpPanelLayout.PanelSlideListener onPanelSlideListener = new SlidingUpPanelLayout.PanelSlideListener() {
@Override
public void onPanelSlide(View view, float v) { }
@@ -284,7 +284,7 @@ public class PodcastFragment extends Fragment {
boolean blockSeekbarUpdate = false;
- private SeekBar.OnSeekBarChangeListener onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
+ private final SeekBar.OnSeekBarChangeListener onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
int before;
@Override
@@ -335,7 +335,7 @@ public class PodcastFragment extends Fragment {
numberPicker.setWrapSelectorWheel(false);
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(requireContext());
// set title
alertDialogBuilder.setTitle(getString(R.string.podcast_playback_speed_dialog_title));
@@ -371,7 +371,7 @@ public class PodcastFragment extends Fragment {
}
}
- private MediaControllerCompat.Callback controllerCallback =
+ private final MediaControllerCompat.Callback controllerCallback =
new MediaControllerCompat.Callback() {
@Override
public void onMetadataChanged(MediaMetadataCompat metadata) {
@@ -569,7 +569,7 @@ public class PodcastFragment extends Fragment {
}
*/
- private MediaControllerCompat.Callback mediaControllerCallback = new MediaControllerCompat.Callback() {
+ private final MediaControllerCompat.Callback mediaControllerCallback = new MediaControllerCompat.Callback() {
@Override
public void onSessionReady() {
Log.d(TAG, "onSessionReady() called");
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java
index d69e7c68..9c9b5f2b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/PodcastFragmentActivity.java
@@ -261,7 +261,7 @@ public abstract class PodcastFragmentActivity extends AppCompatActivity implemen
return (int) (px / Resources.getSystem().getDisplayMetrics().density);
}
- private float dipToPx(float dip) {
+ private float dipToPx(@SuppressWarnings("SameParameterValue") float dip) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, getResources().getDisplayMetrics());
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java
index e46dee5b..757ad2c4 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsActivity.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -27,7 +27,6 @@ import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.view.MenuItem;
-import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java
index e7b7dc23..aaab8c9e 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SettingsFragment.java
@@ -75,7 +75,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- ((NewsReaderApplication) getActivity().getApplication()).getAppComponent().injectFragment(this);
+ ((NewsReaderApplication) requireActivity().getApplication()).getAppComponent().injectFragment(this);
// Define the settings file to use by this settings fragment
getPreferenceManager().setSharedPreferencesName(sharedPreferencesFileName);
@@ -126,7 +126,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
* A preference value change listener that updates the preference's summary
* to reflect its new value.
*/
- private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = (preference, value) -> {
+ private static final Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = (preference, value) -> {
String stringValue = value.toString();
if (preference instanceof ListPreference) {
@@ -140,10 +140,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
// only enable black-bg setting if light or auto theme is selected
if(SP_APP_THEME.equals(preference.getKey())) {
- if (value.equals("1")) // value "1" means Light theme
- preference.getPreferenceManager().findPreference(CB_OLED_MODE).setEnabled(false);
- else
- preference.getPreferenceManager().findPreference(CB_OLED_MODE).setEnabled(true);
+ // value "1" means Light theme
+ preference.getPreferenceManager().findPreference(CB_OLED_MODE).setEnabled(!value.equals("1"));
}
} else {
@@ -158,7 +156,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
return true;
};
- private static Preference.OnPreferenceChangeListener sBindPreferenceBooleanToValueListener = (preference, newValue) -> {
+ private static final Preference.OnPreferenceChangeListener sBindPreferenceBooleanToValueListener = (preference, newValue) -> {
if(preference instanceof CheckBoxPreference) { //For legacy Android support
CheckBoxPreference cbPreference = ((CheckBoxPreference) preference);
cbPreference.setChecked((Boolean) newValue);
@@ -300,7 +298,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
Preference changelogPreference = prefFrag.findPreference(CB_VERSION);
changelogPreference.setOnPreferenceClickListener(preference -> {
DialogFragment dialog = new VersionInfoDialogFragment();
- dialog.show(prefFrag.getActivity().getFragmentManager(), "VersionChangelogDialogFragment");
+ dialog.show(prefFrag.requireActivity().getFragmentManager(), "VersionChangelogDialogFragment");
return true;
});
@@ -353,7 +351,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
String debugInfo = "Please describe your bug here...\n\n---\n";
try {
- PackageInfo pInfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
+ PackageInfo pInfo = requireContext().getPackageManager().getPackageInfo(requireContext().getPackageName(), 0);
debugInfo += "\nApp Version: " + pInfo.versionName;
debugInfo += "\nApp Version Code: " + pInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
@@ -394,7 +392,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
public static class ResetDatabaseAsyncTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog pd;
- private Context context;
+ private final Context context;
public ResetDatabaseAsyncTask(Context context) {
this.context = context;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SyncIntervalSelectorActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SyncIntervalSelectorActivity.java
index 59cf2b37..0ba46494 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SyncIntervalSelectorActivity.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/SyncIntervalSelectorActivity.java
@@ -43,9 +43,7 @@ public class SyncIntervalSelectorActivity extends AppCompatActivity {
binding = ActivitySyncIntervalSelectorBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
- if (binding.toolbarLayout.toolbar != null) {
- setSupportActionBar(binding.toolbarLayout.toolbar);
- }
+ setSupportActionBar(binding.toolbarLayout.toolbar);
items_values = getResources().getStringArray(R.array.array_sync_interval_values);
@@ -132,7 +130,7 @@ public class SyncIntervalSelectorActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- ((NewsReaderApplication) getActivity().getApplication()).getAppComponent().injectFragment(this);
+ ((NewsReaderApplication) requireActivity().getApplication()).getAppComponent().injectFragment(this);
}
@Override
@@ -152,7 +150,7 @@ public class SyncIntervalSelectorActivity extends AppCompatActivity {
int position = 0;
int minutes = mPrefs.getInt(SYNC_INTERVAL_IN_MINUTES_STRING, SYNC_DEFAULT_INTERVAL);
- for (String item : ((SyncIntervalSelectorActivity) getActivity()).items_values) {
+ for (String item : ((SyncIntervalSelectorActivity) requireActivity()).items_values) {
if (Integer.parseInt(item) == minutes)
break;
position++;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/VersionInfoDialogFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/VersionInfoDialogFragment.java
index e0aa1a84..499b5fd8 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/VersionInfoDialogFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/VersionInfoDialogFragment.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -59,12 +59,7 @@ public class VersionInfoDialogFragment extends DialogFragment {
// build dialog
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setView(view)
- .setPositiveButton(getString(android.R.string.ok), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dismiss();
- }
- })
+ .setPositiveButton(getString(android.R.string.ok), (dialog, which) -> dismiss())
.setCancelable(true) // React to click outside of version info
.setTitle("Changelog"); // changelog content is in english only anyways..
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/DividerItemDecoration.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/DividerItemDecoration.java
index fbeb21c2..81196684 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/DividerItemDecoration.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/DividerItemDecoration.java
@@ -7,12 +7,13 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.view.View;
+import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class DividerItemDecoration extends RecyclerView.ItemDecoration {
- private Drawable mDivider;
+ private final Drawable mDivider;
private int size = 0;
@@ -25,8 +26,8 @@ public class DividerItemDecoration extends RecyclerView.ItemDecoration {
}
@Override
- public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
- RecyclerView.State state) {
+ public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent,
+ @NonNull RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
if (mDivider == null || parent.getChildLayoutPosition(view) < 1) {
return;
@@ -36,7 +37,7 @@ public class DividerItemDecoration extends RecyclerView.ItemDecoration {
}
@Override
- public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
+ public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
if(mDivider == null)
return;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/NewsListRecyclerAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/NewsListRecyclerAdapter.java
index d0e9936b..2d79a146 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/NewsListRecyclerAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/NewsListRecyclerAdapter.java
@@ -40,26 +40,27 @@ import de.luhmer.owncloudnewsreader.model.CurrentRssViewDataHolder;
public class NewsListRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final String TAG = "NewsListRecyclerAdapter";
+ @SuppressWarnings("FieldCanBeLocal")
private final int VIEW_ITEM = 1; // Item
private final int VIEW_PROG = 0; // Progress
private long idOfCurrentlyPlayedPodcast = -1;
private List<RssItem> lazyList;
- private DatabaseConnectionOrm dbConn;
- private PostDelayHandler pDelayHandler;
- private FragmentActivity activity;
+ private final DatabaseConnectionOrm dbConn;
+ private final PostDelayHandler pDelayHandler;
+ private final FragmentActivity activity;
private int totalItemCount = 0;
private int cachedPages = 1;
- private IPlayPausePodcastClicked playPausePodcastClicked;
+ private final IPlayPausePodcastClicked playPausePodcastClicked;
private boolean loading = false;
// The minimum amount of items to have below your current scroll position
// before loading more.
- private int visibleThreshold = 5;
- private SharedPreferences mPrefs;
+ private final int visibleThreshold = 5;
+ private final SharedPreferences mPrefs;
public NewsListRecyclerAdapter(FragmentActivity activity, RecyclerView recyclerView, IPlayPausePodcastClicked playPausePodcastClicked, PostDelayHandler postDelayHandler, SharedPreferences prefs) {
this.activity = activity;
@@ -155,8 +156,9 @@ public class NewsListRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.V
Log.v(TAG, "Updating Listview - Podcast completed");
}
+ @NonNull
@Override
- public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, @NonNull int viewType) {
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == VIEW_PROG) {
View v = LayoutInflater.from(parent.getContext()).inflate(
R.layout.progressbar_item, parent, false);
@@ -355,7 +357,7 @@ public class NewsListRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.V
private class RefreshDataAsyncTask extends AsyncTask<Void, Void, List<RssItem>> {
- private IOnRefreshFinished listener;
+ private final IOnRefreshFinished listener;
public RefreshDataAsyncTask(IOnRefreshFinished listener) {
this.listener = listener;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/ProgressBarWebChromeClient.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/ProgressBarWebChromeClient.java
index c0423600..6bcdaa3b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/ProgressBarWebChromeClient.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/ProgressBarWebChromeClient.java
@@ -15,7 +15,7 @@ public class ProgressBarWebChromeClient extends WebChromeClient {
public final String TAG = getClass().getCanonicalName();
- private ProgressBar mProgressBar;
+ private final ProgressBar mProgressBar;
public ProgressBarWebChromeClient(ProgressBar progressBar) {
mProgressBar = progressBar;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java
index c727ddeb..f6bac358 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/adapter/RssItemViewHolder.java
@@ -42,6 +42,7 @@ public abstract class RssItemViewHolder<T extends ViewBinding> extends RecyclerV
private static final SparseIntArray downloadProgressList = new SparseIntArray();
private static FavIconHandler favIconHandler = null;
protected final SharedPreferences mPrefs;
+ @SuppressWarnings("FieldCanBeLocal")
private final int LengthBody = 400;
private final ForegroundColorSpan bodyForegroundColor;
private RecyclerItemClickListener clickListener;
@@ -51,7 +52,7 @@ public abstract class RssItemViewHolder<T extends ViewBinding> extends RecyclerV
private int starColor;
private int inactiveStarColor;
- private SparseIntArray initalFontSizes = new SparseIntArray();
+ private final SparseIntArray initalFontSizes = new SparseIntArray();
RssItemViewHolder(@NonNull ViewBinding binding, SharedPreferences sharedPreferences) {
super(binding.getRoot());
@@ -273,6 +274,7 @@ public abstract class RssItemViewHolder<T extends ViewBinding> extends RecyclerV
return rssItem;
}
+ @SuppressWarnings("BooleanMethodIsAlwaysInverted")
public boolean shouldStayUnread() {
return stayUnread;
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadChangelogTask.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadChangelogTask.java
index d43ffab6..643e667f 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadChangelogTask.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadChangelogTask.java
@@ -24,15 +24,14 @@ import de.luhmer.owncloudnewsreader.view.ChangeLogFileListView;
*/
public class DownloadChangelogTask extends AsyncTask<Void, Void, String> {
- @SuppressWarnings("unused")
private static final String TAG = "DownloadChangelogTask";
private static final String README_URL = "https://raw.githubusercontent.com/nextcloud/news-android/master/CHANGELOG.md";
private static final String FILE_NAME = "changelog.xml";
- private Context mContext;
- private ChangeLogFileListView mChangelogView;
- private Listener mListener;
+ private final Context mContext;
+ private final ChangeLogFileListView mChangelogView;
+ private final Listener mListener;
private IOException exception;
/**
@@ -126,7 +125,7 @@ public class DownloadChangelogTask extends AsyncTask<Void, Void, String> {
} else if (!line.contains("---------------------")) {
// version start
versionStarted = true;
- builder.append("<changelogversion versionName=\"" + line + "\">");
+ builder.append("<changelogversion versionName=\"").append(line).append("\">");
}
}
@@ -135,14 +134,11 @@ public class DownloadChangelogTask extends AsyncTask<Void, Void, String> {
return builder.toString();
}
- private String saveToTempFile(String content, String fileName) throws IOException {
+ private String saveToTempFile(String content, @SuppressWarnings("SameParameterValue") String fileName) throws IOException {
File file = File.createTempFile(fileName, null, mContext.getCacheDir());
- BufferedWriter out = new BufferedWriter(new FileWriter(file));
- try {
+ try (BufferedWriter out = new BufferedWriter(new FileWriter(file))) {
out.write(content);
- } finally {
- out.close();
}
return "file://" + file.getAbsolutePath();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadImageHandler.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadImageHandler.java
index f41f904d..653ed5ec 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadImageHandler.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/async_tasks/DownloadImageHandler.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudAccountAuthenticator.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudAccountAuthenticator.java
index 104494c8..19c551c1 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudAccountAuthenticator.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudAccountAuthenticator.java
@@ -17,7 +17,7 @@ import static android.accounts.AccountManager.KEY_BOOLEAN_RESULT;
public class OwnCloudAccountAuthenticator extends AbstractAccountAuthenticator {
- private String TAG = "UdinicAuthenticator";
+ private static final String TAG = "UdinicAuthenticator";
private final Context mContext;
public OwnCloudAccountAuthenticator(Context context) {
@@ -28,7 +28,7 @@ public class OwnCloudAccountAuthenticator extends AbstractAccountAuthenticator {
}
@Override
- public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType, String[] requiredFeatures, Bundle options) throws NetworkErrorException {
+ public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType, String[] requiredFeatures, Bundle options) {
Log.d("udinic", TAG + "> addAccount");
final Intent intent = new Intent(mContext, LoginDialogActivity.class);
@@ -43,7 +43,7 @@ public class OwnCloudAccountAuthenticator extends AbstractAccountAuthenticator {
}
@Override
- public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
+ public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) {
Log.d("udinic", TAG + "> getAuthToken");
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java
index 90e42a69..c72b8564 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/authentication/OwnCloudSyncAdapter.java
@@ -96,7 +96,7 @@ public class OwnCloudSyncAdapter extends AbstractThreadedSyncAdapter {
- private class NextcloudSyncResult {
+ private static class NextcloudSyncResult {
private final List<Folder> folders;
private final List<Feed> feeds;
private final boolean stateSyncSuccessful;
@@ -122,17 +122,14 @@ public class OwnCloudSyncAdapter extends AbstractThreadedSyncAdapter {
final DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getContext());
Observable<Boolean> rssStateSync = Observable.fromPublisher(
- new Publisher<Boolean>() {
- @Override
- public void subscribe(Subscriber<? super Boolean> s) {
- Log.v(TAG, "(rssStateSync) subscribe() called with: s = [" + s + "] [" + Thread.currentThread().getName() + "]");
- try {
- boolean success = ItemStateSync.PerformItemStateSync(mApi.getNewsAPI(), dbConn);
- s.onNext(success);
- s.onComplete();
- } catch(Exception ex) {
- s.onError(ex);
- }
+ (Publisher<Boolean>) s -> {
+ Log.v(TAG, "(rssStateSync) subscribe() called with: s = [" + s + "] [" + Thread.currentThread().getName() + "]");
+ try {
+ boolean success = ItemStateSync.PerformItemStateSync(mApi.getNewsAPI(), dbConn);
+ s.onNext(success);
+ s.onComplete();
+ } catch(Exception ex) {
+ s.onError(ex);
}
}).subscribeOn(Schedulers.newThread());
@@ -148,12 +145,9 @@ public class OwnCloudSyncAdapter extends AbstractThreadedSyncAdapter {
.subscribeOn(Schedulers.newThread());
// Wait for results
- Observable<NextcloudSyncResult> combined = Observable.zip(folderObservable, feedsObservable, rssStateSync, new Function3<List<Folder>, List<Feed>, Boolean, NextcloudSyncResult>() {
- @Override
- public NextcloudSyncResult apply(@NonNull List<Folder> folders, @NonNull List<Feed> feeds, @NonNull Boolean mRes) {
- Log.v(TAG, "apply() called with: folders = [" + folders + "], feeds = [" + feeds + "], mRes = [" + mRes + "] [" + Thread.currentThread().getName() + "]");
- return new NextcloudSyncResult(folders, feeds, mRes);
- }
+ Observable<NextcloudSyncResult> combined = Observable.zip(folderObservable, feedsObservable, rssStateSync, (folders, feeds, mRes) -> {
+ Log.v(TAG, "apply() called with: folders = [" + folders + "], feeds = [" + feeds + "], mRes = [" + mRes + "] [" + Thread.currentThread().getName() + "]");
+ return new NextcloudSyncResult(folders, feeds, mRes);
});
Log.v(TAG, "subscribing now.. [" + Thread.currentThread().getName() + "]");
@@ -192,15 +186,10 @@ public class OwnCloudSyncAdapter extends AbstractThreadedSyncAdapter {
Log.v(TAG, "[syncRssItems] - onNext() called with: totalCount = [" + totalCount + "]");
Handler handler = new Handler(Looper.getMainLooper());
- handler.post(new Runnable() {
- @Override
- public void run() {
- Toast.makeText(
- getContext(),
- getContext().getResources().getQuantityString(R.plurals.fetched_items_so_far, totalCount, totalCount),
- Toast.LENGTH_SHORT).show();
- }
- });
+ handler.post(() -> Toast.makeText(
+ getContext(),
+ getContext().getResources().getQuantityString(R.plurals.fetched_items_so_far, totalCount, totalCount),
+ Toast.LENGTH_SHORT).show());
}
@Override
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/chrometabs/CustomTabActivityManager.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/chrometabs/CustomTabActivityManager.java
index aa7675cb..cbe1cb3f 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/chrometabs/CustomTabActivityManager.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/chrometabs/CustomTabActivityManager.java
@@ -128,7 +128,7 @@ public class CustomTabActivityManager {
List<ResolveInfo> handlers = pm.queryIntentActivities(
intent,
PackageManager.GET_RESOLVED_FILTER);
- if (handlers == null || handlers.size() == 0) {
+ if (handlers.size() == 0) {
return false;
}
for (ResolveInfo resolveInfo : handlers) {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java
index 0589ee7b..37b4557e 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java
@@ -61,7 +61,7 @@ public class DatabaseConnectionOrm {
private static final String[] VIDEO_FORMATS = { "video/mp4" };
public enum SORT_DIRECTION { asc, desc }
- private DaoSession daoSession;
+ private final DaoSession daoSession;
private final static int PageSize = 100;
@@ -314,8 +314,13 @@ public class DatabaseConnectionOrm {
List<RssItem> rssItemList;
do {
int offset = iterationCount * itemsPerIteration;
- int limit = itemsPerIteration;
- rssItemList = daoSession.getRssItemDao().queryBuilder().where(whereCondition).limit(limit).offset(offset).listLazy();
+ rssItemList = daoSession
+ .getRssItemDao()
+ .queryBuilder()
+ .where(whereCondition)
+ .limit(itemsPerIteration)
+ .offset(offset)
+ .listLazy();
for (RssItem rssItem : rssItemList) {
rssItem.setRead_temp(true);
}
@@ -394,7 +399,7 @@ public class DatabaseConnectionOrm {
class UpdateRssItemAsyncTask extends AsyncTask<Void, Void, Void> {
- private RssItem rssItem;
+ private final RssItem rssItem;
UpdateRssItemAsyncTask(RssItem rssItem) {
this.rssItem = rssItem;
@@ -665,13 +670,9 @@ public class DatabaseConnectionOrm {
int totalUnreadItemsCount = 0;
- Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null);
- try
- {
- if(cursor != null)
- {
- if(cursor.getCount() > 0)
- {
+ try (Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null)) {
+ if (cursor != null) {
+ if (cursor.getCount() > 0) {
cursor.moveToFirst();
do {
int folderId = cursor.getInt(0);
@@ -681,18 +682,16 @@ public class DatabaseConnectionOrm {
totalUnreadItemsCount += unreadCount;
values[1].put(feedId, String.valueOf(unreadCount));
- if(folderId != 0) {
- if(values[0].get(folderId) != null) {
+ if (folderId != 0) {
+ if (values[0].get(folderId) != null) {
unreadCount += Integer.parseInt(values[0].get(folderId));
}
values[0].put(folderId, String.valueOf(unreadCount));
}
- } while(cursor.moveToNext());
+ } while (cursor.moveToNext());
}
}
- } finally {
- cursor.close();
}
@@ -791,14 +790,10 @@ public class DatabaseConnectionOrm {
{
long result = -1;
- Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null);
- try
- {
- if(cursor != null && cursor.moveToFirst()) {
+ try (Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null)) {
+ if (cursor != null && cursor.moveToFirst()) {
result = cursor.getLong(0);
}
- } finally {
- cursor.close();
}
return result;
@@ -807,23 +802,17 @@ public class DatabaseConnectionOrm {
public SparseArray<Integer> getIntegerSparseArrayFromSQL(String buildSQL, int indexKey, int indexValue) {
SparseArray<Integer> result = new SparseArray<>();
- Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null);
- try
- {
- if(cursor != null)
- {
- if(cursor.getCount() > 0)
- {
+ try (Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null)) {
+ if (cursor != null) {
+ if (cursor.getCount() > 0) {
cursor.moveToFirst();
do {
int key = cursor.getInt(indexKey);
Integer value = cursor.getInt(indexValue);
result.put(key, value);
- } while(cursor.moveToNext());
+ } while (cursor.moveToNext());
}
}
- } finally {
- cursor.close();
}
return result;
@@ -832,23 +821,17 @@ public class DatabaseConnectionOrm {
public SparseArray<String> getStringSparseArrayFromSQL(String buildSQL, int indexKey, int indexValue) {
SparseArray<String> result = new SparseArray<>();
- Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null);
- try
- {
- if(cursor != null)
- {
- if(cursor.getCount() > 0)
- {
+ try (Cursor cursor = daoSession.getDatabase().rawQuery(buildSQL, null)) {
+ if (cursor != null) {
+ if (cursor.getCount() > 0) {
cursor.moveToFirst();
do {
int key = cursor.getInt(indexKey);
String value = cursor.getString(indexValue);
result.put(key, value);
- } while(cursor.moveToNext());
+ } while (cursor.moveToNext());
}
}
- } finally {
- cursor.close();
}
return result;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseHelperOrm.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseHelperOrm.java
index 1c48237f..6da86f56 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseHelperOrm.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseHelperOrm.java
@@ -1,5 +1,5 @@
-/**
- * Android ownCloud News
+/*
+* Android ownCloud News
*
* @author David Luhmer
* @copyright 2013 David Luhmer david-dev@live.de
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/generator/DatabaseOrmGenerator.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/generator/DatabaseOrmGenerator.java
index ef5ef537..0dea1d78 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/generator/DatabaseOrmGenerator.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/generator/DatabaseOrmGenerator.java
@@ -17,11 +17,6 @@ public class DatabaseOrmGenerator {
* (including older versions used for migration test purposes) and ensures
* business rules are met; these include ensuring we only have a single
* current schema instance and the version numbering is correct.
- *
- * @param args
- *
- * @throws Exception
- * @throws IOException
*/
public static void main(String[] args) throws Exception {
List<SchemaVersion> versions = new ArrayList<>();
@@ -42,7 +37,6 @@ public class DatabaseOrmGenerator {
/**
* Validate the schema, throws
*
- * @param versions
* @throws IllegalArgumentException
* if data is invalid
*/
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/CurrentRssItemViewDao.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/CurrentRssItemViewDao.java
index 44613799..399bfbc0 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/CurrentRssItemViewDao.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/CurrentRssItemViewDao.java
@@ -48,7 +48,6 @@ public class CurrentRssItemViewDao extends AbstractDao<CurrentRssItemView, Long>
db.execSQL(sql);
}
- /** @inheritdoc */
@Override
protected void bindValues(SQLiteStatement stmt, CurrentRssItemView entity) {
stmt.clearBindings();
@@ -56,37 +55,31 @@ public class CurrentRssItemViewDao extends AbstractDao<CurrentRssItemView, Long>
stmt.bindLong(2, entity.getRssItemId());
}
- /** @inheritdoc */
@Override
public Long readKey(Cursor cursor, int offset) {
- return cursor.getLong(offset + 0);
+ return cursor.getLong(offset);
}
- /** @inheritdoc */
@Override
public CurrentRssItemView readEntity(Cursor cursor, int offset) {
- CurrentRssItemView entity = new CurrentRssItemView( //
- cursor.getLong(offset + 0), // id
+ return new CurrentRssItemView( //
+ cursor.getLong(offset), // id
cursor.getLong(offset + 1) // rssItemId
);
- return entity;
}
- /** @inheritdoc */
@Override
public void readEntity(Cursor cursor, CurrentRssItemView entity, int offset) {
- entity.setId(cursor.getLong(offset + 0));
+ entity.setId(cursor.getLong(offset));
entity.setRssItemId(cursor.getLong(offset + 1));
}
- /** @inheritdoc */
@Override
protected Long updateKeyAfterInsert(CurrentRssItemView entity, long rowId) {
entity.setId(rowId);
return rowId;
}
- /** @inheritdoc */
@Override
public Long getKey(CurrentRssItemView entity) {
if(entity != null) {
@@ -96,8 +89,7 @@ public class CurrentRssItemViewDao extends AbstractDao<CurrentRssItemView, Long>
}
}
- /** @inheritdoc */
- @Override
+ @Override
protected boolean isEntityUpdateable() {
return true;
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FeedDao.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FeedDao.java
index be654579..18d62970 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FeedDao.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FeedDao.java
@@ -106,27 +106,26 @@ public class FeedDao extends AbstractDao<Feed, Long> {
/** @inheritdoc */
@Override
public Long readKey(Cursor cursor, int offset) {
- return cursor.getLong(offset + 0);
+ return cursor.getLong(offset);
}
/** @inheritdoc */
@Override
public Feed readEntity(Cursor cursor, int offset) {
- Feed entity = new Feed( //
- cursor.getLong(offset + 0), // id
+ return new Feed( //
+ cursor.getLong(offset), // id
cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1), // folderId
cursor.getString(offset + 2), // feedTitle
cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // faviconUrl
cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // link
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5) // avgColour
);
- return entity;
}
/** @inheritdoc */
@Override
public void readEntity(Cursor cursor, Feed entity, int offset) {
- entity.setId(cursor.getLong(offset + 0));
+ entity.setId(cursor.getLong(offset));
entity.setFolderId(cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1));
entity.setFeedTitle(cursor.getString(offset + 2));
entity.setFaviconUrl(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
@@ -209,9 +208,8 @@ public class FeedDao extends AbstractDao<Feed, Long> {
String sql = builder.toString();
String[] keyArray = new String[] { key.toString() };
- Cursor cursor = db.rawQuery(sql, keyArray);
-
- try {
+
+ try (Cursor cursor = db.rawQuery(sql, keyArray)) {
boolean available = cursor.moveToFirst();
if (!available) {
return null;
@@ -219,8 +217,6 @@ public class FeedDao extends AbstractDao<Feed, Long> {
throw new IllegalStateException("Expected unique result, but count was " + cursor.getCount());
}
return loadCurrentDeep(cursor, true);
- } finally {
- cursor.close();
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FolderDao.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FolderDao.java
index 30537be8..f43b942d 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FolderDao.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/FolderDao.java
@@ -68,23 +68,22 @@ public class FolderDao extends AbstractDao<Folder, Long> {
/** @inheritdoc */
@Override
public Long readKey(Cursor cursor, int offset) {
- return cursor.getLong(offset + 0);
+ return cursor.getLong(offset);
}
/** @inheritdoc */
@Override
public Folder readEntity(Cursor cursor, int offset) {
- Folder entity = new Folder( //
- cursor.getLong(offset + 0), // id
+ return new Folder( //
+ cursor.getLong(offset), // id
cursor.getString(offset + 1) // label
);
- return entity;
}
/** @inheritdoc */
@Override
public void readEntity(Cursor cursor, Folder entity, int offset) {
- entity.setId(cursor.getLong(offset + 0));
+ entity.setId(cursor.getLong(offset));
entity.setLabel(cursor.getString(offset + 1));
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/RssItemDao.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/RssItemDao.java
index ba4e1139..38f19bc8 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/RssItemDao.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/model/RssItemDao.java
@@ -188,14 +188,14 @@ public class RssItemDao extends AbstractDao<RssItem, Long> {
/** @inheritdoc */
@Override
public Long readKey(Cursor cursor, int offset) {
- return cursor.getLong(offset + 0);
+ return cursor.getLong(offset);
}
/** @inheritdoc */
@Override
public RssItem readEntity(Cursor cursor, int offset) {
- RssItem entity = new RssItem( //
- cursor.getLong(offset + 0), // id
+ return new RssItem( //
+ cursor.getLong(offset), // id
cursor.getLong(offset + 1), // feedId
cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // link
cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // title
@@ -216,13 +216,12 @@ public class RssItemDao extends AbstractDao<RssItem, Long> {
cursor.isNull(offset + 18) ? null : cursor.getString(offset + 18), // mediaDescription
cursor.isNull(offset + 19) ? null : cursor.getShort(offset + 19) != 0 // rtl
);
- return entity;
}
/** @inheritdoc */
@Override
public void readEntity(Cursor cursor, RssItem entity, int offset) {
- entity.setId(cursor.getLong(offset + 0));
+ entity.setId(cursor.getLong(offset));
entity.setFeedId(cursor.getLong(offset + 1));
entity.setLink(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
entity.setTitle(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
@@ -321,9 +320,8 @@ public class RssItemDao extends AbstractDao<RssItem, Long> {
String sql = builder.toString();
String[] keyArray = new String[] { key.toString() };
- Cursor cursor = db.rawQuery(sql, keyArray);
-
- try {
+
+ try (Cursor cursor = db.rawQuery(sql, keyArray)) {
boolean available = cursor.moveToFirst();
if (!available) {
return null;
@@ -331,8 +329,6 @@ public class RssItemDao extends AbstractDao<RssItem, Long> {
throw new IllegalStateException("Expected unique result, but count was " + cursor.getCount());
}
return loadCurrentDeep(cursor, true);
- } finally {
- cursor.close();
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/di/ApiModule.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/di/ApiModule.java
index 760471e2..1c62a6e5 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/di/ApiModule.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/di/ApiModule.java
@@ -26,7 +26,7 @@ import okhttp3.OkHttpClient;
@Module
public class ApiModule {
- private Application mApplication;
+ private final Application mApplication;
public ApiModule(Application application) {
this.mApplication = application;
@@ -86,9 +86,8 @@ public class ApiModule {
@Provides
@Singleton
OkHttpClient provideOkHttpClient(Cache cache) {
- OkHttpClient client = new OkHttpClient();
- //client.setCache(cache);
- return client;
+ // setCache(cache);
+ return new OkHttpClient();
}
@Provides
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/events/podcast/UpdatePodcastStatusEvent.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/events/podcast/UpdatePodcastStatusEvent.java
index 7e85eb09..846fa72a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/events/podcast/UpdatePodcastStatusEvent.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/events/podcast/UpdatePodcastStatusEvent.java
@@ -6,14 +6,15 @@ import de.luhmer.owncloudnewsreader.services.podcast.PlaybackService;
public class UpdatePodcastStatusEvent {
- private long current;
- private long max;
- private String author;
- private String title;
- private @PlaybackStateCompat.State int status;
- private PlaybackService.VideoType videoType;
- private long rssItemId;
- private float speed;
+ private final long current;
+ private final long max;
+ private final String author;
+ private final String title;
+ private @PlaybackStateCompat.State
+ final int status;
+ private final PlaybackService.VideoType videoType;
+ private final long rssItemId;
+ private final float speed;
public long getRssItemId() {
return rssItemId;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/AutoResizeTextView.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/AutoResizeTextView.java
index b6af7fbc..548e7a86 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/AutoResizeTextView.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/AutoResizeTextView.java
@@ -16,6 +16,7 @@ package de.luhmer.owncloudnewsreader.helper;
* 0. You just DO WHAT THE FUCK YOU WANT TO.
*/
+import android.annotation.SuppressLint;
import android.content.Context;
import android.text.Layout.Alignment;
import android.text.StaticLayout;
@@ -233,6 +234,7 @@ public class AutoResizeTextView extends AppCompatTextView {
* @param width
* @param height
*/
+ @SuppressLint("SetTextI18n")
public void resizeText(int width, int height) {
CharSequence text = getText();
// Do not resize if the view does not have dimensions or there is no text
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ColorHelper.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ColorHelper.java
index 25df2a90..23b03c0d 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ColorHelper.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ColorHelper.java
@@ -1,5 +1,6 @@
package de.luhmer.owncloudnewsreader.helper;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
@@ -8,6 +9,7 @@ import de.luhmer.owncloudnewsreader.R;
import de.luhmer.owncloudnewsreader.database.model.Feed;
public class ColorHelper {
+ @SuppressLint("DefaultLocale")
public static String getCssColor(int color) {
// using %f for the double value would result in a localized string, e.g. 0,12 which
// would be an invalid css color string
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java
index ea73cf04..384ce1a7 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/DatabaseUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/FavIconHandler.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/FavIconHandler.java
index b0176d22..4613a77c 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/FavIconHandler.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/FavIconHandler.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ForegroundListener.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ForegroundListener.java
index 5d4a8e9c..4c63cc03 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ForegroundListener.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ForegroundListener.java
@@ -4,6 +4,8 @@ import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
+import androidx.annotation.NonNull;
+
public class ForegroundListener implements Application.ActivityLifecycleCallbacks {
private static int numStarted;
@@ -13,37 +15,37 @@ public class ForegroundListener implements Application.ActivityLifecycleCallback
}
@Override
- public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
+ public void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) {
// do nothing
}
@Override
- public void onActivityStarted(Activity activity) {
+ public void onActivityStarted(@NonNull Activity activity) {
numStarted++;
}
@Override
- public void onActivityResumed(Activity activity) {
+ public void onActivityResumed(@NonNull Activity activity) {
// do nothing
}
@Override
- public void onActivityPaused(Activity activity) {
+ public void onActivityPaused(@NonNull Activity activity) {
// do nothing
}
@Override
- public void onActivityStopped(Activity activity) {
+ public void onActivityStopped(@NonNull Activity activity) {
numStarted--;
}
@Override
- public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
+ public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
// do nothing
}
@Override
- public void onActivityDestroyed(Activity activity) {
+ public void onActivityDestroyed(@NonNull Activity activity) {
// do nothing
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageDownloadFinished.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageDownloadFinished.java
index b4fe6268..11b50a14 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageDownloadFinished.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageDownloadFinished.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java
index 48352bff..1b838342 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ImageHandler.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -42,7 +42,7 @@ public class ImageHandler {
Matcher matcherSrcLink = patternImgSrcLink.matcher(matcher.group());
if(matcherSrcLink.find()) {
String link = matcherSrcLink.group(1);
- if(link.startsWith("//")) { //Maybe the text contains image urls without http or https prefix.
+ if(link != null && link.startsWith("//")) { //Maybe the text contains image urls without http or https prefix.
link = "https:" + link;
}
links.add(link);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NetworkConnection.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NetworkConnection.java
index 5754a615..7ce267f3 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NetworkConnection.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NetworkConnection.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NewsFileUtils.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NewsFileUtils.java
index 851d4a61..62dc60bf 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NewsFileUtils.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NewsFileUtils.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java
index 43672dc9..13663682 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/NotificationActionReceiver.java
@@ -4,8 +4,11 @@ import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.util.Log;
+import androidx.annotation.RequiresApi;
+
import org.greenrobot.eventbus.EventBus;
import de.luhmer.owncloudnewsreader.database.DatabaseConnectionOrm;
@@ -17,6 +20,7 @@ import static de.luhmer.owncloudnewsreader.Constants.NOTIFICATION_ACTION_MARK_AL
public class NotificationActionReceiver extends BroadcastReceiver {
private static final String TAG = NotificationActionReceiver.class.getCanonicalName();
+ @RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
@@ -26,7 +30,7 @@ public class NotificationActionReceiver extends BroadcastReceiver {
dbConn.markAllItemsAsRead();
EventBus.getDefault().post(new SyncFinishedEvent());
- Integer notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1);
+ int notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1);
if (notificationId != -1) {
NotificationManager nMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notificationId);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/OpmlXmlParser.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/OpmlXmlParser.java
index eba5a48b..e6186a96 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/OpmlXmlParser.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/OpmlXmlParser.java
@@ -158,7 +158,7 @@ public class OpmlXmlParser {
// Parses the contents of an entry. If it encounters a title, summary, or link tag, hands them off
// to their respective "read" methods for processing. Otherwise, skips the tag.
- private static Entry ReadOutline(XmlPullParser parser) throws XmlPullParserException, IOException {
+ private static Entry ReadOutline(XmlPullParser parser) {
//parser.require(XmlPullParser.START_TAG, ns, "outline");
String link = parser.getAttributeValue(null, "xmlUrl");
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/PostDelayHandler.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/PostDelayHandler.java
index 4927596a..eb79e422 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/PostDelayHandler.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/PostDelayHandler.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -32,7 +32,7 @@ public class PostDelayHandler {
private static final String TAG = "PostDelayHandler";
private static Handler handlerTimer;
- private Context context;
+ private final Context context;
private static boolean isDelayed = false;
public PostDelayHandler(Context context) {
@@ -67,17 +67,16 @@ public class PostDelayHandler {
Log.v(TAG, "delay() called with: time = [" + time + "]");
if(!isDelayed) {
isDelayed = true;
- handlerTimer.postDelayed(new Runnable(){
- public void run() {
- isDelayed = false;
- Log.v(TAG, "Time exceeded.. Sync state of changed items. Delay was: " + time);
- if((!SyncItemStateService.isMyServiceRunning(context)) && NetworkConnection.isNetworkAvailable(context))
- {
- Log.v(TAG, "Starting SyncItemStateService");
+ handlerTimer.postDelayed(() -> {
+ isDelayed = false;
+ Log.v(TAG, "Time exceeded.. Sync state of changed items. Delay was: " + time);
+ if((!SyncItemStateService.isMyServiceRunning(context)) && NetworkConnection.isNetworkAvailable(context))
+ {
+ Log.v(TAG, "Starting SyncItemStateService");
- SyncItemStateService.enqueueWork(context, new Intent());
- }
- }}, time);
+ SyncItemStateService.enqueueWork(context, new Intent());
+ }
+ }, time);
}
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/SquareRoundedBitmapDisplayer.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/SquareRoundedBitmapDisplayer.java
index 84beb411..62d2f80e 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/SquareRoundedBitmapDisplayer.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/SquareRoundedBitmapDisplayer.java
@@ -46,6 +46,7 @@ public class SquareRoundedBitmapDisplayer implements BitmapProcessor {
// float scaleFactor = (float) width / bitmap.getWidth();
int side = Math.min(bitmap.getWidth(), bitmap.getHeight());
+ //noinspection SuspiciousNameCombination
int height = width;
Log.d(TAG, "scale bitmap " + bitmap.getWidth() + "x" + bitmap.getHeight() + " -> " + width + "x" + height);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeChooser.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeChooser.java
index 6602ed49..23965e43 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeChooser.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeChooser.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -57,6 +57,7 @@ public class ThemeChooser {
case 0: // Auto (Light / Dark)
Log.v(TAG, "Auto (Light / Dark)");
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
+ //noinspection deprecation
defaultNightMode = AppCompatDelegate.MODE_NIGHT_AUTO_TIME;
} else { // Android 10+ (Q) supports a system-wide dark mode
defaultNightMode = AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
@@ -131,6 +132,7 @@ public class ThemeChooser {
Log.v(TAG, "MODE_NIGHT_YES (Dark Theme)");
return true;
case AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM:
+ //noinspection deprecation
case AppCompatDelegate.MODE_NIGHT_AUTO:
//Log.v(TAG, "MODE_NIGHT_AUTO");
int nightModeFlags = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeUtils.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeUtils.java
index 7c1a77f5..61d2416b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeUtils.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/helper/ThemeUtils.java
@@ -1,5 +1,5 @@
-/**
- * Android ownCloud News
+/*
+* Android ownCloud News
*
* @author David Luhmer
* @copyright 2019 David Luhmer david-dev@live.de
@@ -33,6 +33,7 @@ import android.widget.SearchView;
import android.widget.TextView;
import androidx.annotation.ColorInt;
+import androidx.annotation.RequiresApi;
import androidx.appcompat.widget.ActionMenuView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
@@ -122,6 +123,7 @@ public class ThemeUtils {
* @param activity
* @param statusBarColor
*/
+ @RequiresApi(api = Build.VERSION_CODES.KITKAT)
public static void changeStatusBarColor(Activity activity, @ColorInt int statusBarColor) {
Window window = activity.getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/interfaces/ExpListTextClicked.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/interfaces/ExpListTextClicked.java
index 10a20595..450309f8 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/interfaces/ExpListTextClicked.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/interfaces/ExpListTextClicked.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/AbstractItem.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/AbstractItem.java
index 9b3002b1..9c8c5b3b 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/AbstractItem.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/AbstractItem.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/ConcreteFeedItem.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/ConcreteFeedItem.java
index 24f73a89..645ded1d 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/ConcreteFeedItem.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/ConcreteFeedItem.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/FolderSubscribtionItem.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/FolderSubscribtionItem.java
index 2ed2c580..ab484a0f 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/FolderSubscribtionItem.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/FolderSubscribtionItem.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/NextcloudStatus.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/NextcloudStatus.java
index 0c962a00..eaef20b8 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/NextcloudStatus.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/NextcloudStatus.java
@@ -9,7 +9,7 @@ public class NextcloudStatus {
public String version;
public Warnings warnings;
- class Warnings {
+ static class Warnings {
public String improperlyConfiguredCron;
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/Tuple.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/Tuple.java
index 47111459..6f6fc1e6 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/Tuple.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/model/Tuple.java
@@ -1,5 +1,6 @@
package de.luhmer.owncloudnewsreader.model;
+// TODO replace with Pair
public class Tuple<E, T> {
public final E key;
public final T value;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java
index 6bd9e829..8cfa2468 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/notification/NextcloudNotificationManager.java
@@ -85,7 +85,8 @@ public class NextcloudNotificationManager {
Intent intentNewsReader = new Intent(context, NewsReaderListActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(context, 0, intentNewsReader, 0);
- NotificationCompat.Builder mNotificationDownloadImages = new NotificationCompat.Builder(context, channelId)
+
+ return new NotificationCompat.Builder(context, channelId)
.setContentTitle(context.getResources().getString(R.string.app_name))
.setContentText(context.getString(R.string.notification_download_images_offline))
.setSmallIcon(R.drawable.ic_notification)
@@ -93,8 +94,6 @@ public class NextcloudNotificationManager {
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setOngoing(true);
-
- return mNotificationDownloadImages;
}
public static void showNotificationSaveSingleCachedImageService(Context context, String channelId, File file) {
@@ -118,7 +117,8 @@ public class NextcloudNotificationManager {
Intent intentNewsReader = new Intent(context, NewsReaderListActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(context, 0, intentNewsReader, 0);
- NotificationCompat.Builder mNotificationWebPages = new NotificationCompat.Builder(context, channelId)
+
+ return new NotificationCompat.Builder(context, channelId)
.setContentTitle(context.getResources().getString(R.string.app_name))
.setContentText(context.getString(R.string.notification_download_articles_offline))
.setSmallIcon(R.drawable.ic_notification)
@@ -126,8 +126,6 @@ public class NextcloudNotificationManager {
.setAutoCancel(true)
.setOnlyAlertOnce(true)
.setOngoing(true);
-
- return mNotificationWebPages;
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/FeedItemTags.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/FeedItemTags.java
index 9eafa476..768d09ec 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/FeedItemTags.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/FeedItemTags.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -29,7 +29,7 @@ public enum FeedItemTags {
ALL_STARRED("2"),
ALL("3");
- private String segment;
+ private final String segment;
FeedItemTags(String segment) {
this.segment = segment;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/InsertIntoDatabase.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/InsertIntoDatabase.java
index d2f36172..8d42dbe5 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/InsertIntoDatabase.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/InsertIntoDatabase.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OkHttpImageDownloader.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OkHttpImageDownloader.java
index b28a1025..8afae922 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OkHttpImageDownloader.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OkHttpImageDownloader.java
@@ -15,10 +15,9 @@ import okhttp3.ResponseBody;
public class OkHttpImageDownloader extends BaseImageDownloader {
- @SuppressWarnings("unused")
private static final String TAG = "OkHttpImageDownloader";
- private OkHttpClient imageClient;
+ private final OkHttpClient imageClient;
public OkHttpImageDownloader(Context context, OkHttpClient imageClient) {
super(context);
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OnAsyncTaskCompletedListener.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OnAsyncTaskCompletedListener.java
index 416a381e..280a4e5d 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OnAsyncTaskCompletedListener.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/OnAsyncTaskCompletedListener.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java
index 113ed93a..1088e120 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/InsertRssItemIntoDatabase.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -138,6 +138,7 @@ class InsertRssItemIntoDatabase {
}
}
+ @SuppressWarnings("SameParameterValue")
private static Boolean getBooleanOrDefault(String key, Boolean defaultValue, JsonObject jObj) {
if(jObj.has(key) && !jObj.get(key).isJsonNull()) {
return jObj.get(key).getAsBoolean();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/RssItemObservable.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/RssItemObservable.java
index 9340f494..ff6abef2 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/RssItemObservable.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/reader/nextcloud/RssItemObservable.java
@@ -35,9 +35,9 @@ import okio.BufferedSource;
*/
public class RssItemObservable implements Publisher<Integer> {
- private DatabaseConnectionOrm mDbConn;
- private NewsAPI mNewsApi;
- private SharedPreferences mPrefs;
+ private final DatabaseConnectionOrm mDbConn;
+ private final NewsAPI mNewsApi;
+ private final SharedPreferences mPrefs;
private static final String TAG = RssItemObservable.class.getCanonicalName();
private static int maxSizePerSync = 300;
@@ -130,7 +130,7 @@ public class RssItemObservable implements Publisher<Integer> {
.subscribe(new Observer<RssItem>() {
int totalUpdatedUnreadItemCount = 0;
final int bufferSize = 150;
- List<RssItem> buffer = new ArrayList<>(bufferSize); //Buffer of size X
+ final List<RssItem> buffer = new ArrayList<>(bufferSize); //Buffer of size X
@Override
public void onSubscribe(@NonNull Disposable d) {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadImagesService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadImagesService.java
index c6aec03c..ea80835a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadImagesService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadImagesService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -34,6 +34,7 @@ import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.Random;
import de.greenrobot.dao.query.LazyList;
@@ -112,7 +113,7 @@ public class DownloadImagesService extends JobIntentService {
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(this);
mNotificationDownloadImages = NextcloudNotificationManager.buildNotificationDownloadImageService(this, CHANNEL_ID);
- if(downloadMode.equals(DownloadMode.FAVICONS_ONLY)) {
+ if(Objects.equals(downloadMode, DownloadMode.FAVICONS_ONLY)) {
List<Feed> feedList = dbConn.getListOfFeeds();
FavIconHandler favIconHandler = new FavIconHandler(getApplicationContext());
for(Feed feed : feedList) {
@@ -122,7 +123,7 @@ public class DownloadImagesService extends JobIntentService {
Log.e(TAG, ex.getMessage());
}
}
- } else if(downloadMode.equals(DownloadMode.FAVICONS_AND_PICTURES) || downloadMode.equals(DownloadMode.PICTURES_ONLY)) {
+ } else if(Objects.equals(downloadMode, DownloadMode.FAVICONS_AND_PICTURES) || Objects.equals(downloadMode, DownloadMode.PICTURES_ONLY)) {
long lastId = intent.getLongExtra(LAST_ITEM_ID, 0);
List<RssItem> rssItemList = dbConn.getAllItemsWithIdHigher(lastId);
List<String> links = new ArrayList<>();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadWebPageService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadWebPageService.java
index 729c19b8..55293b27 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadWebPageService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/DownloadWebPageService.java
@@ -127,7 +127,7 @@ public class DownloadWebPageService extends Service {
}
}
- private void delayedRunOnMainThread(Runnable runnable, int waitMillis) {
+ private void delayedRunOnMainThread(Runnable runnable, @SuppressWarnings("SameParameterValue") int waitMillis) {
try {
Thread.sleep(waitMillis);
runOnMainThreadAndWait(runnable);
@@ -189,7 +189,7 @@ public class DownloadWebPageService extends Service {
class DownloadWebPage implements Runnable {
- private String url;
+ private final String url;
private WebView webView;
private final Object lock;
@@ -239,7 +239,7 @@ public class DownloadWebPageService extends Service {
}
}
- class DownloadImageWebViewChromeClient extends WebChromeClient {
+ static class DownloadImageWebViewChromeClient extends WebChromeClient {
@Override
public boolean onConsoleMessage(ConsoleMessage cm) {
//Log.d("TAG", cm.message() + " at " + cm.sourceId() + ":" + cm.lineNumber());
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastDownloadService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastDownloadService.java
index 77315462..abafc983 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastDownloadService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastDownloadService.java
@@ -36,7 +36,6 @@ import de.luhmer.owncloudnewsreader.notification.NextcloudNotificationManager;
*/
public class PodcastDownloadService extends IntentService {
- @SuppressWarnings("unused")
private static final String TAG = PodcastDownloadService.class.getCanonicalName();
// IntentService can perform, e.g. ACTION_FETCH_NEW_ITEMS
@@ -45,7 +44,7 @@ public class PodcastDownloadService extends IntentService {
private static final String EXTRA_RECEIVER = "de.luhmer.owncloudnewsreader.services.extra.RECEIVER";
private static final String EXTRA_URL = "de.luhmer.owncloudnewsreader.services.extra.URL";
- private EventBus eventBus;
+ private final EventBus eventBus;
/**
* Starts this service to download a podcast. If
@@ -164,7 +163,7 @@ public class PodcastDownloadService extends IntentService {
long startTime = System.nanoTime();
- byte data[] = new byte[1024];
+ byte[] data = new byte[1024];
long total = 0;
int count;
int lastProgress = -1;
@@ -236,7 +235,7 @@ public class PodcastDownloadService extends IntentService {
//public static final int UPDATE_PROGRESS = 5555;
- public class DownloadProgressUpdate {
+ public static class DownloadProgressUpdate {
public DownloadProgressUpdate(PodcastItem podcast) {
this.podcast = podcast;
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java
index acd2fe86..3e16256c 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java
@@ -106,7 +106,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
private PlaybackService mPlaybackService;
private MediaSessionCompat mSession;
- public static final float PLAYBACK_SPEEDS[] = { 0.25f, 0.5f, 0.75f, 1.0f, 1.25f, 1.5f, 1.75f, 2.0f, 2.5f, 3.0f };
+ public static final float[] PLAYBACK_SPEEDS = { 0.25f, 0.5f, 0.75f, 1.0f, 1.25f, 1.5f, 1.75f, 2.0f, 2.5f, 3.0f };
private float currentPlaybackSpeed = 1;
@@ -163,7 +163,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
mediaItems.add(new MediaBrowserCompat.MediaItem(desc.build(), MediaBrowserCompat.MediaItem.FLAG_BROWSABLE));
}
} else {
- Long feedId = Long.parseLong(s.substring(5));
+ long feedId = Long.parseLong(s.substring(5));
for (PodcastItem item: dbConn.getListOfAudioPodcastsForFeed(this, feedId)) {
MediaDescriptionCompat.Builder desc =
new MediaDescriptionCompat.Builder()
@@ -333,7 +333,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
}
*/
- private PlaybackService.PodcastStatusListener podcastStatusListener = new PlaybackService.PodcastStatusListener() {
+ private final PlaybackService.PodcastStatusListener podcastStatusListener = new PlaybackService.PodcastStatusListener() {
@Override
public void podcastStatusUpdated() {
syncMediaAndPlaybackStatus();
@@ -411,7 +411,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
@Subscribe
public void onEvent(RegisterVideoOutput videoOutput) {
if(mPlaybackService != null && mPlaybackService instanceof MediaPlayerPlaybackService) {
- ((MediaPlayerPlaybackService) mPlaybackService).setVideoView(videoOutput.surfaceView, videoOutput.parentResizableView);
+ ((MediaPlayerPlaybackService) mPlaybackService).setVideoView(videoOutput.surfaceView);
}
}
@@ -471,7 +471,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
audioManager.abandonAudioFocus(audioFocusChangeListener);
}
- private AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = focusChange -> {
+ private final AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = focusChange -> {
if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
// Permanent loss of audio focus
// Pause playback immediately
@@ -562,11 +562,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
.build());
}
- if(playbackState == PlaybackStateCompat.STATE_PLAYING) {
- mSession.setActive(true);
- } else {
- mSession.setActive(false);
- }
+ mSession.setActive(playbackState == PlaybackStateCompat.STATE_PLAYING);
podcastNotification.updateStateOfNotification(playbackState, currentPosition, totalDuration);
}
@@ -769,10 +765,7 @@ public class PodcastPlaybackService extends MediaBrowserServiceCompat {
List<PodcastItem> audioPodcasts= new ArrayList<>();
for(PodcastFeedItem podcastFeed : dbConn.getListOfFeedsWithAudioPodcasts()) {
long id = podcastFeed.mFeed.getId();
- for(PodcastItem podcastItem : dbConn.getListOfAudioPodcastsForFeed(PodcastPlaybackService.this, id)) {
-
- audioPodcasts.add(podcastItem);
- }
+ audioPodcasts.addAll(dbConn.getListOfAudioPodcastsForFeed(PodcastPlaybackService.this, id));
}
return audioPodcasts;
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/SyncItemStateService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/SyncItemStateService.java
index e40bb1f3..b435c182 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/SyncItemStateService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/SyncItemStateService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -27,6 +27,7 @@ import android.content.Context;
import android.content.Intent;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.core.app.JobIntentService;
import java.io.IOException;
@@ -62,7 +63,7 @@ public class SyncItemStateService extends JobIntentService {
}
@Override
- protected void onHandleWork(Intent intent) {
+ protected void onHandleWork(@NonNull Intent intent) {
if(mApi.getNewsAPI() == null) {
Log.w(TAG, "API is not initialized");
return;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/events/SyncFailedEvent.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/events/SyncFailedEvent.java
index 6ae8418e..49ff4941 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/events/SyncFailedEvent.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/events/SyncFailedEvent.java
@@ -5,7 +5,7 @@ package de.luhmer.owncloudnewsreader.services.events;
*/
public class SyncFailedEvent {
- private Throwable throwable;
+ private final Throwable throwable;
public SyncFailedEvent(Throwable throwable) {
this.throwable = throwable;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/MediaPlayerPlaybackService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/MediaPlayerPlaybackService.java
index cee05c68..096ce698 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/MediaPlayerPlaybackService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/MediaPlayerPlaybackService.java
@@ -21,7 +21,7 @@ import de.luhmer.owncloudnewsreader.model.PodcastItem;
public class MediaPlayerPlaybackService extends PlaybackService {
private static final String TAG = MediaPlayerPlaybackService.class.getCanonicalName();
- private MediaPlayer mMediaPlayer;
+ private final MediaPlayer mMediaPlayer;
//private View parentView;
public MediaPlayerPlaybackService(final Context context, PodcastStatusListener podcastStatusListener, MediaItem mediaItem) {
@@ -145,7 +145,7 @@ public class MediaPlayerPlaybackService extends PlaybackService {
return mMediaPlayer.getVideoWidth();
}
- public void setVideoView(SurfaceView surfaceView, View parentResizableView) {
+ public void setVideoView(SurfaceView surfaceView) {
if (surfaceView == null) {
mMediaPlayer.setDisplay(null);
//Log.v(TAG, "Disable Screen output!");
@@ -166,7 +166,7 @@ public class MediaPlayerPlaybackService extends PlaybackService {
//private int mSurfaceWidth;
//private int mSurfaceHeight;
private SurfaceHolder mSurfaceHolder;
- private SurfaceHolder.Callback mSHCallback = new SurfaceHolder.Callback() {
+ private final SurfaceHolder.Callback mSHCallback = new SurfaceHolder.Callback() {
public void surfaceChanged(SurfaceHolder holder, int format, int surfaceWidth, int surfaceHeight) {
Log.v(TAG, "surfaceChanged() called with: holder = [" + holder + "], format = [" + format + "], surfaceWidth = [" + surfaceWidth + "], surfaceHeight = [" + surfaceHeight + "]");
//mSurfaceWidth = surfaceWidth;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/PlaybackService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/PlaybackService.java
index 48d2b67c..031c5edc 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/PlaybackService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/podcast/PlaybackService.java
@@ -13,8 +13,8 @@ public abstract class PlaybackService {
public enum VideoType { None, Video, VideoType, YouTube }
private @PlaybackStateCompat.State int mStatus = PlaybackStateCompat.STATE_NONE;
- private PodcastStatusListener podcastStatusListener;
- private MediaItem mediaItem;
+ private final PodcastStatusListener podcastStatusListener;
+ private final MediaItem mediaItem;
public interface PodcastStatusListener {
void podcastStatusUpdated();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingDialogFragment.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingDialogFragment.java
index 2b77d0d5..bfc4c394 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingDialogFragment.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingDialogFragment.java
@@ -32,6 +32,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import de.luhmer.owncloudnewsreader.R;
@@ -51,11 +52,11 @@ public class MemorizingDialogFragment extends DialogFragment
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate");
- Bundle i = getArguments();
+ Bundle args = requireArguments();
- app = i.getString(MemorizingTrustManager.DECISION_INTENT_APP);
- decisionId = i.getInt(MemorizingTrustManager.DECISION_INTENT_ID, MTMDecision.DECISION_INVALID);
- cert = i.getString(MemorizingTrustManager.DECISION_INTENT_CERT);
+ app = args.getString(MemorizingTrustManager.DECISION_INTENT_APP);
+ decisionId = args.getInt(MemorizingTrustManager.DECISION_INTENT_ID, MTMDecision.DECISION_INVALID);
+ cert = args.getString(MemorizingTrustManager.DECISION_INTENT_CERT);
//Log.d(TAG, "onResume with " + i.getExtras() + " decId=" + decisionId);
//Log.d(TAG, "data: " + i.getData());
@@ -66,7 +67,7 @@ public class MemorizingDialogFragment extends DialogFragment
public void onResume() {
super.onResume();
- new AlertDialog.Builder(getActivity()).setTitle(R.string.mtm_accept_cert)
+ new AlertDialog.Builder(requireContext()).setTitle(R.string.mtm_accept_cert)
.setMessage(cert)
.setPositiveButton(R.string.mtm_decision_always, this)
.setNegativeButton(R.string.mtm_decision_abort, this)
@@ -79,9 +80,9 @@ public class MemorizingDialogFragment extends DialogFragment
Intent i = new Intent(MemorizingTrustManager.DECISION_INTENT + "/" + app);
i.putExtra(MemorizingTrustManager.DECISION_INTENT_ID, decisionId);
i.putExtra(MemorizingTrustManager.DECISION_INTENT_CHOICE, decision);
- getActivity().sendBroadcast(i);
+ requireActivity().sendBroadcast(i);
//finish();
- getDialog().dismiss();
+ requireDialog().dismiss();
}
// react on AlertDialog button press
@@ -101,7 +102,7 @@ public class MemorizingDialogFragment extends DialogFragment
sendDecision(decision);
}
- public void onCancel(DialogInterface dialog) {
+ public void onCancel(@NonNull DialogInterface dialog) {
sendDecision(MTMDecision.DECISION_ABORT);
}
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingTrustManager.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingTrustManager.java
index 8f6e2192..1efaa34f 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingTrustManager.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/MemorizingTrustManager.java
@@ -44,6 +44,10 @@ import android.os.Handler;
import android.util.Log;
import android.util.SparseArray;
+import androidx.core.app.NotificationCompat;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.FragmentActivity;
+
import java.io.File;
import java.io.IOException;
import java.lang.ref.WeakReference;
@@ -61,9 +65,6 @@ import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
-import androidx.core.app.NotificationCompat;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.FragmentActivity;
import de.luhmer.owncloudnewsreader.R;
/**
@@ -94,11 +95,11 @@ public class MemorizingTrustManager implements X509TrustManager {
private static final SparseArray<MTMDecision> openDecisions = new SparseArray<>();
Handler masterHandler;
- private File keyStoreFile;
- private KeyStore appKeyStore;
- private X509TrustManager defaultTrustManager;
+ private final File keyStoreFile;
+ private final KeyStore appKeyStore;
+ private final X509TrustManager defaultTrustManager;
private X509TrustManager appTrustManager;
- private Context mContext;
+ private final Context mContext;
/** Creates an instance of the MemorizingTrustManager class.
*
@@ -496,24 +497,22 @@ public class MemorizingTrustManager implements X509TrustManager {
public void onReceive(Context ctx, Intent i) { interactResult(i); }
};
mContext.registerReceiver(decisionReceiver, new IntentFilter(DECISION_INTENT + "/" + mContext.getPackageName()));
- masterHandler.post(new Runnable() {
- public void run() {
- Intent ni = new Intent(mContext, MemorizingDialogFragment.class);
- ni.setData(Uri.parse(MemorizingTrustManager.class.getName() + "/" + myId));
-
- Bundle bundle = new Bundle();
- bundle.putString(DECISION_INTENT_APP, mContext.getPackageName());
- bundle.putInt(DECISION_INTENT_ID, myId);
- bundle.putString(DECISION_INTENT_CERT, certMessage);
-
- DialogFragment dialog = new MemorizingDialogFragment();
- dialog.setArguments(bundle);
- try {
- dialog.show(((FragmentActivity) getUI()).getSupportFragmentManager(), "NoticeDialogFragment");
- } catch(Exception ex) {
- Log.e(TAG, "startActivity: " + ex);
- startActivityNotification(ni, certMessage);
- }
+ masterHandler.post(() -> {
+ Intent ni = new Intent(mContext, MemorizingDialogFragment.class);
+ ni.setData(Uri.parse(MemorizingTrustManager.class.getName() + "/" + myId));
+
+ Bundle bundle = new Bundle();
+ bundle.putString(DECISION_INTENT_APP, mContext.getPackageName());
+ bundle.putInt(DECISION_INTENT_ID, myId);
+ bundle.putString(DECISION_INTENT_CERT, certMessage);
+
+ DialogFragment dialog = new MemorizingDialogFragment();
+ dialog.setArguments(bundle);
+ try {
+ dialog.show(((FragmentActivity) getUI()).getSupportFragmentManager(), "NoticeDialogFragment");
+ } catch (Exception ex) {
+ Log.e(TAG, "startActivity: " + ex);
+ startActivityNotification(ni, certMessage);
}
});
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/OkHttpSSLClient.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/OkHttpSSLClient.java
index d28af577..36f1aac8 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/OkHttpSSLClient.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/OkHttpSSLClient.java
@@ -4,6 +4,8 @@ import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.os.Build;
+import androidx.annotation.NonNull;
+
import com.google.gson.JsonParseException;
import java.io.IOException;
@@ -123,6 +125,7 @@ public class OkHttpSSLClient {
this.mCredentials = credentials;
}
+ @NonNull
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/TLSSocketFactory.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/TLSSocketFactory.java
index f50f6f76..7e111b44 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/TLSSocketFactory.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/ssl/TLSSocketFactory.java
@@ -60,19 +60,19 @@ public class TLSSocketFactory extends SSLSocketFactory {
//NoTLS
@Override
- public Socket createSocket(String s, int i) throws IOException {
+ public Socket createSocket(String s, int i) {
return null;
}
@Override
- public Socket createSocket(String s, int i, InetAddress inetAddress, int i2) throws IOException {
+ public Socket createSocket(String s, int i, InetAddress inetAddress, int i2) {
return null;
}
@Override
- public Socket createSocket(InetAddress inetAddress, int i) throws IOException {
+ public Socket createSocket(InetAddress inetAddress, int i) {
return null;
}
@Override
- public Socket createSocket(InetAddress inetAddress, int i, InetAddress inetAddress2, int i2) throws IOException {
+ public Socket createSocket(InetAddress inetAddress, int i, InetAddress inetAddress2, int i2) {
return null;
}
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/AnimatingProgressBar.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/AnimatingProgressBar.java
index fd8e7398..22256b7e 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/AnimatingProgressBar.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/AnimatingProgressBar.java
@@ -85,13 +85,7 @@ public class AnimatingProgressBar extends ProgressBar {
animator = ValueAnimator.ofInt(getProgress() * RESOLUTION, progress * RESOLUTION);
animator.setInterpolator(DEFAULT_INTERPOLATOR);
animator.setDuration(ANIMATION_DURATION);
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
-
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- AnimatingProgressBar.super.setProgress((Integer) animation.getAnimatedValue());
- }
- });
+ animator.addUpdateListener(animation -> AnimatingProgressBar.super.setProgress((Integer) animation.getAnimatedValue()));
}
animator.cancel();
@@ -110,13 +104,7 @@ public class AnimatingProgressBar extends ProgressBar {
animatorSecondary = ValueAnimator.ofInt(getSecondaryProgress() * RESOLUTION, secondaryProgress * RESOLUTION);
animatorSecondary.setInterpolator(DEFAULT_INTERPOLATOR);
animatorSecondary.setDuration(ANIMATION_DURATION);
- animatorSecondary.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
-
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- AnimatingProgressBar.super.setSecondaryProgress((Integer) animation.getAnimatedValue());
- }
- });
+ animatorSecondary.addUpdateListener(animation -> AnimatingProgressBar.super.setSecondaryProgress((Integer) animation.getAnimatedValue()));
}
animatorSecondary.cancel();
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastNotification.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastNotification.java
index 8277e13d..3493d2f2 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastNotification.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastNotification.java
@@ -29,7 +29,7 @@ public class PodcastNotification {
private NotificationCompat.Builder notificationBuilder;
private final String CHANNEL_ID = "Podcast Notification";
- private MediaSessionCompat mSession;
+ private final MediaSessionCompat mSession;
private @PlaybackStateCompat.State int lastStatus = PlaybackStateCompat.STATE_NONE;
public final static int NOTIFICATION_ID = 1111;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java
index e2437064..85c83db7 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java
@@ -65,8 +65,7 @@ public class PodcastSlidingUpPanelLayout extends SlidingUpPanelLayout {
v.getLayoutParams().height = 0;
v.setVisibility(View.VISIBLE);
- Animation a = new Animation()
- {
+ Animation a = new Animation() {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
v.getLayoutParams().height = interpolatedTime == 1
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetNewsViewsFactory.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetNewsViewsFactory.java
index 6c7a1218..e67d6a9f 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetNewsViewsFactory.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetNewsViewsFactory.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -48,9 +48,9 @@ public class WidgetNewsViewsFactory implements RemoteViewsService.RemoteViewsFac
private DatabaseConnectionOrm dbConn;
private LazyList<RssItem> rssItems;
- private Context context;
+ private final Context context;
- private int appWidgetId;
+ private final int appWidgetId;
public WidgetNewsViewsFactory(Context context, Intent intent) {
this.context = context;
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetProvider.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetProvider.java
index 40f1b892..9df84b7a 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetProvider.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetProvider.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer
@@ -60,7 +60,7 @@ public class WidgetProvider extends AppWidgetProvider {
public static void UpdateWidget(Context context) {
- int ids[] = AppWidgetManager.getInstance(context).getAppWidgetIds(new ComponentName(context, WidgetProvider.class));
+ int[] ids = AppWidgetManager.getInstance(context).getAppWidgetIds(new ComponentName(context, WidgetProvider.class));
for(int appWidgetId : ids) {
AppWidgetManager.getInstance(context).notifyAppWidgetViewDataChanged(appWidgetId, R.id.list_view);
@@ -83,7 +83,7 @@ public class WidgetProvider extends AppWidgetProvider {
public void onReceive(Context context, Intent intent) {
inject(context);
- final int appWidgetId[];
+ final int[] appWidgetId;
if(intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS))
appWidgetId = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
else if(intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_ID))
@@ -111,7 +111,7 @@ public class WidgetProvider extends AppWidgetProvider {
} */ else if (action.equals(ACTION_LIST_CLICK)) {
try {
- Long rssItemId = intent.getExtras().getLong(RSS_ITEM_ID);
+ long rssItemId = intent.getExtras().getLong(RSS_ITEM_ID);
if (intent.hasExtra(ACTION_CHECKED_CLICK)) {
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetService.java
index 84f3e63e..0bc6fb62 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/widget/WidgetService.java
@@ -1,4 +1,4 @@
-/**
+/*
* Android ownCloud News
*
* @author David Luhmer