X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fdb%2FProfile.java;h=4753f311c4d4baf2af3376414a8ac97a5b03cf72;hb=349a5a3aca6dab475eada68d99d59d0dff9378b3;hp=d23303807053b73c7e32847457d9782b771c7fd7;hpb=93545c6fbf1244fbd96ecfc50e1115dbdc25f9ae;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 d2330380..4753f311 100644 --- a/app/src/main/java/net/ktnx/mobileledger/db/Profile.java +++ b/app/src/main/java/net/ktnx/mobileledger/db/Profile.java @@ -17,19 +17,32 @@ package net.ktnx.mobileledger.db; +import android.os.AsyncTask; + import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.room.ColumnInfo; import androidx.room.Entity; 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") 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 url = ""; @@ -63,6 +76,12 @@ public class Profile { private int detectedVersionMajor; @ColumnInfo(name = "detected_version_minor") private int detectedVersionMinor; + public String getDeprecatedUUID() { + return deprecatedUUID; + } + public void setDeprecatedUUID(String deprecatedUUID) { + this.deprecatedUUID = deprecatedUUID; + } public long getId() { return id; } @@ -178,4 +197,46 @@ 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(deprecatedUUID, p.deprecatedUUID) && + 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() + .getOptionDAO(); + optDao.deleteSync(optDao.allForProfileSync(id)); + + AccountDAO accDao = DB.get() + .getAccountDAO(); + accDao.deleteSync(accDao.allForProfileSync(id)); + + TransactionDAO trnDao = DB.get() + .getTransactionDAO(); + trnDao.deleteSync(trnDao.allForProfileSync(id)); + + DescriptionHistoryDAO descDao = DB.get() + .getDescriptionHistoryDAO(); + descDao.sweepSync(); + } + public void wipeAllData() { + AsyncTask.execute(this::wipeAllDataSync); + } + }