From 79ede18259ee55d589f663d0b02243d5b70d42f0 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Fri, 23 Jun 2017 16:11:30 +1000 Subject: [PATCH] Fix crash due to unknown suggested version. There may be a bigger problem around suggested versions being null at all, but that is getting looked at in a different feature set (i.e. multi signature support) and will come in time. This fixes the immediate problem some people were having and sending crash reports for in 0.104. STACK_TRACE=java.lang.NullPointerException: Attempt to read from field 'java.lang.String org.fdroid.fdroid.data.Apk.versionName' on a null object reference at org.fdroid.fdroid.views.AppDetailsRecyclerViewAdapter$HeaderViewHolder.bindModel(AppDetailsRecyclerViewAdapter.java:425) at org.fdroid.fdroid.views.AppDetailsRecyclerViewAdapter.onBindViewHolder(AppDetailsRecyclerViewAdapter.java:244) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6310) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6343) ... Introduced in 97fd3f0. --- .../fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java index d4061d835..4ed6e69a4 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java @@ -414,7 +414,8 @@ public class AppDetailsRecyclerViewAdapter lastUpdateView.setVisibility(View.GONE); } - if (TextUtils.isEmpty(app.whatsNew)) { + Apk suggestedApk = getSuggestedApk(); + if (suggestedApk == null || TextUtils.isEmpty(app.whatsNew)) { whatsNewView.setVisibility(View.GONE); } else { //noinspection deprecation Ignore deprecation because the suggested way is only available in API 24. @@ -422,7 +423,7 @@ public class AppDetailsRecyclerViewAdapter StringBuilder sbWhatsNew = new StringBuilder(); sbWhatsNew.append(whatsNewView.getContext().getString(R.string.details_new_in_version, - getSuggestedApk().versionName).toUpperCase(locale)); + suggestedApk.versionName).toUpperCase(locale)); sbWhatsNew.append("\n\n"); sbWhatsNew.append(app.whatsNew); whatsNewView.setText(sbWhatsNew);