Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • jonas.broeckmann/kaffeekasse
1 result
Select Git revision
Show changes
Commits on Source (4)
Showing
with 63 additions and 51 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.9.20" />
<option name="version" value="2.0.0" />
</component>
</project>
\ No newline at end of file
......@@ -155,7 +155,9 @@ dependencies {
implementation(libs.acra.mail)
implementation(libs.acra.limiter)
implementation(libs.commonutils)
implementation(libs.commonutils.core)
implementation(libs.commonutils.compose)
implementation(libs.commonutils.voyager)
dokkaPlugin(libs.dokka.android)
......
......@@ -11,12 +11,12 @@ import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.plus
import kotlinx.coroutines.runBlocking
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.android.toastShort
import net.novagamestudios.common_utils.compose.application
import net.novagamestudios.common_utils.error
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.toastShort
import net.novagamestudios.common_utils.warn
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.error
import net.novagamestudios.common_utils.logging.info
import net.novagamestudios.common_utils.logging.warn
import net.novagamestudios.kaffeekasse.api.hiwi_tracker.HiwiTrackerAPI
import net.novagamestudios.kaffeekasse.api.hiwi_tracker.HiwiTrackerScraper
import net.novagamestudios.kaffeekasse.api.kaffeekasse.KaffeekasseAPI
......
......@@ -14,7 +14,7 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch
import net.novagamestudios.common_utils.LocalLogger
import net.novagamestudios.common_utils.logging.LocalLogger
import net.novagamestudios.kaffeekasse.repositories.SettingsRepository
import net.novagamestudios.kaffeekasse.ui.App
import net.novagamestudios.kaffeekasse.ui.util.removeScrollableTabRowMinimumTabWidth
......
......@@ -3,8 +3,8 @@ package net.novagamestudios.kaffeekasse
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.info
class UpdateReceiver : BroadcastReceiver(), Logger {
......
......@@ -2,9 +2,9 @@ package net.novagamestudios.kaffeekasse.api.hiwi_tracker
import io.ktor.http.parameters
import kotlinx.datetime.format
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.kaffeekasse.api.portal.PortalClient
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.kaffeekasse.api.hiwi_tracker.model.MonthDataResponse
import net.novagamestudios.kaffeekasse.api.portal.PortalClient
import net.novagamestudios.kaffeekasse.model.hiwi_tracker.MonthKey
......
......@@ -3,10 +3,9 @@ package net.novagamestudios.kaffeekasse.api.kaffeekasse
import io.ktor.http.Parameters
import io.ktor.http.parameters
import io.ktor.util.sha1
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.debug
import net.novagamestudios.common_utils.error
import net.novagamestudios.kaffeekasse.api.portal.PortalClient
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.debug
import net.novagamestudios.common_utils.logging.error
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.ItemListResponse
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.KaffeekasseAPIResponse
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.LoggedInUserResponse
......@@ -16,6 +15,7 @@ import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.LogoutUserResponse
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.PurchaseResponse
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.UserInfoResponse
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.UserListResponse
import net.novagamestudios.kaffeekasse.api.portal.PortalClient
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.KaffeekasseAPIResponse.Error.Code as ErrorCode
class KaffeekasseAPI(
......
......@@ -12,7 +12,7 @@ import it.skrape.selects.html5.select
import it.skrape.selects.html5.table
import it.skrape.selects.html5.td
import it.skrape.selects.html5.tr
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.logging.info
import net.novagamestudios.kaffeekasse.api.portal.PortalClient
import net.novagamestudios.kaffeekasse.model.kaffeekasse.Cart
import net.novagamestudios.kaffeekasse.model.kaffeekasse.KnownItem
......
......@@ -2,8 +2,8 @@ package net.novagamestudios.kaffeekasse.api.kaffeekasse.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.novagamestudios.common_utils.serialization.BooleanAsIntSerializer
import net.novagamestudios.kaffeekasse.model.kaffeekasse.Name
import net.novagamestudios.kaffeekasse.util.IntAsBooleanSerializer
@Serializable
data class BasicUserInfo(
......@@ -12,7 +12,7 @@ data class BasicUserInfo(
@SerialName("name")
override val name: Name,
@SerialName("empty_pin")
val noPinSet: @Serializable(with = IntAsBooleanSerializer::class) Boolean? = null
val noPinSet: @Serializable(with = BooleanAsIntSerializer::class) Boolean? = null
) : APIPurchaseAccount {
val mayHavePin get() = noPinSet == null || !noPinSet
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ package net.novagamestudios.kaffeekasse.api.kaffeekasse.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonElement
import net.novagamestudios.kaffeekasse.util.IntAsBooleanSerializer
import net.novagamestudios.common_utils.serialization.BooleanAsIntSerializer
@Serializable
data class ItemListResponse(
......@@ -25,7 +25,7 @@ data class ItemListResponse(
val sortP: Double,
@SerialName("itemtype_id")
val itemTypeId: Int,
val enabled: @Serializable(with = IntAsBooleanSerializer::class) Boolean,
val enabled: @Serializable(with = BooleanAsIntSerializer::class) Boolean,
@SerialName("has_condition_reports")
val hasConditionReports: JsonElement
)
......
......@@ -33,12 +33,12 @@ import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.decodeFromJsonElement
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.debug
import net.novagamestudios.common_utils.error
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.verbose
import net.novagamestudios.common_utils.warn
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.debug
import net.novagamestudios.common_utils.logging.error
import net.novagamestudios.common_utils.logging.info
import net.novagamestudios.common_utils.logging.verbose
import net.novagamestudios.common_utils.logging.warn
import net.novagamestudios.kaffeekasse.api.portal.model.PortalAPIResponse
import net.novagamestudios.kaffeekasse.model.credentials.Login
import net.novagamestudios.kaffeekasse.model.credentials.isValid
......
......@@ -6,7 +6,7 @@ import kotlinx.datetime.LocalDate
import kotlinx.datetime.Month
import kotlinx.datetime.number
import kotlinx.serialization.Serializable
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.logging.Logger
@Serializable
......
......@@ -2,7 +2,7 @@ package net.novagamestudios.kaffeekasse.model.hiwi_tracker
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalTime
import net.novagamestudios.kaffeekasse.util.minus
import net.novagamestudios.common_utils.minus
import kotlin.time.Duration
import kotlin.time.Duration.Companion.hours
import kotlin.time.Duration.Companion.minutes
......
......@@ -11,12 +11,12 @@ import androidx.credentials.exceptions.CreateCredentialException
import androidx.credentials.exceptions.CreateCredentialUnsupportedException
import androidx.credentials.exceptions.GetCredentialCancellationException
import androidx.credentials.exceptions.GetCredentialException
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.debug
import net.novagamestudios.common_utils.error
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.toastShort
import net.novagamestudios.common_utils.verbose
import net.novagamestudios.common_utils.android.toastShort
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.debug
import net.novagamestudios.common_utils.logging.error
import net.novagamestudios.common_utils.logging.info
import net.novagamestudios.common_utils.logging.verbose
import net.novagamestudios.kaffeekasse.BuildConfig
import net.novagamestudios.kaffeekasse.model.credentials.DeviceCredentials
import net.novagamestudios.kaffeekasse.model.credentials.Login
......
......@@ -4,12 +4,14 @@ import android.content.Context
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.sync.Mutex
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.debug
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.toastShort
import net.novagamestudios.common_utils.verbose
import net.novagamestudios.common_utils.warn
import net.novagamestudios.common_utils.android.toastShort
import net.novagamestudios.common_utils.collection.mapState
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.debug
import net.novagamestudios.common_utils.logging.info
import net.novagamestudios.common_utils.logging.verbose
import net.novagamestudios.common_utils.logging.warn
import net.novagamestudios.common_utils.withReentrantLock
import net.novagamestudios.kaffeekasse.api.kaffeekasse.KaffeekasseAPI
import net.novagamestudios.kaffeekasse.api.kaffeekasse.model.BasicUserInfo
import net.novagamestudios.kaffeekasse.model.credentials.DeviceCredentials
......@@ -19,8 +21,6 @@ import net.novagamestudios.kaffeekasse.model.kaffeekasse.UserAuthCredentials
import net.novagamestudios.kaffeekasse.model.session.Session
import net.novagamestudios.kaffeekasse.repositories.i11.KaffeekasseRepository
import net.novagamestudios.kaffeekasse.repositories.i11.PortalRepository
import net.novagamestudios.kaffeekasse.util.mapState
import net.novagamestudios.kaffeekasse.util.withReentrantLock
class LoginRepository(
private val credentialsRepository: Credentials,
......
......@@ -11,10 +11,10 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.modules.SerializersModule
import kotlinx.serialization.serializer
import net.novagamestudios.common_utils.JsonToDataStore
import net.novagamestudios.common_utils.compose.state.DataStoreState
import net.novagamestudios.common_utils.compose.state.MutableDataStoreState
import net.novagamestudios.common_utils.compose.state.stateIn
import net.novagamestudios.common_utils.serialization.JsonToDataStore
import net.novagamestudios.kaffeekasse.model.credentials.DeviceCredentials
import net.novagamestudios.kaffeekasse.ui.util.derived
import java.io.File
......
package net.novagamestudios.kaffeekasse.repositories
import kotlinx.coroutines.flow.StateFlow
import net.novagamestudios.common_utils.collection.mapState
import net.novagamestudios.common_utils.compose.state.MutableDataStoreState
import net.novagamestudios.kaffeekasse.model.session.realUserOrNull
import net.novagamestudios.kaffeekasse.util.mapState
class SettingsRepository(
repositoryProvider: RepositoryProvider,
......
......@@ -11,11 +11,11 @@ import io.ktor.http.contentLength
import io.ktor.utils.io.ByteReadChannel
import io.ktor.utils.io.jvm.javaio.copyTo
import kotlinx.coroutines.flow.MutableStateFlow
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.compose.components.Progress
import net.novagamestudios.common_utils.debug
import net.novagamestudios.common_utils.error
import net.novagamestudios.common_utils.info
import net.novagamestudios.common_utils.logging.debug
import net.novagamestudios.common_utils.logging.error
import net.novagamestudios.common_utils.logging.info
import net.novagamestudios.kaffeekasse.MainActivity
import net.novagamestudios.kaffeekasse.UpdateReceiver
import net.novagamestudios.kaffeekasse.model.app.AppRelease
......
package net.novagamestudios.kaffeekasse.repositories.i11
import kotlinx.coroutines.CoroutineScope
import net.novagamestudios.common_utils.Logger
import net.novagamestudios.common_utils.debug
import net.novagamestudios.common_utils.logging.Logger
import net.novagamestudios.common_utils.logging.debug
import net.novagamestudios.kaffeekasse.api.hiwi_tracker.HiwiTrackerAPI
import net.novagamestudios.kaffeekasse.api.hiwi_tracker.HiwiTrackerScraper
import net.novagamestudios.kaffeekasse.api.hiwi_tracker.model.MonthDataResponse
......