From 5dc549af0e4b85d3ef2d6b97d57cb25e3f412887 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 23 Apr 2018 22:44:51 -0500 Subject: [PATCH] Fix crash when missing Google Task list If user transferred Google Task metadata from a backup file created prior to version 5.3 and did not re-enable Google Task synchronization then the app won't be able to find a Google Task list --- CHANGELOG.md | 4 ++++ app/build.gradle | 4 ++-- .../java/org/tasks/tasklist/TagFormatter.java | 20 +++++++++++++++---- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d05a75562..a3b7f7313 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ Change Log --- +### 6.0.1 (2018-04-23) + +* Fix crash caused by missing Google Task metadata + ### 6.0 (2018-04-23) * Change to [annual subscription](http://tasks.org/subscribe) pricing diff --git a/app/build.gradle b/app/build.gradle index 1ceea621c..700b7a720 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { defaultConfig { testApplicationId "org.tasks.test" applicationId "org.tasks" - versionCode 525 - versionName "6.0" + versionCode 526 + versionName "6.0.1" targetSdkVersion 27 minSdkVersion 15 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/org/tasks/tasklist/TagFormatter.java b/app/src/main/java/org/tasks/tasklist/TagFormatter.java index 565d975e8..ff06cf088 100644 --- a/app/src/main/java/org/tasks/tasklist/TagFormatter.java +++ b/app/src/main/java/org/tasks/tasklist/TagFormatter.java @@ -120,9 +120,15 @@ public class TagFormatter { CharSequence getTagString(String caldav, String googleTask, List tagUuids) { List strings = new ArrayList<>(); if (!Strings.isNullOrEmpty(googleTask)) { - strings.add(getGoogleTaskList(googleTask)); + ColoredString googleTaskList = getGoogleTaskList(googleTask); + if (googleTaskList != null) { + strings.add(googleTaskList); + } } else if (!Strings.isNullOrEmpty(caldav)) { - strings.add(getCaldavCalendar(caldav)); + ColoredString caldavCalendar = getCaldavCalendar(caldav); + if (caldavCalendar != null) { + strings.add(caldavCalendar); + } } Iterable tags = filter(transform(tagUuids, uuidToTag), Predicates.notNull()); @@ -180,7 +186,10 @@ public class TagFormatter { private ColoredString getGoogleTaskList(String remoteId) { ColoredString googleTaskList = googleTaskLists.get(remoteId); if (googleTaskList == null) { - googleTaskList = new ColoredString(googleTaskListDao.getByRemoteId(remoteId)); + GoogleTaskList byRemoteId = googleTaskListDao.getByRemoteId(remoteId); + if (byRemoteId != null) { + googleTaskList = new ColoredString(byRemoteId); + } googleTaskLists.put(remoteId, googleTaskList); } return googleTaskList; @@ -189,7 +198,10 @@ public class TagFormatter { private ColoredString getCaldavCalendar(String uuid) { ColoredString calendar = caldavCalendars.get(uuid); if (calendar == null) { - calendar = new ColoredString(caldavDao.getCalendar(uuid)); + CaldavCalendar byUuid = caldavDao.getCalendar(uuid); + if (byUuid != null) { + calendar = new ColoredString(byUuid); + } caldavCalendars.put(uuid, calendar); } return calendar;