]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java
store profile API version in the database
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / model / MobileLedgerProfile.java
index e17948f36c8a4d286772af71952f846a5084540c..1f2eac7360acc17e5356fa39387363297cc24d63 100644 (file)
@@ -28,6 +28,7 @@ import androidx.annotation.Nullable;
 import net.ktnx.mobileledger.App;
 import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.async.DbOpQueue;
+import net.ktnx.mobileledger.async.SendTransactionTask;
 import net.ktnx.mobileledger.utils.Globals;
 import net.ktnx.mobileledger.utils.Logger;
 import net.ktnx.mobileledger.utils.MLDB;
@@ -52,6 +53,7 @@ public final class MobileLedgerProfile {
     private int themeId;
     private int orderNo = -1;
     private FutureDates futureDates = FutureDates.None;
+    private SendTransactionTask.API apiVersion = SendTransactionTask.API.auto;
     public MobileLedgerProfile() {
         this.uuid = String.valueOf(UUID.randomUUID());
     }
@@ -70,6 +72,7 @@ public final class MobileLedgerProfile {
         themeId = origin.themeId;
         orderNo = origin.orderNo;
         futureDates = origin.futureDates;
+        apiVersion = origin.apiVersion;
     }
     // loads all profiles into Data.profiles
     // returns the profile with the given UUID
@@ -79,8 +82,8 @@ public final class MobileLedgerProfile {
         SQLiteDatabase db = App.getDatabase();
         try (Cursor cursor = db.rawQuery("SELECT uuid, name, url, use_authentication, auth_user, " +
                                          "auth_password, permit_posting, theme, order_no, " +
-                                         "preferred_accounts_filter, future_dates FROM " +
-                                         "profiles order by order_no", null))
+                                         "preferred_accounts_filter, future_dates, api_version " +
+                                         "FROM " + "profiles order by order_no", null))
         {
             while (cursor.moveToNext()) {
                 MobileLedgerProfile item = new MobileLedgerProfile(cursor.getString(0));
@@ -94,6 +97,7 @@ public final class MobileLedgerProfile {
                 item.orderNo = cursor.getInt(8);
                 item.setPreferredAccountsFilter(cursor.getString(9));
                 item.setFutureDates(cursor.getInt(10));
+                item.setApiVersion(cursor.getInt(11));
                 list.add(item);
                 if (item.getUuid()
                         .equals(currentProfileUUID))
@@ -120,6 +124,15 @@ public final class MobileLedgerProfile {
             db.endTransaction();
         }
     }
+    public SendTransactionTask.API getApiVersion() {
+        return apiVersion;
+    }
+    public void setApiVersion(SendTransactionTask.API apiVersion) {
+        this.apiVersion = apiVersion;
+    }
+    public void setApiVersion(int apiVersion) {
+        this.apiVersion = SendTransactionTask.API.valueOf(apiVersion);
+    }
     public FutureDates getFutureDates() {
         return futureDates;
     }
@@ -199,12 +212,12 @@ public final class MobileLedgerProfile {
 //                    permitPosting ? "TRUE" : "FALSE", authEnabled ? "TRUE" : "FALSE", themeId));
             db.execSQL("REPLACE INTO profiles(uuid, name, permit_posting, url, " +
                        "use_authentication, auth_user, " +
-                       "auth_password, theme, order_no, preferred_accounts_filter, future_dates) " +
-                       "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+                       "auth_password, theme, order_no, preferred_accounts_filter, future_dates, " +
+                       "api_version) " + "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
                     new Object[]{uuid, name, permitPosting, url, authEnabled,
                                  authEnabled ? authUserName : null,
                                  authEnabled ? authPassword : null, themeId, orderNo,
-                                 preferredAccountsFilter, futureDates.toInt()
+                                 preferredAccountsFilter, futureDates.toInt(), apiVersion.toInt()
                     });
             db.setTransactionSuccessful();
         }