diff --git a/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt b/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt index 6ba244f..ec83ff9 100644 --- a/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt +++ b/app/src/main/java/net/helcel/cowspent/android/main/BillsListViewActivity.kt @@ -754,7 +754,7 @@ class BillsListViewActivity : } if (db.cowspentServerSyncHelper.isSyncPossible) { - viewModel.isRefreshing = manual + viewModel.isRefreshing = true val selectedProjectId = preferences.getLong("selected_project", 0) lifecycleScope.launch { @@ -771,10 +771,9 @@ class BillsListViewActivity : viewModel.isRefreshing = false } - // Sync other projects (they will be queued) - remoteProjects.filter { it.id != selectedProjectId }.forEach { - db.cowspentServerSyncHelper.scheduleSync(false, it.id, manual) - } +// remoteProjects.filter { it.id != selectedProjectId }.forEach { +// db.cowspentServerSyncHelper.scheduleSync(false, it.id, manual) +// } } else { viewModel.isRefreshing = false } diff --git a/app/src/main/java/net/helcel/cowspent/persistence/CowspentSQLiteOpenHelper.kt b/app/src/main/java/net/helcel/cowspent/persistence/CowspentSQLiteOpenHelper.kt index d235104..673dff9 100644 --- a/app/src/main/java/net/helcel/cowspent/persistence/CowspentSQLiteOpenHelper.kt +++ b/app/src/main/java/net/helcel/cowspent/persistence/CowspentSQLiteOpenHelper.kt @@ -1244,17 +1244,18 @@ class CowspentSQLiteOpenHelper private constructor(val context: Context) : @Volatile private var instance: CowspentSQLiteOpenHelper? = null - @VisibleForTesting - var overrideInstance: CowspentSQLiteOpenHelper? = null - @JvmStatic fun getInstance(context: Context): CowspentSQLiteOpenHelper { - overrideInstance?.let { return it } return instance ?: synchronized(this) { instance ?: CowspentSQLiteOpenHelper(context.applicationContext).also { instance = it } } } + @VisibleForTesting + fun setInstance(helper: CowspentSQLiteOpenHelper?) { + instance = helper + } + @VisibleForTesting fun resetInstance() { instance = null diff --git a/app/src/main/java/net/helcel/cowspent/persistence/CowspentServerSyncHelper.kt b/app/src/main/java/net/helcel/cowspent/persistence/CowspentServerSyncHelper.kt index 5e0f39c..d42235e 100644 --- a/app/src/main/java/net/helcel/cowspent/persistence/CowspentServerSyncHelper.kt +++ b/app/src/main/java/net/helcel/cowspent/persistence/CowspentServerSyncHelper.kt @@ -1028,8 +1028,14 @@ class CowspentServerSyncHelper private constructor(private val dbHelper: Cowspen } var status = LoginStatus.OK try { + // Pass current project values if the new ones are null to ensure a complete project object is sent to the server val response = client!!.editRemoteProject( - project!!, newName, newEmail, newPassword, newMainCurrencyName, newArchivedTs + project!!, + newName ?: project.name, + newEmail ?: project.email, + newPassword, + newMainCurrencyName ?: project.currencyName, + newArchivedTs ) if (BillsListViewActivity.DEBUG) { Log.i(TAG, "RESPONSE edit remote project : ${response.stringContent}") diff --git a/app/src/main/java/net/helcel/cowspent/util/VersatileProjectSyncClient.kt b/app/src/main/java/net/helcel/cowspent/util/VersatileProjectSyncClient.kt index 187d89d..fff592e 100644 --- a/app/src/main/java/net/helcel/cowspent/util/VersatileProjectSyncClient.kt +++ b/app/src/main/java/net/helcel/cowspent/util/VersatileProjectSyncClient.kt @@ -163,7 +163,7 @@ class VersatileProjectSyncClient( paramValues.add(newEmail) } if (newMainCurrencyName != null) { - paramKeys.add("currencyName") + paramKeys.add("currencyname") paramValues.add(newMainCurrencyName) } if (newArchivedTs != null) {