Fix crashes on missing filter

gtask_related_email
Alex Baker 6 years ago
parent 304e7153ae
commit 0b85bfdb8f

@ -1,5 +1,7 @@
package org.tasks.ui; package org.tasks.ui;
import static com.google.common.collect.Iterables.filter;
import static com.google.common.collect.Iterables.removeIf;
import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.transform; import static com.google.common.collect.Lists.transform;
import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread; import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread;
@ -8,8 +10,10 @@ import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import androidx.annotation.LayoutRes; import androidx.annotation.LayoutRes;
import androidx.annotation.Nullable;
import androidx.core.content.res.ResourcesCompat; import androidx.core.content.res.ResourcesCompat;
import com.google.android.material.chip.Chip; import com.google.android.material.chip.Chip;
import com.google.common.base.Predicates;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.todoroo.astrid.api.CaldavFilter; import com.todoroo.astrid.api.CaldavFilter;
@ -132,12 +136,12 @@ public class ChipProvider {
} }
String tags = task.getTagsString(); String tags = task.getTagsString();
if (!Strings.isNullOrEmpty(tags)) { if (!Strings.isNullOrEmpty(tags)) {
chips.addAll( Iterable<TagFilter> tagFilters =
transform( filter(transform(newArrayList(tags.split(",")), tagDatas::get), Predicates.notNull());
orderByName.sortedCopy(transform(newArrayList(tags.split(",")), tagDatas::get)), chips.addAll(transform(orderByName.sortedCopy(tagFilters), tag -> newTagChip(activity, tag)));
tag -> newTagChip(activity, tag)));
} }
removeIf(chips, Predicates.isNull());
return chips; return chips;
} }
@ -156,7 +160,10 @@ public class ChipProvider {
return chip; return chip;
} }
private Chip newTagChip(Activity activity, Filter filter) { private @Nullable Chip newTagChip(Activity activity, Filter filter) {
if (filter == null) {
return null;
}
Chip chip = newChip(activity, R.layout.chip_tag, filter); Chip chip = newChip(activity, R.layout.chip_tag, filter);
apply(chip, filter.listingTitle, filter.tint); apply(chip, filter.listingTitle, filter.tint);
return chip; return chip;

Loading…
Cancel
Save