mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-09-27 18:29:34 +02:00
Explicitly foreign key reference account from other tables
This commit is contained in:
parent
c14cc304b1
commit
aebbe29836
|
@ -35,7 +35,10 @@ import org.mercury_im.messenger.android.util.ColorUtil;
|
||||||
import org.mercury_im.messenger.core.viewmodel.accounts.FingerprintViewItem;
|
import org.mercury_im.messenger.core.viewmodel.accounts.FingerprintViewItem;
|
||||||
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
@ -45,6 +48,8 @@ import io.reactivex.schedulers.Schedulers;
|
||||||
|
|
||||||
public class ContactDetailFragment extends Fragment {
|
public class ContactDetailFragment extends Fragment {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = Logger.getLogger(ContactDetailFragment.class.getName());
|
||||||
|
|
||||||
@BindView(R.id.contact_avatar)
|
@BindView(R.id.contact_avatar)
|
||||||
ImageView contactAvatar;
|
ImageView contactAvatar;
|
||||||
|
|
||||||
|
@ -184,6 +189,7 @@ public class ContactDetailFragment extends Fragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setFingerprints(List<FingerprintViewItem> fingerprints) {
|
private void setFingerprints(List<FingerprintViewItem> fingerprints) {
|
||||||
|
LOGGER.log(Level.INFO, "Display fingerprints: " + Arrays.asList(fingerprints.toArray()));
|
||||||
fingerprintsLayout.setVisibility(fingerprints.isEmpty() ? View.GONE : View.VISIBLE);
|
fingerprintsLayout.setVisibility(fingerprints.isEmpty() ? View.GONE : View.VISIBLE);
|
||||||
fingerprintsAdapter.setItems(fingerprints);
|
fingerprintsAdapter.setItems(fingerprints);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.mercury_im.messenger.data.model;
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
||||||
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
|
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
|
||||||
|
import org.mercury_im.messenger.entity.Account;
|
||||||
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -11,7 +12,9 @@ import java.util.UUID;
|
||||||
import io.requery.Column;
|
import io.requery.Column;
|
||||||
import io.requery.Convert;
|
import io.requery.Convert;
|
||||||
import io.requery.Entity;
|
import io.requery.Entity;
|
||||||
|
import io.requery.ForeignKey;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
|
import io.requery.ReferentialAction;
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
import io.requery.converter.UUIDConverter;
|
import io.requery.converter.UUIDConverter;
|
||||||
|
|
||||||
|
@ -21,6 +24,7 @@ public class AbstractAnnouncedOpenPgpContactKey {
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
@Convert(UUIDConverter.class)
|
@Convert(UUIDConverter.class)
|
||||||
|
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
|
||||||
UUID accountId;
|
UUID accountId;
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.mercury_im.messenger.data.model;
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
||||||
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
|
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
|
||||||
|
import org.mercury_im.messenger.entity.Account;
|
||||||
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -11,7 +12,9 @@ import java.util.UUID;
|
||||||
import io.requery.Column;
|
import io.requery.Column;
|
||||||
import io.requery.Convert;
|
import io.requery.Convert;
|
||||||
import io.requery.Entity;
|
import io.requery.Entity;
|
||||||
|
import io.requery.ForeignKey;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
|
import io.requery.ReferentialAction;
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
import io.requery.converter.UUIDConverter;
|
import io.requery.converter.UUIDConverter;
|
||||||
|
|
||||||
|
@ -21,6 +24,7 @@ public class AbstractOpenPgpKeyFetchDate {
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
@Convert(UUIDConverter.class)
|
@Convert(UUIDConverter.class)
|
||||||
|
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
|
||||||
UUID accountId;
|
UUID accountId;
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
|
|
|
@ -5,13 +5,16 @@ import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
||||||
import org.mercury_im.messenger.data.converter.OpenPgpTrustConverter;
|
import org.mercury_im.messenger.data.converter.OpenPgpTrustConverter;
|
||||||
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
|
import org.mercury_im.messenger.data.converter.OpenPgpV4FingerprintConverter;
|
||||||
|
import org.mercury_im.messenger.entity.Account;
|
||||||
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import io.requery.Convert;
|
import io.requery.Convert;
|
||||||
import io.requery.Entity;
|
import io.requery.Entity;
|
||||||
|
import io.requery.ForeignKey;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
|
import io.requery.ReferentialAction;
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
import io.requery.converter.UUIDConverter;
|
import io.requery.converter.UUIDConverter;
|
||||||
|
|
||||||
|
@ -21,6 +24,7 @@ public class AbstractOpenPgpKeyTrust {
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
@Convert(UUIDConverter.class)
|
@Convert(UUIDConverter.class)
|
||||||
|
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
|
||||||
UUID accountId;
|
UUID accountId;
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
|
|
|
@ -2,13 +2,16 @@ package org.mercury_im.messenger.data.model;
|
||||||
|
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
||||||
|
import org.mercury_im.messenger.entity.Account;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import io.requery.Column;
|
import io.requery.Column;
|
||||||
import io.requery.Convert;
|
import io.requery.Convert;
|
||||||
import io.requery.Entity;
|
import io.requery.Entity;
|
||||||
|
import io.requery.ForeignKey;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
|
import io.requery.ReferentialAction;
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
@ -17,6 +20,7 @@ public class AbstractOpenPgpPublicKeyRing {
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
@Column(name = "account_id", nullable = false)
|
@Column(name = "account_id", nullable = false)
|
||||||
|
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
|
||||||
UUID accountId;
|
UUID accountId;
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
|
|
|
@ -2,13 +2,16 @@ package org.mercury_im.messenger.data.model;
|
||||||
|
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
import org.mercury_im.messenger.data.converter.EntityBareJidConverter;
|
||||||
|
import org.mercury_im.messenger.entity.Account;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import io.requery.Column;
|
import io.requery.Column;
|
||||||
import io.requery.Convert;
|
import io.requery.Convert;
|
||||||
import io.requery.Entity;
|
import io.requery.Entity;
|
||||||
|
import io.requery.ForeignKey;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
|
import io.requery.ReferentialAction;
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
@ -17,6 +20,7 @@ public class AbstractOpenPgpSecretKeyRing {
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
@Column(name = "account_id", nullable = false)
|
@Column(name = "account_id", nullable = false)
|
||||||
|
@ForeignKey(references = AbstractAccountModel.class, delete = ReferentialAction.CASCADE)
|
||||||
UUID accountId;
|
UUID accountId;
|
||||||
|
|
||||||
@Key
|
@Key
|
||||||
|
|
|
@ -119,10 +119,10 @@ public class LoginViewModel implements MercuryViewModel {
|
||||||
Account account = createAccountEntity();
|
Account account = createAccountEntity();
|
||||||
|
|
||||||
MercuryConnection connection = connectionManager.createConnection(account);
|
MercuryConnection connection = connectionManager.createConnection(account);
|
||||||
addDisposable(connection.connect()
|
addDisposable(accountRepository.upsertAccount(account).ignoreElement()
|
||||||
|
.andThen(connection.connect())
|
||||||
.andThen(connection.login())
|
.andThen(connection.login())
|
||||||
.andThen(connectionManager.registerConnection(connection))
|
.andThen(connectionManager.registerConnection(connection))
|
||||||
.andThen(accountRepository.insertAccount(account))
|
|
||||||
.subscribeOn(schedulers.getNewThread())
|
.subscribeOn(schedulers.getNewThread())
|
||||||
.observeOn(schedulers.getUiScheduler())
|
.observeOn(schedulers.getUiScheduler())
|
||||||
.subscribe(
|
.subscribe(
|
||||||
|
@ -140,8 +140,7 @@ public class LoginViewModel implements MercuryViewModel {
|
||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onLoginSuccessful(Account account) {
|
private void onLoginSuccessful() {
|
||||||
LOGGER.log(Level.FINER, "Successfully added new account " + account);
|
|
||||||
isLoginSuccessful.onNext(true);
|
isLoginSuccessful.onNext(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue