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;
+
+import org.jetbrains.annotations.NotNull;
@Entity(tableName = "profiles")
public class Profile {
+ public static final long NO_PROFILE_ID = 0;
@ColumnInfo
@PrimaryKey(autoGenerate = true)
private long id;
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;
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()
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);