Skip to content
Snippets Groups Projects
Unverified Commit 0834a6f1 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

wip: progress

parent c049be70
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,26 @@ ...@@ -25,7 +25,26 @@
package de.chaosdorf.meteroid package de.chaosdorf.meteroid
import android.app.Application import android.app.Application
import coil.ImageLoader
import coil.ImageLoaderFactory
import coil.disk.DiskCache
import coil.memory.MemoryCache
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp @HiltAndroidApp
class MeteroidApplication : Application() class MeteroidApplication : Application(), ImageLoaderFactory {
override fun newImageLoader() = ImageLoader.Builder(applicationContext)
.memoryCache {
MemoryCache.Builder(applicationContext)
.maxSizePercent(0.25)
.build()
}
.diskCache {
DiskCache.Builder()
.directory(applicationContext.cacheDir.resolve("image_cache"))
.maxSizePercent(0.02)
.build()
}
.respectCacheHeaders(false)
.build()
}
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
package de.chaosdorf.meteroid.sync package de.chaosdorf.meteroid.sync
import android.util.Log
import de.chaosdorf.mete.model.MeteApiFactory import de.chaosdorf.mete.model.MeteApiFactory
import de.chaosdorf.meteroid.model.AccountInfo import de.chaosdorf.meteroid.model.AccountInfo
import de.chaosdorf.meteroid.model.Drink import de.chaosdorf.meteroid.model.Drink
...@@ -39,34 +40,66 @@ class SyncManager @Inject constructor( ...@@ -39,34 +40,66 @@ class SyncManager @Inject constructor(
private val transactionSyncHandler: TransactionSyncHandler private val transactionSyncHandler: TransactionSyncHandler
) { ) {
suspend fun sync(server: Server, user: User?) { suspend fun sync(server: Server, user: User?) {
userSyncHandler.sync(server) try {
drinkSyncHandler.sync(server) userSyncHandler.sync(server)
if (user != null) { drinkSyncHandler.sync(server)
transactionSyncHandler.sync(Pair(server, user.userId)) if (user != null) {
transactionSyncHandler.sync(Pair(server, user.userId))
}
} catch (e: Exception) {
Log.e(
"Sync",
"Could not finish transaction for ${user.name} (${user.userId}) on ${account.server.url}",
e
)
} }
} }
suspend fun purchase(account: AccountInfo, drink: Drink) { suspend fun purchase(account: AccountInfo, drink: Drink) {
account.user?.let { user -> account.user?.let { user ->
val api = factory.newInstance(account.server.url) val api = factory.newInstance(account.server.url)
api.purchase(user.userId, drink.drinkId) try {
sync(account.server, user) api.purchase(user.userId, drink.drinkId)
sync(account.server, user)
} catch (e: Exception) {
Log.e(
"Sync",
"Could not finish transaction for ${user.name} (${user.userId}) on ${account.server.url}",
e
)
}
} }
} }
suspend fun deposit(account: AccountInfo, amount: BigDecimal) { suspend fun deposit(account: AccountInfo, amount: BigDecimal) {
account.user?.let { user -> account.user?.let { user ->
val api = factory.newInstance(account.server.url) try {
api.deposit(user.userId, amount) val api = factory.newInstance(account.server.url)
sync(account.server, user) api.deposit(user.userId, amount)
sync(account.server, user)
} catch (e: Exception) {
Log.e(
"Sync",
"Could not finish transaction for ${user.name} (${user.userId}) on ${account.server.url}",
e
)
}
} }
} }
suspend fun withdraw(account: AccountInfo, amount: BigDecimal) { suspend fun withdraw(account: AccountInfo, amount: BigDecimal) {
account.user?.let { user -> account.user?.let { user ->
val api = factory.newInstance(account.server.url) val api = factory.newInstance(account.server.url)
api.withdraw(user.userId, amount) try {
sync(account.server, user) api.withdraw(user.userId, amount)
sync(account.server, user)
} catch (e: Exception) {
Log.e(
"Sync",
"Could not finish transaction for ${user.name} (${user.userId}) on ${account.server.url}",
e
)
}
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment