]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/db/Profile.java
move async DB stuff away of AsyncTask
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / db / Profile.java
index 030ae1ba51d5215d1d4d5b04b6592317ba64e05c..35230e2f99340c7223e963534ecec56ecbb8f630 100644 (file)
 
 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.BaseDAO;
 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")
+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
@@ -42,8 +45,9 @@ public class Profile {
     @NonNull
     @ColumnInfo
     private String name = "";
-    @ColumnInfo(name = "deprecated_uuid")
-    private String deprecatedUUID;
+    @NonNull
+    @ColumnInfo()
+    private String uuid;
     @NonNull
     @ColumnInfo
     private String url = "";
@@ -77,11 +81,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;
@@ -204,8 +212,7 @@ public class Profile {
         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 &&
@@ -234,7 +241,7 @@ public class Profile {
         trnDao.deleteSync(trnDao.getAllForProfileUnorderedSync(id));
     }
     public void wipeAllData() {
-        AsyncTask.execute(this::wipeAllDataSync);
+        BaseDAO.runAsync(this::wipeAllDataSync);
     }
 
 }