]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java
debug message when profile data is wiped
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / model / MobileLedgerProfile.java
index d0283cbfebaacd720a84ca301184f76f3864b3b4..873b0d68ae50b4dbf9b6a13f8c04359c871ac55d 100644 (file)
@@ -22,12 +22,13 @@ import android.database.sqlite.SQLiteDatabase;
 
 import net.ktnx.mobileledger.async.DbOpQueue;
 import net.ktnx.mobileledger.utils.Globals;
-import net.ktnx.mobileledger.utils.LockHolder;
+import net.ktnx.mobileledger.utils.Logger;
 import net.ktnx.mobileledger.utils.MLDB;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.UUID;
 
 import androidx.annotation.NonNull;
@@ -52,11 +53,23 @@ public final class MobileLedgerProfile {
     public MobileLedgerProfile(String uuid) {
         this.uuid = uuid;
     }
+    public MobileLedgerProfile(MobileLedgerProfile origin) {
+        uuid = origin.uuid;
+        name = origin.name;
+        permitPosting = origin.permitPosting;
+        preferredAccountsFilter = origin.preferredAccountsFilter;
+        url = origin.url;
+        authEnabled = origin.authEnabled;
+        authUserName = origin.authUserName;
+        authPassword = origin.authPassword;
+        themeId = origin.themeId;
+        orderNo = origin.orderNo;
+    }
     // loads all profiles into Data.profiles
     // returns the profile with the given UUID
     public static MobileLedgerProfile loadAllFromDB(String currentProfileUUID) {
         MobileLedgerProfile result = null;
-        List<MobileLedgerProfile> list = new ArrayList<>();
+        ArrayList<MobileLedgerProfile> list = new ArrayList<>();
         SQLiteDatabase db = MLDB.getDatabase();
         try (Cursor cursor = db.rawQuery("SELECT uuid, name, url, use_authentication, auth_user, " +
                                          "auth_password, permit_posting, theme, order_no, " +
@@ -78,7 +91,7 @@ public final class MobileLedgerProfile {
                 if (item.getUuid().equals(currentProfileUUID)) result = item;
             }
         }
-        Data.profiles.setList(list);
+        Data.profiles.setValue(list);
         return result;
     }
     public static void storeProfilesOrder() {
@@ -86,14 +99,11 @@ public final class MobileLedgerProfile {
         db.beginTransaction();
         try {
             int orderNo = 0;
-            try (LockHolder lh = Data.profiles.lockForReading()) {
-                for (int i = 0; i < Data.profiles.size(); i++) {
-                    MobileLedgerProfile p = Data.profiles.get(i);
-                    db.execSQL("update profiles set order_no=? where uuid=?",
-                            new Object[]{orderNo, p.getUuid()});
-                    p.orderNo = orderNo;
-                    orderNo++;
-                }
+            for (MobileLedgerProfile p : Data.profiles.getValue()) {
+                db.execSQL("update profiles set order_no=? where uuid=?",
+                        new Object[]{orderNo, p.getUuid()});
+                p.orderNo = orderNo;
+                orderNo++;
             }
             db.setTransactionSuccessful();
         }
@@ -225,7 +235,7 @@ public final class MobileLedgerProfile {
                                  item.getCurrency()
                     });
         }
-        debug("profile", String.format("Transaction %d stored", tr.getId()));
+//        debug("profile", String.format("Transaction %d stored", tr.getId()));
     }
     public String getOption(String name, String default_value) {
         SQLiteDatabase db = MLDB.getDatabase();
@@ -438,6 +448,7 @@ public final class MobileLedgerProfile {
             db.execSQL("delete from transactions where profile=?", pUuid);
             db.execSQL("delete from transaction_accounts where profile=?", pUuid);
             db.setTransactionSuccessful();
+            Logger.debug("wipe", String.format(Locale.ENGLISH, "Profile %s wiped out", pUuid[0]));
         }
         finally {
             db.endTransaction();