X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fdb%2FProfile.java;h=a3ed1806e0a86ddf93dd11f77342bfd04ea614f4;hb=1595c5ff0973f34eca8b9830589b2c982caf26c7;hp=76d0e0590704f8b161774451b82211655e017f7d;hpb=8c92dd30f3703556f7edda057e997283311be873;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/db/Profile.java b/app/src/main/java/net/ktnx/mobileledger/db/Profile.java index 76d0e059..a3ed1806 100644 --- a/app/src/main/java/net/ktnx/mobileledger/db/Profile.java +++ b/app/src/main/java/net/ktnx/mobileledger/db/Profile.java @@ -23,24 +23,32 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.room.ColumnInfo; import androidx.room.Entity; +import androidx.room.Index; import androidx.room.PrimaryKey; import androidx.room.Transaction; import net.ktnx.mobileledger.dao.AccountDAO; -import net.ktnx.mobileledger.dao.DescriptionHistoryDAO; import net.ktnx.mobileledger.dao.OptionDAO; import net.ktnx.mobileledger.dao.TransactionDAO; +import net.ktnx.mobileledger.utils.Misc; -@Entity(tableName = "profiles") +import org.jetbrains.annotations.NotNull; + +import java.util.UUID; + +@Entity(tableName = "profiles", + indices = {@Index(name = "profiles_uuid_idx", unique = true, value = "uuid")}) public class Profile { + public static final long NO_PROFILE_ID = 0; @ColumnInfo @PrimaryKey(autoGenerate = true) private long id; @NonNull @ColumnInfo private String name = ""; - @ColumnInfo(name = "deprecated_uuid") - private String deprecatedUUID; + @NonNull + @ColumnInfo() + private String uuid; @NonNull @ColumnInfo private String url = ""; @@ -74,11 +82,15 @@ public class Profile { private int detectedVersionMajor; @ColumnInfo(name = "detected_version_minor") private int detectedVersionMinor; - public String getDeprecatedUUID() { - return deprecatedUUID; + public Profile() { + uuid = UUID.randomUUID() + .toString(); + } + public String getUuid() { + return uuid; } - public void setDeprecatedUUID(String deprecatedUUID) { - this.deprecatedUUID = deprecatedUUID; + public void setUuid(String uuid) { + this.uuid = uuid; } public long getId() { return id; @@ -160,11 +172,12 @@ public class Profile { public void setShowCommodityByDefault(boolean showCommodityByDefault) { this.showCommodityByDefault = showCommodityByDefault; } + @NotNull public String getDefaultCommodity() { return defaultCommodity; } - public void setDefaultCommodity(String defaultCommodity) { - this.defaultCommodity = defaultCommodity; + public void setDefaultCommodity(@org.jetbrains.annotations.Nullable String defaultCommodity) { + this.defaultCommodity = Misc.nullIsEmpty(defaultCommodity); } public boolean getShowCommentsByDefault() { return showCommentsByDefault; @@ -195,6 +208,25 @@ public class Profile { public String toString() { return getName(); } + @Override + public boolean equals(@Nullable Object o) { + if (!(o instanceof Profile)) + return false; + Profile p = (Profile) o; + return id == p.id && Misc.equalStrings(name, p.name) && Misc.equalStrings(uuid, p.uuid) && + Misc.equalStrings(url, p.url) && useAuthentication == p.useAuthentication && + Misc.equalStrings(authUser, p.authUser) && + Misc.equalStrings(authPassword, p.authPassword) && orderNo == p.orderNo && + permitPosting == p.permitPosting && theme == p.theme && + Misc.equalStrings(preferredAccountsFilter, p.preferredAccountsFilter) && + futureDates == p.futureDates && apiVersion == p.apiVersion && + showCommentsByDefault == p.showCommentsByDefault && + Misc.equalStrings(defaultCommodity, p.defaultCommodity) && + showCommentsByDefault == p.showCommentsByDefault && + detectedVersionPre_1_19 == p.detectedVersionPre_1_19 && + detectedVersionMajor == p.detectedVersionMajor && + detectedVersionMinor == p.detectedVersionMinor; + } @Transaction public void wipeAllDataSync() { OptionDAO optDao = DB.get() @@ -207,11 +239,7 @@ public class Profile { TransactionDAO trnDao = DB.get() .getTransactionDAO(); - trnDao.deleteSync(trnDao.allForProfileSync(id)); - - DescriptionHistoryDAO descDao = DB.get() - .getDescriptionHistoryDAO(); - descDao.sweepSync(); + trnDao.deleteSync(trnDao.getAllForProfileUnorderedSync(id)); } public void wipeAllData() { AsyncTask.execute(this::wipeAllDataSync);