Explicitly foreign key reference account from other tables

This commit is contained in:
Paul Schaub 2020-07-13 15:54:36 +02:00
parent c14cc304b1
commit aebbe29836
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
7 changed files with 29 additions and 4 deletions

View File

@ -35,7 +35,10 @@ import org.mercury_im.messenger.android.util.ColorUtil;
import org.mercury_im.messenger.core.viewmodel.accounts.FingerprintViewItem;
import org.pgpainless.key.OpenPgpV4Fingerprint;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import butterknife.BindView;
import butterknife.ButterKnife;
@ -45,6 +48,8 @@ import io.reactivex.schedulers.Schedulers;
public class ContactDetailFragment extends Fragment {
private static final Logger LOGGER = Logger.getLogger(ContactDetailFragment.class.getName());
@BindView(R.id.contact_avatar)
ImageView contactAvatar;
@ -184,6 +189,7 @@ public class ContactDetailFragment extends Fragment {
}
private void setFingerprints(List<FingerprintViewItem> fingerprints) {
LOGGER.log(Level.INFO, "Display fingerprints: " + Arrays.asList(fingerprints.toArray()));
fingerprintsLayout.setVisibility(fingerprints.isEmpty() ? View.GONE : View.VISIBLE);
fingerprintsAdapter.setItems(fingerprints);
}

View File

@ -3,6 +3,7 @@ package org.mercury_im.messenger.data.model;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
import org.mercury_im.messenger.entity.Account;
import org.pgpainless.key.OpenPgpV4Fingerprint;
import java.util.Date;
@ -11,7 +12,9 @@ import java.util.UUID;
import io.requery.Column;
import io.requery.Convert;
import io.requery.Entity;
import io.requery.ForeignKey;
import io.requery.Key;
import io.requery.ReferentialAction;
import io.requery.Table;
import io.requery.converter.UUIDConverter;
@ -21,6 +24,7 @@ public class AbstractAnnouncedOpenPgpContactKey {
@Key
@Convert(UUIDConverter.class)
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
UUID accountId;
@Key

View File

@ -3,6 +3,7 @@ package org.mercury_im.messenger.data.model;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
import org.mercury_im.messenger.entity.Account;
import org.pgpainless.key.OpenPgpV4Fingerprint;
import java.util.Date;
@ -11,7 +12,9 @@ import java.util.UUID;
import io.requery.Column;
import io.requery.Convert;
import io.requery.Entity;
import io.requery.ForeignKey;
import io.requery.Key;
import io.requery.ReferentialAction;
import io.requery.Table;
import io.requery.converter.UUIDConverter;
@ -21,6 +24,7 @@ public class AbstractOpenPgpKeyFetchDate {
@Key
@Convert(UUIDConverter.class)
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
UUID accountId;
@Key

View File

@ -5,13 +5,16 @@ import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
import org.mercury_im.messenger.data.converter.OpenPgpTrustConverter;
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
import org.mercury_im.messenger.entity.Account;
import org.pgpainless.key.OpenPgpV4Fingerprint;
import java.util.UUID;
import io.requery.Convert;
import io.requery.Entity;
import io.requery.ForeignKey;
import io.requery.Key;
import io.requery.ReferentialAction;
import io.requery.Table;
import io.requery.converter.UUIDConverter;
@ -21,6 +24,7 @@ public class AbstractOpenPgpKeyTrust {
@Key
@Convert(UUIDConverter.class)
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
UUID accountId;
@Key

View File

@ -2,13 +2,16 @@ package org.mercury_im.messenger.data.model;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
import org.mercury_im.messenger.entity.Account;
import java.util.UUID;
import io.requery.Column;
import io.requery.Convert;
import io.requery.Entity;
import io.requery.ForeignKey;
import io.requery.Key;
import io.requery.ReferentialAction;
import io.requery.Table;
@Entity
@ -17,6 +20,7 @@ public class AbstractOpenPgpPublicKeyRing {
@Key
@Column(name = "account_id", nullable = false)
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
UUID accountId;
@Key

View File

@ -2,13 +2,16 @@ package org.mercury_im.messenger.data.model;
import org.jxmpp.jid.EntityBareJid;
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
import org.mercury_im.messenger.entity.Account;
import java.util.UUID;
import io.requery.Column;
import io.requery.Convert;
import io.requery.Entity;
import io.requery.ForeignKey;
import io.requery.Key;
import io.requery.ReferentialAction;
import io.requery.Table;
@Entity
@ -17,6 +20,7 @@ public class AbstractOpenPgpSecretKeyRing {
@Key
@Column(name = "account_id", nullable = false)
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
UUID accountId;
@Key

View File

@ -119,10 +119,10 @@ public class LoginViewModel implements MercuryViewModel {
Account account = createAccountEntity();
MercuryConnection connection = connectionManager.createConnection(account);
addDisposable(connection.connect()
addDisposable(accountRepository.upsertAccount(account).ignoreElement()
.andThen(connection.connect())
.andThen(connection.login())
.andThen(connectionManager.registerConnection(connection))
.andThen(accountRepository.insertAccount(account))
.subscribeOn(schedulers.getNewThread())
.observeOn(schedulers.getUiScheduler())
.subscribe(
@ -140,8 +140,7 @@ public class LoginViewModel implements MercuryViewModel {
return account;
}
private void onLoginSuccessful(Account account) {
LOGGER.log(Level.FINER, "Successfully added new account " + account);
private void onLoginSuccessful() {
isLoginSuccessful.onNext(true);
}