diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java index ad722a8ba..5c2283530 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/FlexibleKeyItemFactory.java @@ -17,6 +17,7 @@ public class FlexibleKeyItemFactory { private final Resources resources; private Map initialsHeaderMap = new HashMap<>(); private FlexibleKeyHeader myKeysHeader; + private FlexibleKeyItem dummyItem; public FlexibleKeyItemFactory(Resources resources) { this.resources = resources; @@ -30,7 +31,7 @@ public class FlexibleKeyItemFactory { return result; } if (unifiedKeyInfos.isEmpty() || !unifiedKeyInfos.get(0).has_any_secret()) { - result.add(new FlexibleKeyDummyItem(myKeysHeader)); + result.add(getDummyItem()); } for (UnifiedKeyInfo unifiedKeyInfo : unifiedKeyInfos) { FlexibleKeyHeader header = getFlexibleKeyHeader(unifiedKeyInfo); @@ -71,4 +72,11 @@ public class FlexibleKeyItemFactory { } return headerText.substring(0, 1).toUpperCase(); } + + private FlexibleKeyItem getDummyItem() { + if (dummyItem == null) { + dummyItem = new FlexibleKeyDummyItem(myKeysHeader); + } + return dummyItem; + } }