diff --git a/app/build.gradle b/app/build.gradle index 8d55d000..33db8b07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,7 +1,7 @@ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' - id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.21' + id 'org.jetbrains.kotlin.plugin.serialization' version '2.1.20' id 'org.ajoberstar.grgit' version '5.2.2' id 'com.google.protobuf' id 'kotlin-parcelize' @@ -24,7 +24,7 @@ if (keystorePropertiesFile.exists()) { protobuf { protoc { - artifact = 'com.google.protobuf:protoc:3.25.1' + artifact = 'com.google.protobuf:protoc:4.30.2' } generateProtoTasks { all().each { task -> @@ -39,7 +39,7 @@ protobuf { android { namespace 'com.futo.platformplayer' - compileSdk 34 + compileSdk 35 flavorDimensions "buildType" productFlavors { stable { @@ -97,7 +97,7 @@ android { defaultConfig { minSdk 28 - targetSdk 34 + targetSdk 35 versionCode gitVersionCode versionName gitVersionName @@ -154,43 +154,43 @@ android { } dependencies { - implementation 'com.google.dagger:dagger:2.48' + implementation 'com.google.dagger:dagger:2.55' implementation 'androidx.test:monitor:1.7.2' annotationProcessor 'com.google.dagger:dagger-compiler:2.48' //Core - implementation 'androidx.core:core-ktx:1.12.0' - implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'com.google.android.material:material:1.11.0' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.core:core-ktx:1.15.0' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'com.google.android.material:material:1.12.0' + implementation 'androidx.constraintlayout:constraintlayout:2.2.1' //Images annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' implementation 'com.github.bumptech.glide:glide:4.16.0' //Async - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2" //HTTP implementation "com.squareup.okhttp3:okhttp:4.11.0" //JSON - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2" //Used for structured json - implementation 'com.google.code.gson:gson:2.10.1' //Used for complex/anonymous cases like during development conversions (eg. V8RemoteObject) + implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0" //Used for structured json + implementation 'com.google.code.gson:gson:2.11.0' //Used for complex/anonymous cases like during development conversions (eg. V8RemoteObject) //JS - implementation("com.caoccao.javet:javet-android:3.0.2") + implementation("com.caoccao.javet:javet-android:3.0.4") //Exoplayer - implementation 'androidx.media3:media3-exoplayer:1.2.1' - implementation 'androidx.media3:media3-exoplayer-dash:1.2.1' - implementation 'androidx.media3:media3-ui:1.2.1' - implementation 'androidx.media3:media3-exoplayer-hls:1.2.1' - implementation 'androidx.media3:media3-exoplayer-rtsp:1.2.1' - implementation 'androidx.media3:media3-exoplayer-smoothstreaming:1.2.1' - implementation 'androidx.media3:media3-transformer:1.2.1' - implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6' - implementation 'androidx.navigation:navigation-ui-ktx:2.7.6' + implementation 'androidx.media3:media3-exoplayer:1.6.0' + implementation 'androidx.media3:media3-exoplayer-dash:1.6.0' + implementation 'androidx.media3:media3-ui:1.6.0' + implementation 'androidx.media3:media3-exoplayer-hls:1.6.0' + implementation 'androidx.media3:media3-exoplayer-rtsp:1.6.0' + implementation 'androidx.media3:media3-exoplayer-smoothstreaming:1.6.0' + implementation 'androidx.media3:media3-transformer:1.6.0' + implementation 'androidx.navigation:navigation-fragment-ktx:2.8.9' + implementation 'androidx.navigation:navigation-ui-ktx:2.8.9' implementation 'androidx.media:media:1.7.0' //Other @@ -198,19 +198,19 @@ dependencies { implementation 'com.google.android.flexbox:flexbox:3.0.0' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'com.arthenica:ffmpeg-kit-full:6.0-2.LTS' - implementation 'org.jetbrains.kotlin:kotlin-reflect:1.9.0' + implementation 'org.jetbrains.kotlin:kotlin-reflect:1.9.20' implementation 'com.github.dhaval2404:imagepicker:2.1' implementation 'com.google.zxing:core:3.4.1' implementation 'com.journeyapps:zxing-android-embedded:4.3.0' implementation 'com.caverock:androidsvg-aar:1.4' //Protobuf - implementation 'com.google.protobuf:protobuf-javalite:3.25.1' + implementation 'com.google.protobuf:protobuf-javalite:4.30.2' implementation 'com.polycentric.core:app:1.0' implementation 'com.futo.futopay:app:1.0' - implementation 'androidx.work:work-runtime-ktx:2.9.0' - implementation 'androidx.concurrent:concurrent-futures-ktx:1.1.0' + implementation 'androidx.work:work-runtime-ktx:2.10.0' + implementation 'androidx.concurrent:concurrent-futures-ktx:1.2.0' //Database implementation("androidx.room:room-runtime:2.6.1") @@ -219,13 +219,15 @@ dependencies { implementation("androidx.room:room-ktx:2.6.1") //Payment - implementation 'com.stripe:stripe-android:20.35.1' + implementation 'com.stripe:stripe-android:21.7.1' + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2" + androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2' testImplementation 'junit:junit:4.13.2' - testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3' testImplementation "org.jetbrains.kotlin:kotlin-test:1.8.22" testImplementation "org.xmlunit:xmlunit-core:2.9.1" testImplementation "org.mockito:mockito-core:5.4.0" - androidTestImplementation 'androidx.test.ext:junit:1.1.5' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2' + androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' } diff --git a/app/schemas/com.futo.platformplayer.stores.db.types.DBHistory.DB/3.json b/app/schemas/com.futo.platformplayer.stores.db.types.DBHistory.DB/3.json index a9a08d30..d0d126cf 100644 --- a/app/schemas/com.futo.platformplayer.stores.db.types.DBHistory.DB/3.json +++ b/app/schemas/com.futo.platformplayer.stores.db.types.DBHistory.DB/3.json @@ -2,7 +2,7 @@ "formatVersion": 1, "database": { "version": 3, - "identityHash": "ffba56c2f572c25080ce8596e8bb8945", + "identityHash": "c9664b5f5951d402727b534bd4d169c9", "entities": [ { "tableName": "history", @@ -76,10 +76,8 @@ "columnNames": [ "datetime" ], - "orders": [ - "DESC" - ], - "createSql": "CREATE INDEX IF NOT EXISTS `index_history_datetime` ON `${TABLE_NAME}` (`datetime` DESC)" + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_history_datetime` ON `${TABLE_NAME}` (`datetime`)" } ], "foreignKeys": [] @@ -88,7 +86,7 @@ "views": [], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'ffba56c2f572c25080ce8596e8bb8945')" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'c9664b5f5951d402727b534bd4d169c9')" ] } } \ No newline at end of file diff --git a/app/schemas/com.futo.platformplayer.stores.db.types.DBSubscriptionCache.DB/5.json b/app/schemas/com.futo.platformplayer.stores.db.types.DBSubscriptionCache.DB/5.json index d224cb45..b616123d 100644 --- a/app/schemas/com.futo.platformplayer.stores.db.types.DBSubscriptionCache.DB/5.json +++ b/app/schemas/com.futo.platformplayer.stores.db.types.DBSubscriptionCache.DB/5.json @@ -2,7 +2,7 @@ "formatVersion": 1, "database": { "version": 5, - "identityHash": "eb813d54b9c44d29f1d7bb198a16d4d1", + "identityHash": "dcbf4dfbc1190853f0f6b7c0fef2efa5", "entities": [ { "tableName": "subscription_cache", @@ -70,10 +70,8 @@ "columnNames": [ "datetime" ], - "orders": [ - "DESC" - ], - "createSql": "CREATE INDEX IF NOT EXISTS `index_subscription_cache_datetime` ON `${TABLE_NAME}` (`datetime` DESC)" + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_subscription_cache_datetime` ON `${TABLE_NAME}` (`datetime`)" } ], "foreignKeys": [] @@ -82,7 +80,7 @@ "views": [], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'eb813d54b9c44d29f1d7bb198a16d4d1')" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'dcbf4dfbc1190853f0f6b7c0fef2efa5')" ] } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/activities/AddSourceActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/AddSourceActivity.kt index 81be84ea..46dabe06 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/AddSourceActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/AddSourceActivity.kt @@ -107,9 +107,9 @@ class AddSourceActivity : AppCompatActivity() { onNewIntent(intent); } - override fun onNewIntent(intent: Intent?) { + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) - var url = intent?.dataString; + var url = intent.dataString; if(url == null) UIDialogs.showDialog(this, R.drawable.ic_error, getString(R.string.no_valid_url_provided), null, null, diff --git a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt index 25febdb1..4a3d5bb8 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt @@ -648,12 +648,12 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { _wasStopped = true; } - override fun onNewIntent(intent: Intent?) { + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent); handleIntent(intent); } - private fun handleIntent(intent: Intent?) { + private fun handleIntent(intent: Intent) { if (intent == null) return; Logger.i(TAG, "handleIntent started by " + intent.action); diff --git a/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBDAOBase.kt b/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBDAOBase.kt index 3341ef8b..e92fe50a 100644 --- a/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBDAOBase.kt +++ b/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBDAOBase.kt @@ -23,8 +23,6 @@ interface ManagedDBDAOBase> { @Insert fun insert(index: I): Long; - @Insert - fun insertAll(vararg indexes: I) @Update fun update(index: I); diff --git a/build.gradle b/build.gradle index 4e3f83c2..3ba50640 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id 'com.android.application' version '8.5.2' apply false - id 'com.android.library' version '8.5.2' apply false - id 'org.jetbrains.kotlin.android' version '1.9.0' apply false - id 'com.google.protobuf' version '0.9.4' apply false - id 'com.google.devtools.ksp' version '1.9.0-1.0.13' apply false + id 'com.android.application' version '8.9.1' apply false + id 'com.android.library' version '8.9.1' apply false + id 'org.jetbrains.kotlin.android' version '2.1.20' apply false + id 'com.google.protobuf' version '0.9.5' apply false + id 'com.google.devtools.ksp' version '2.1.20-2.0.0' apply false } diff --git a/dep/futopay b/dep/futopay index 21afe43d..3743cb1a 160000 --- a/dep/futopay +++ b/dep/futopay @@ -1 +1 @@ -Subproject commit 21afe43dffed9d4c7864420a7eb955f63d335d51 +Subproject commit 3743cb1a90a271ff4e2512f22b1d1ba6ae3dda8c diff --git a/dep/polycentricandroid b/dep/polycentricandroid index f87f00ab..32916d1f 160000 --- a/dep/polycentricandroid +++ b/dep/polycentricandroid @@ -1 +1 @@ -Subproject commit f87f00ab9e1262e300246b8963591bdf3a8fada7 +Subproject commit 32916d1fb1bfd21b896815b08935848434a5c730 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 69924496..88bb8805 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Nov 11 13:25:09 CET 2022 +#Wed Apr 09 11:29:56 CEST 2025 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists