Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@
[submodule "pretixscan/libpretixui-repo"]
path = pretixscan/libpretixui-repo
url = https://github.com/pretix/libpretixui-android.git
[submodule "pretixscan/libpretixnfc-repo"]
path = pretixscan/libpretixnfc-repo
url = https://github.com/pretix/libpretixnfc.git
11 changes: 11 additions & 0 deletions pretixscan/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,17 @@ dependencies {
implementation(project(':libpretixsync')) {
transitive = false
}

// libpretixnfc
implementation(project(':libpretixnfc')) {
transitive = true
}

// libpretixnfc-android
implementation(project(':libpretixnfc-android')) {
transitive = true
}

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

Expand Down
2 changes: 2 additions & 0 deletions pretixscan/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@
android:exported="false"
android:theme="@style/AppTheme.NoActionBar" />

<service android:name="eu.pretix.libpretixnfc.android.hardware.acs.AcsReaderService" android:foregroundServiceType="connectedDevice" />

<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import com.fasterxml.jackson.module.kotlin.KotlinFeature
import com.fasterxml.jackson.module.kotlin.KotlinModule
import eu.pretix.libpretixsync.api.PretixApi
import eu.pretix.libpretixsync.config.ConfigStore
import eu.pretix.libpretixnfc.android.platform.AndroidKeyStore
import eu.pretix.libpretixnfc.platform.HardwareBackedKeyStore
import eu.pretix.pretixscan.utils.KeystoreHelper
import org.joda.time.DateTime
import org.json.JSONObject
Expand Down Expand Up @@ -409,6 +411,14 @@ class AppConfig(ctx: Context) : ConfigStore {
default_prefs.edit().putStringSet(PREFS_KEY_KNOWN_LIVE_EVENT_SLUGS, slugs).apply()
}

var nfcReaderType: String
get() = default_prefs.getString(PREFS_KEY_NFC_READER_TYPE, "native") ?: "native"
set(value) = default_prefs.edit().putString(PREFS_KEY_NFC_READER_TYPE, value).apply()

val keyStore: HardwareBackedKeyStore by lazy {
AndroidKeyStore(ctx.applicationContext as PretixScan)
}

companion object {
val PREFS_NAME = "pretixdroid"
val PREFS_KEY_API_URL = "pretix_api_url"
Expand Down Expand Up @@ -455,6 +465,7 @@ class AppConfig(ctx: Context) : ConfigStore {
val PREFS_KEY_SEARCH_DISABLE = "pref_search_disable"
val PREFS_KEY_KIOSK_MODE = "pref_kiosk_mode"
val PREFS_KEY_MULTI_EVENT_MODE = "multi_event_mode"
val PREFS_KEY_NFC_READER_TYPE = "pref_nfc_type"
private const val PREFS_KEY_KNOWN_LIVE_EVENT_SLUGS = "cache_known_live_event_slugs"
private const val PREFS_KEY_SCREEN_ALWAYS_ON = "pref_screen_always_on"
}
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
package eu.pretix.pretixscan.droid.ui

import android.app.Activity
import android.app.Dialog
import android.content.DialogInterface
import android.content.Intent
import android.view.WindowManager
import androidx.appcompat.app.AlertDialog
import eu.pretix.libpretixsync.check.TicketCheckProvider
import eu.pretix.libpretixsync.db.Answer
import eu.pretix.libpretixsync.db.ReusableMediaType
import eu.pretix.libpretixui.android.questions.QuestionsDialogInterface
import eu.pretix.pretixscan.droid.R


class UnpaidDialog(ctx: Activity, val secret: String, val answers: MutableList<Answer>?,
val retryHandler: ((String, MutableList<Answer>?, Boolean) -> Unit)) : AlertDialog(ctx), QuestionsDialogInterface {
class UnpaidDialog(ctx: Activity, val secret: String, val sourceType: ReusableMediaType, val answers: MutableList<Answer>?,
val retryHandler: ((String, ReusableMediaType, MutableList<Answer>?, Boolean) -> Unit)) : AlertDialog(ctx), QuestionsDialogInterface {
init {
setTitle(R.string.dialog_unpaid_title)
setMessage(ctx.getString(R.string.dialog_unpaid_text))
setButton(DialogInterface.BUTTON_POSITIVE, ctx.getString(R.string.dialog_unpaid_retry)) { p0, p1 ->
dismiss()
retryHandler(secret, answers, true)
retryHandler(secret, sourceType, answers, true)
}
setButton(DialogInterface.BUTTON_NEGATIVE, ctx.getString(eu.pretix.libpretixui.android.R.string.cancel)) { p0, p1 ->
cancel()
Expand All @@ -31,10 +31,13 @@ class UnpaidDialog(ctx: Activity, val secret: String, val answers: MutableList<A
}
}

fun showUnpaidDialog(ctx: Activity, res: TicketCheckProvider.CheckResult,
secret: String, answers: MutableList<Answer>?,
retryHandler: ((String, MutableList<Answer>?, Boolean) -> Unit)): QuestionsDialogInterface {
val dialog = UnpaidDialog(ctx, secret, answers, retryHandler)
fun showUnpaidDialog(ctx: Activity,
res: TicketCheckProvider.CheckResult,
secret: String,
sourceType: ReusableMediaType,
answers: MutableList<Answer>?,
retryHandler: ((String, ReusableMediaType, MutableList<Answer>?, Boolean) -> Unit)): QuestionsDialogInterface {
val dialog = UnpaidDialog(ctx, secret, sourceType, answers, retryHandler)
dialog.show()
return dialog
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package eu.pretix.pretixscan.utils

import android.app.Application
import eu.pretix.libpretixsync.models.Settings
import eu.pretix.libpretixsync.models.db.toModel
import eu.pretix.libpretixsync.utils.SettingsManager
import eu.pretix.pretixscan.droid.PretixScan

class SettingsManager(private val application: Application): SettingsManager {
override fun getBySlug(eventSlug: String): Settings? {
return (application as PretixScan).db.settingsQueries.selectBySlug(eventSlug).executeAsOneOrNull()?.toModel()
}
}
1 change: 1 addition & 0 deletions pretixscan/libpretixnfc-repo
Submodule libpretixnfc-repo added at d2a04c
2 changes: 1 addition & 1 deletion pretixscan/libpretixui-repo
4 changes: 3 additions & 1 deletion pretixscan/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
}

include ':app', ':libpretixsync', ':libpretixui-android', ':android-libserenegiantcommon', ':android-libusbcameracommon', ':android-libuvccamera'
include ':app', ':libpretixsync', ':libpretixui-android', ':libpretixnfc', ':libpretixnfc-android', ':android-libserenegiantcommon', ':android-libusbcameracommon', ':android-libuvccamera'
project(':libpretixsync').projectDir = new File('libpretixsync-repo/libpretixsync')
project(':libpretixui-android').projectDir = new File('libpretixui-repo/libpretixui-android')
project(':libpretixnfc').projectDir = new File('libpretixnfc-repo/libpretixnfc')
project(':libpretixnfc-android').projectDir = new File('libpretixnfc-repo/libpretixnfc-android')
project(':android-libserenegiantcommon').projectDir = new File('libpretixui-repo/android-libserenegiantcommon')
project(':android-libusbcameracommon').projectDir = new File('libpretixui-repo/android-libusbcameracommon')
project(':android-libuvccamera').projectDir = new File('libpretixui-repo/android-libuvccamera')
Loading