fix null pointer exception
closes sk22#539
This commit is contained in:
@@ -11,6 +11,7 @@ import java.net.IDN;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Parcel
|
@Parcel
|
||||||
public class Instance extends BaseModel{
|
public class Instance extends BaseModel{
|
||||||
@@ -147,6 +148,22 @@ public class Instance extends BaseModel{
|
|||||||
return pleroma != null;
|
return pleroma != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasFeature(Feature feature) {
|
||||||
|
Optional<List<String>> pleromaFeatures = Optional.ofNullable(pleroma)
|
||||||
|
.map(p -> p.metadata)
|
||||||
|
.map(m -> m.features);
|
||||||
|
|
||||||
|
return switch (feature) {
|
||||||
|
case BUBBLE_TIMELINE -> pleromaFeatures
|
||||||
|
.map(f -> f.contains("bubble_timeline"))
|
||||||
|
.orElse(false);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Feature {
|
||||||
|
BUBBLE_TIMELINE
|
||||||
|
}
|
||||||
|
|
||||||
@Parcel
|
@Parcel
|
||||||
public static class Rule{
|
public static class Rule{
|
||||||
public String id;
|
public String id;
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ public class TimelineDefinition {
|
|||||||
@Override
|
@Override
|
||||||
public boolean wantsDefault(AccountSession session) {
|
public boolean wantsDefault(AccountSession session) {
|
||||||
return session.getInstance()
|
return session.getInstance()
|
||||||
.map(i -> i.isAkkoma() && i.pleroma.metadata.features.contains("bubble_timeline"))
|
.map(i -> i.hasFeature(Instance.Feature.BUBBLE_TIMELINE))
|
||||||
.orElse(false);
|
.orElse(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user