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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ If the local maven repo does not exist, Gradle falls back to Maven Central. This
- [ARCHITECTURE.md](ARCHITECTURE.md): module boundaries and where new code goes
- [potential.md](./docs/potential.md) (Chinese): potential calculation
- [st3.md](./docs/st3.md) (Chinese): caveats of the in-game score database
- [play-result-mechanisms.md](./docs/play-result-mechanisms.md) (Chinese): mechanisms about pure, far, lost, clear type, etc.

## License

Expand Down
4 changes: 2 additions & 2 deletions app/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ xyz.sevive.arcaeaoffline/
│ ├── activities/ entry activities' screens and ViewModels, including ocrfromshare/
│ ├── common/ dialogs shared by several screens
│ ├── components/ composables used by 2+ features: dialogs/, ocr/, resources/
│ ├── helpers/ formatters, display-chart cache
│ ├── helpers/ display helpers, display-chart cache, UI events
│ ├── navigation/ MainScreen, MainNavigationGraph, per-tab route enums
│ └── screens/<feature>/[<subfeature>/]
├── database/ app-private Room 3 databases: AppDatabase, OcrQueueDatabase
├── datastore/ DataStore stores and their repositories
├── data/ Paths, BuildFlavor, maintenance tasks, notification channels, ImportLog, etc.
├── jobs/ WorkManager workers
├── helpers/ validators, OCR and resource helpers, diagnostics, activity/context extensions
├── helpers/ OCR and resource helpers, diagnostics, activity/context extensions
├── di/AppModule.kt the Koin module
├── logging/ rolling file log writer
└── permissions/ saving bitmaps to the gallery
Expand Down

This file was deleted.

This file was deleted.

9 changes: 0 additions & 9 deletions app/src/main/java/xyz/sevive/arcaeaoffline/helpers/Compose.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,7 @@ import androidx.activity.compose.ManagedActivityResultLauncher
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha

const val DISABLED_ALPHA = .38f
const val SECONDARY_ALPHA = .75f

@Composable
fun rememberFileChooserLauncher(onResult: (Uri?) -> Unit): ManagedActivityResultLauncher<String, Uri?> =
rememberLauncherForActivityResult(ActivityResultContracts.GetContent(), onResult)

fun Modifier.disabledItemAlpha() = this.alpha(DISABLED_ALPHA)

fun Modifier.secondaryItemAlpha() = this.alpha(SECONDARY_ALPHA)
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ import kotlinx.coroutines.withContext
import xyz.sevive.arcaeaoffline.R
import xyz.sevive.arcaeaoffline.core.Progress
import xyz.sevive.arcaeaoffline.core.database.repositories.ChartInfoRepository
import xyz.sevive.arcaeaoffline.core.validation.PlayResultValidator
import xyz.sevive.arcaeaoffline.data.notification.Notifications
import xyz.sevive.arcaeaoffline.database.entities.OcrQueueTask
import xyz.sevive.arcaeaoffline.database.entities.OcrQueueTaskStatus
import xyz.sevive.arcaeaoffline.database.repositories.OcrQueueTaskRepository
import xyz.sevive.arcaeaoffline.datastore.OcrQueueParallelism
import xyz.sevive.arcaeaoffline.helpers.ArcaeaPlayResultValidator
import xyz.sevive.arcaeaoffline.helpers.toWorkData
import kotlin.time.Duration.Companion.milliseconds

Expand Down Expand Up @@ -161,7 +161,7 @@ class OcrQueueProcessingJob(
taskRepo.findByStatus(OcrQueueTaskStatus.DONE).firstOrNull().orEmpty().filter { task ->
task.playResult?.let { playResult ->
val chartInfo = chartInfoRepo.find(playResult).firstOrNull() ?: return@let false
ArcaeaPlayResultValidator.validate(playResult, chartInfo).isNotEmpty()
PlayResultValidator.validate(playResult, chartInfo).isNotEmpty()
} == true
}
}
Expand Down
Loading
Loading