diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2024-11-24 13:09:08 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2024-11-24 13:09:08 +0300 |
| commit | 5741ae95834e7370997598db264f75d26badd1d9 (patch) | |
| tree | ce939b7c569e9f9cc9751f6815574e43818ea450 | |
| parent | 47a5f1b9263002c04b2544e817a7d3250ad0a17c (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
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) { |