Swap lazysodium/JNA for a pure-Java Bouncy Castle crypto envelope so the APK ships no native .so files (resolves the Android 15 16 KB alignment crash) while staying byte-compatible with the desktop libsodium sync. Bring the Android app up to the desktop feature set: full item CRUD with an add/edit screen and FAB, inline editing on the detail view (status, rating, favorite, per-unit/segment watched toggles, delete), online metadata search (TMDB/OpenLibrary/AniList/RAWG) that pre-fills the editor, library filtering and sorting, a statistics view, and settings polish for dark mode and provider API keys/language. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
28 lines
957 B
Kotlin
28 lines
957 B
Kotlin
package com.umt.tracker
|
|
|
|
import android.os.Bundle
|
|
import androidx.activity.ComponentActivity
|
|
import androidx.activity.compose.setContent
|
|
import androidx.activity.enableEdgeToEdge
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
import androidx.compose.material3.Surface
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|
import com.umt.tracker.ui.UmtNavHost
|
|
import com.umt.tracker.ui.theme.UmtTheme
|
|
|
|
class MainActivity : ComponentActivity() {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
enableEdgeToEdge()
|
|
super.onCreate(savedInstanceState)
|
|
setContent {
|
|
val darkTheme by Graph.appPrefs.darkMode.collectAsStateWithLifecycle()
|
|
UmtTheme(darkTheme = darkTheme) {
|
|
Surface(modifier = Modifier.fillMaxSize()) {
|
|
UmtNavHost()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|