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.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.BaseDAO;
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
@NonNull
@ColumnInfo
private String name = "";
- @ColumnInfo(name = "deprecated_uuid")
- private String deprecatedUUID;
+ @NonNull
+ @ColumnInfo()
+ private String uuid;
@NonNull
@ColumnInfo
private String url = "";
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;
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;
if (!(o instanceof Profile))
return false;
Profile p = (Profile) o;
- return id == p.id && Misc.equalStrings(name, p.name) &&
- Misc.equalStrings(deprecatedUUID, p.deprecatedUUID) &&
+ 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 &&
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);
+ BaseDAO.runAsync(this::wipeAllDataSync);
}
}