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
pull/618/head^2 6.0.1
Alex Baker 6 years ago
parent d66fb0e998
commit 5dc549af0e

@ -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

@ -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"

@ -120,9 +120,15 @@ public class TagFormatter {
CharSequence getTagString(String caldav, String googleTask, List<String> tagUuids) {
List<ColoredString> 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<ColoredString> 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;

Loading…
Cancel
Save