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 8 years ago
parent d66fb0e998
commit 5dc549af0e

@ -1,6 +1,10 @@
Change Log Change Log
--- ---
### 6.0.1 (2018-04-23)
* Fix crash caused by missing Google Task metadata
### 6.0 (2018-04-23) ### 6.0 (2018-04-23)
* Change to [annual subscription](http://tasks.org/subscribe) pricing * Change to [annual subscription](http://tasks.org/subscribe) pricing

@ -19,8 +19,8 @@ android {
defaultConfig { defaultConfig {
testApplicationId "org.tasks.test" testApplicationId "org.tasks.test"
applicationId "org.tasks" applicationId "org.tasks"
versionCode 525 versionCode 526
versionName "6.0" versionName "6.0.1"
targetSdkVersion 27 targetSdkVersion 27
minSdkVersion 15 minSdkVersion 15
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

@ -120,9 +120,15 @@ public class TagFormatter {
CharSequence getTagString(String caldav, String googleTask, List<String> tagUuids) { CharSequence getTagString(String caldav, String googleTask, List<String> tagUuids) {
List<ColoredString> strings = new ArrayList<>(); List<ColoredString> strings = new ArrayList<>();
if (!Strings.isNullOrEmpty(googleTask)) { if (!Strings.isNullOrEmpty(googleTask)) {
strings.add(getGoogleTaskList(googleTask)); ColoredString googleTaskList = getGoogleTaskList(googleTask);
if (googleTaskList != null) {
strings.add(googleTaskList);
}
} else if (!Strings.isNullOrEmpty(caldav)) { } 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()); Iterable<ColoredString> tags = filter(transform(tagUuids, uuidToTag), Predicates.notNull());
@ -180,7 +186,10 @@ public class TagFormatter {
private ColoredString getGoogleTaskList(String remoteId) { private ColoredString getGoogleTaskList(String remoteId) {
ColoredString googleTaskList = googleTaskLists.get(remoteId); ColoredString googleTaskList = googleTaskLists.get(remoteId);
if (googleTaskList == null) { 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); googleTaskLists.put(remoteId, googleTaskList);
} }
return googleTaskList; return googleTaskList;
@ -189,7 +198,10 @@ public class TagFormatter {
private ColoredString getCaldavCalendar(String uuid) { private ColoredString getCaldavCalendar(String uuid) {
ColoredString calendar = caldavCalendars.get(uuid); ColoredString calendar = caldavCalendars.get(uuid);
if (calendar == null) { 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); caldavCalendars.put(uuid, calendar);
} }
return calendar; return calendar;

Loading…
Cancel
Save