fix NPE in switchMap LiveData instances

This commit is contained in:
Vincent Breitmoser
2018-07-02 15:39:05 +02:00
parent 70be2c8ba1
commit 5e3e38a3cc
3 changed files with 7 additions and 7 deletions

View File

@@ -137,7 +137,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements OnPageChangeList
if (subKeyLiveData == null) { if (subKeyLiveData == null) {
KeyRepository keyRepository = KeyRepository.create(context); KeyRepository keyRepository = KeyRepository.create(context);
subKeyLiveData = Transformations.switchMap(getUnifiedKeyInfoLiveData(context), subKeyLiveData = Transformations.switchMap(getUnifiedKeyInfoLiveData(context),
(unifiedKeyInfo) -> new GenericLiveData<>(context, (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(context,
() -> keyRepository.getSubKeysByMasterKeyId(unifiedKeyInfo.master_key_id()))); () -> keyRepository.getSubKeysByMasterKeyId(unifiedKeyInfo.master_key_id())));
} }
return subKeyLiveData; return subKeyLiveData;
@@ -147,7 +147,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements OnPageChangeList
if (userIdsLiveData == null) { if (userIdsLiveData == null) {
KeyRepository keyRepository = KeyRepository.create(context); KeyRepository keyRepository = KeyRepository.create(context);
userIdsLiveData = Transformations.switchMap(getUnifiedKeyInfoLiveData(context), userIdsLiveData = Transformations.switchMap(getUnifiedKeyInfoLiveData(context),
(unifiedKeyInfo) -> new GenericLiveData<>(context, (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(context,
() -> keyRepository.getUserIds(unifiedKeyInfo.master_key_id()))); () -> keyRepository.getUserIds(unifiedKeyInfo.master_key_id())));
} }
return userIdsLiveData; return userIdsLiveData;

View File

@@ -292,7 +292,7 @@ public class ViewKeyAdvShareFragment extends Fragment {
unifiedKeyInfoLiveData.observe(this, this::onLoadUnifiedKeyInfo); unifiedKeyInfoLiveData.observe(this, this::onLoadUnifiedKeyInfo);
LiveData<Bitmap> qrCodeLiveData = Transformations.switchMap(unifiedKeyInfoLiveData, LiveData<Bitmap> qrCodeLiveData = Transformations.switchMap(unifiedKeyInfoLiveData,
(unifiedKeyInfo) -> new GenericLiveData<>(getContext(), (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(getContext(),
() -> { () -> {
String fingerprintHex = KeyFormattingUtils.convertFingerprintToHex(unifiedKeyInfo.fingerprint()); String fingerprintHex = KeyFormattingUtils.convertFingerprintToHex(unifiedKeyInfo.fingerprint());
Uri uri = new Uri.Builder().scheme(Constants.FINGERPRINT_SCHEME).opaquePart(fingerprintHex).build(); Uri uri = new Uri.Builder().scheme(Constants.FINGERPRINT_SCHEME).opaquePart(fingerprintHex).build();

View File

@@ -31,7 +31,7 @@ public class KeyFragmentViewModel extends ViewModel {
if (identityInfo == null) { if (identityInfo == null) {
IdentityDao identityDao = IdentityDao.getInstance(context); IdentityDao identityDao = IdentityDao.getInstance(context);
identityInfo = Transformations.switchMap(unifiedKeyInfoLiveData, identityInfo = Transformations.switchMap(unifiedKeyInfoLiveData,
(unifiedKeyInfo) -> new GenericLiveData<>(context, (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(context,
() -> identityDao.getIdentityInfos(unifiedKeyInfo.master_key_id(), showLinkedIds))); () -> identityDao.getIdentityInfos(unifiedKeyInfo.master_key_id(), showLinkedIds)));
} }
return identityInfo; return identityInfo;
@@ -41,7 +41,7 @@ public class KeyFragmentViewModel extends ViewModel {
if (subkeyStatus == null) { if (subkeyStatus == null) {
SubkeyStatusDao subkeyStatusDao = SubkeyStatusDao.getInstance(context); SubkeyStatusDao subkeyStatusDao = SubkeyStatusDao.getInstance(context);
subkeyStatus = Transformations.switchMap(unifiedKeyInfoLiveData, subkeyStatus = Transformations.switchMap(unifiedKeyInfoLiveData,
(unifiedKeyInfo) -> new GenericLiveData<>(context, (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(context,
() -> subkeyStatusDao.getSubkeyStatus(unifiedKeyInfo.master_key_id()))); () -> subkeyStatusDao.getSubkeyStatus(unifiedKeyInfo.master_key_id())));
} }
return subkeyStatus; return subkeyStatus;
@@ -51,7 +51,7 @@ public class KeyFragmentViewModel extends ViewModel {
if (systemContactInfo == null) { if (systemContactInfo == null) {
SystemContactDao systemContactDao = SystemContactDao.getInstance(context); SystemContactDao systemContactDao = SystemContactDao.getInstance(context);
systemContactInfo = Transformations.switchMap(unifiedKeyInfoLiveData, systemContactInfo = Transformations.switchMap(unifiedKeyInfoLiveData,
(unifiedKeyInfo) -> new GenericLiveData<>(context, (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(context,
() -> systemContactDao.getSystemContactInfo(unifiedKeyInfo.master_key_id(), () -> systemContactDao.getSystemContactInfo(unifiedKeyInfo.master_key_id(),
unifiedKeyInfo.has_any_secret()))); unifiedKeyInfo.has_any_secret())));
} }
@@ -62,7 +62,7 @@ public class KeyFragmentViewModel extends ViewModel {
if (keyserverStatus == null) { if (keyserverStatus == null) {
KeyMetadataDao keyMetadataDao = KeyMetadataDao.create(context); KeyMetadataDao keyMetadataDao = KeyMetadataDao.create(context);
keyserverStatus = Transformations.switchMap(unifiedKeyInfoLiveData, keyserverStatus = Transformations.switchMap(unifiedKeyInfoLiveData,
(unifiedKeyInfo) -> new GenericLiveData<>(context, (unifiedKeyInfo) -> unifiedKeyInfo == null ? null : new GenericLiveData<>(context,
() -> keyMetadataDao.getKeyMetadata(unifiedKeyInfo.master_key_id()))); () -> keyMetadataDao.getKeyMetadata(unifiedKeyInfo.master_key_id())));
} }
return keyserverStatus; return keyserverStatus;