use Enum for verification status of certificates
This commit is contained in:
@@ -8,7 +8,7 @@ import org.sufficientlysecure.keychain.CertsModel;
|
||||
@AutoValue
|
||||
public abstract class Certification implements CertsModel {
|
||||
public static final CertsModel.Factory<Certification> FACTORY =
|
||||
new CertsModel.Factory<>(AutoValue_Certification::new);
|
||||
new CertsModel.Factory<>(AutoValue_Certification::new, CustomColumnAdapters.VERIFICATON_STATUS_ADAPTER);
|
||||
|
||||
public static final SelectVerifyingCertDetailsMapper<CertDetails> CERT_DETAILS_MAPPER =
|
||||
new SelectVerifyingCertDetailsMapper<>(AutoValue_Certification_CertDetails::new);
|
||||
|
||||
@@ -7,10 +7,10 @@ import android.support.annotation.NonNull;
|
||||
|
||||
import com.squareup.sqldelight.ColumnAdapter;
|
||||
import org.sufficientlysecure.keychain.model.AutocryptPeer.GossipOrigin;
|
||||
import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing.VerificationStatus;
|
||||
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
|
||||
|
||||
|
||||
|
||||
public final class CustomColumnAdapters {
|
||||
|
||||
private CustomColumnAdapters() { }
|
||||
@@ -64,4 +64,30 @@ public final class CustomColumnAdapters {
|
||||
return (long) value.getNum();
|
||||
}
|
||||
};
|
||||
|
||||
public static final ColumnAdapter<VerificationStatus,Long> VERIFICATON_STATUS_ADAPTER = new ColumnAdapter<VerificationStatus, Long>() {
|
||||
@NonNull
|
||||
@Override
|
||||
public VerificationStatus decode(Long databaseValue) {
|
||||
if (databaseValue == null) {
|
||||
return VerificationStatus.UNVERIFIED;
|
||||
}
|
||||
switch (databaseValue.intValue()) {
|
||||
case 0: return VerificationStatus.UNVERIFIED;
|
||||
case 1: return VerificationStatus.VERIFIED_SECRET;
|
||||
case 2: return VerificationStatus.VERIFIED_SELF;
|
||||
default: throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long encode(@NonNull VerificationStatus value) {
|
||||
switch (value) {
|
||||
case UNVERIFIED: return 0L;
|
||||
case VERIFIED_SECRET: return 1L;
|
||||
case VERIFIED_SELF: return 2L;
|
||||
default: throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.util.List;
|
||||
import com.google.auto.value.AutoValue;
|
||||
import com.squareup.sqldelight.RowMapper;
|
||||
import org.sufficientlysecure.keychain.KeysModel;
|
||||
import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing.VerificationStatus;
|
||||
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
|
||||
|
||||
|
||||
@@ -15,8 +16,9 @@ import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
|
||||
public abstract class SubKey implements KeysModel {
|
||||
public static final Factory<SubKey> FACTORY =
|
||||
new Factory<>(AutoValue_SubKey::new, CustomColumnAdapters.SECRET_KEY_TYPE_ADAPTER);
|
||||
public static final UnifiedKeyViewMapper<UnifiedKeyInfo> UNIFIED_KEY_INFO_MAPPER =
|
||||
FACTORY.selectUnifiedKeyInfoByMasterKeyIdMapper(AutoValue_SubKey_UnifiedKeyInfo::new);
|
||||
public static final UnifiedKeyViewMapper<UnifiedKeyInfo, Certification> UNIFIED_KEY_INFO_MAPPER =
|
||||
FACTORY.selectAllUnifiedKeyInfoMapper(
|
||||
AutoValue_SubKey_UnifiedKeyInfo::new, Certification.FACTORY);
|
||||
public static Mapper<SubKey> SUBKEY_MAPPER = new Mapper<>(FACTORY);
|
||||
public static RowMapper<SecretKeyType> SKT_MAPPER = FACTORY.selectSecretKeyTypeMapper();
|
||||
|
||||
@@ -38,8 +40,8 @@ public abstract class SubKey implements KeysModel {
|
||||
}
|
||||
|
||||
public boolean is_verified() {
|
||||
Integer verified = verified();
|
||||
return verified != null && verified == 1;
|
||||
VerificationStatus verified = verified();
|
||||
return verified != null && verified == VerificationStatus.VERIFIED_SECRET;
|
||||
}
|
||||
|
||||
public boolean has_duplicate() {
|
||||
|
||||
@@ -3,30 +3,29 @@ package org.sufficientlysecure.keychain.model;
|
||||
|
||||
import com.google.auto.value.AutoValue;
|
||||
import org.sufficientlysecure.keychain.UserPacketsModel;
|
||||
import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing.VerificationStatus;
|
||||
import org.sufficientlysecure.keychain.provider.KeychainContract.Certs;
|
||||
|
||||
|
||||
@AutoValue
|
||||
public abstract class UserPacket implements UserPacketsModel {
|
||||
public static final Factory<UserPacket> FACTORY = new Factory<>(AutoValue_UserPacket::new);
|
||||
public static final SelectUserIdsByMasterKeyIdMapper<UserId> USER_ID_MAPPER =
|
||||
FACTORY.selectUserIdsByMasterKeyIdMapper(AutoValue_UserPacket_UserId::new);
|
||||
public static final SelectUserAttributesByTypeAndMasterKeyIdMapper<UserAttribute> USER_ATTRIBUTE_MAPPER =
|
||||
FACTORY.selectUserAttributesByTypeAndMasterKeyIdMapper(AutoValue_UserPacket_UserAttribute::new);
|
||||
public static final SelectUserIdsByMasterKeyIdMapper<UserId, Certification> USER_ID_MAPPER =
|
||||
FACTORY.selectUserIdsByMasterKeyIdMapper(AutoValue_UserPacket_UserId::new, Certification.FACTORY);
|
||||
public static final SelectUserAttributesByTypeAndMasterKeyIdMapper<UserAttribute, Certification> USER_ATTRIBUTE_MAPPER =
|
||||
FACTORY.selectUserAttributesByTypeAndMasterKeyIdMapper(AutoValue_UserPacket_UserAttribute::new, Certification.FACTORY);
|
||||
|
||||
@AutoValue
|
||||
public static abstract class UserId implements SelectUserIdsByMasterKeyIdModel {
|
||||
public boolean isVerified() {
|
||||
Integer verified = verified();
|
||||
return verified != null && verified == Certs.VERIFIED_SECRET;
|
||||
return verified() == VerificationStatus.VERIFIED_SECRET;
|
||||
}
|
||||
}
|
||||
|
||||
@AutoValue
|
||||
public static abstract class UserAttribute implements SelectUserAttributesByTypeAndMasterKeyIdModel {
|
||||
public boolean isVerified() {
|
||||
Integer verified = verified();
|
||||
return verified != null && verified == Certs.VERIFIED_SECRET;
|
||||
return verified() == VerificationStatus.VERIFIED_SECRET;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user