summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2024-11-24 13:09:08 +0300
committerAndrew Dolgov <fox@fakecake.org>2024-11-24 13:09:08 +0300
commit5741ae95834e7370997598db264f75d26badd1d9 (patch)
treece939b7c569e9f9cc9751f6815574e43818ea450
parent47a5f1b9263002c04b2544e817a7d3250ad0a17c (diff)
fix several usages of jsoup first() not checked for possible null, fix usages of jsoup attr() which does not return null checked for null value
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java67
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java12
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java10
3 files changed, 54 insertions, 35 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
index dff6fe41..906e2c1f 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
@@ -166,46 +166,61 @@ public class GalleryActivity extends CommonActivity {
String cover = elem.attr("poster");
Element source = elem.select("source").first();
- String src = source.attr("src");
- //Log.d(TAG, "vid/src=" + src);
+ if (source != null) {
+ String src = source.attr("src");
- if (src.startsWith("//")) {
- src = "https:" + src;
- }
+ if (src.length() > 0) {
+ //Log.d(TAG, "vid/src=" + src);
+
+ if (src.startsWith("//")) {
+ src = "https:" + src;
+ }
+
+ if (imgSrcFirst.equals(src))
+ firstFound = true;
+
+ try {
+ Uri checkUri = Uri.parse(src);
- if (imgSrcFirst.equals(src))
- firstFound = true;
+ if (!"data".equals(checkUri.getScheme().toLowerCase())) {
+ item.url = src;
+ item.coverUrl = cover;
+ item.type = GalleryEntry.GalleryEntryType.TYPE_VIDEO;
+ }
- item.url = src;
- item.coverUrl = cover;
- item.type = GalleryEntry.GalleryEntryType.TYPE_VIDEO;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
} else {
String src = elem.attr("src");
- if (src.startsWith("//")) {
- src = "https:" + src;
- }
+ if (src.length() > 0) {
+ if (src.startsWith("//")) {
+ src = "https:" + src;
+ }
- if (imgSrcFirst.equals(src))
- firstFound = true;
+ if (imgSrcFirst.equals(src))
+ firstFound = true;
- Log.d(TAG, "img/fir=" + imgSrcFirst + ";");
- Log.d(TAG, "img/src=" + src + "; ff=" + firstFound);
+ Log.d(TAG, "img/fir=" + imgSrcFirst + ";");
+ Log.d(TAG, "img/src=" + src + "; ff=" + firstFound);
- try {
- Uri checkUri = Uri.parse(src);
+ try {
+ Uri checkUri = Uri.parse(src);
- if (!"data".equals(checkUri.getScheme().toLowerCase())) {
- item.url = src;
- item.type = GalleryEntry.GalleryEntryType.TYPE_IMAGE;
- }
+ if (!"data".equals(checkUri.getScheme().toLowerCase())) {
+ item.url = src;
+ item.type = GalleryEntry.GalleryEntryType.TYPE_IMAGE;
+ }
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
-
}
if ((firstFound || imgSrcFirst.equals("")) && item.url != null) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index 470b0aac..d448117c 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -1161,13 +1161,15 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
if ("video".equals(flavorImage.tagName().toLowerCase())) {
Element source = flavorImage.select("source").first();
- afi.flavorStreamUri = source.attr("src");
- afi.flavorImageUri = flavorImage.attr("poster");
+ if (source != null) {
+ afi.flavorStreamUri = source.attr("src");
+ afi.flavorImageUri = flavorImage.attr("poster");
+ }
} else {
afi.flavorImageUri = flavorImage.attr("src");
- if (afi.flavorImageUri != null && afi.flavorImageUri.startsWith("//")) {
+ if (afi.flavorImageUri.length() > 0 && afi.flavorImageUri.startsWith("//")) {
afi.flavorImageUri = "https:" + afi.flavorImageUri;
}
@@ -1183,13 +1185,13 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
}
}
- if (afi.flavorImageUri != null && ImageCacheService.isUrlCached(m_activity, afi.flavorImageUri)) {
+ if (afi.flavorImageUri != null && afi.flavorImageUri.length() > 0 && ImageCacheService.isUrlCached(m_activity, afi.flavorImageUri)) {
afi.flavorImageUri = "file://" + ImageCacheService.getCacheFileName(m_activity, afi.flavorImageUri);
} else {
afi.flavorImageUri = null;
}
- if (afi.flavorStreamUri != null && ImageCacheService.isUrlCached(m_activity, afi.flavorStreamUri)) {
+ if (afi.flavorStreamUri != null && afi.flavorImageUri.length() > 0 && ImageCacheService.isUrlCached(m_activity, afi.flavorStreamUri)) {
afi.flavorStreamUri = "file://" + ImageCacheService.getCacheFileName(m_activity, afi.flavorStreamUri);
} else {
afi.flavorStreamUri = null;
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java
index dbfe8a72..0a49252b 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java
@@ -118,9 +118,11 @@ public class Article implements Parcelable {
if ("video".equals(flavorImage.tagName().toLowerCase())) {
Element source = flavorImage.select("source").first();
- flavorStreamUri = source.attr("src");
- flavorImageUri = flavorImage.attr("poster");
+ if (source != null) {
+ flavorStreamUri = source.attr("src");
+ flavorImageUri = flavorImage.attr("poster");
+ }
} else if ("iframe".equals(flavorImage.tagName().toLowerCase())) {
String srcEmbed = flavorImage.attr("src");
@@ -139,7 +141,7 @@ public class Article implements Parcelable {
} else {
flavorImageUri = flavorImage.attr("src");
- if (flavorImageUri != null && flavorImageUri.startsWith("//")) {
+ if (flavorImageUri.length() > 0 && flavorImageUri.startsWith("//")) {
flavorImageUri = "https:" + flavorImageUri;
}
@@ -155,7 +157,7 @@ public class Article implements Parcelable {
}
}
- if (flavorImageUri == null) {
+ if (flavorImageUri == null || flavorImageUri.length() == 0) {
// consider attachments
if (attachments != null) {
for (Attachment a : attachments) {