diff --git a/.gitignore b/.gitignore
index c47e4141..bfae29d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ pubspec_overrides.yaml
.flutter-plugins-dependencies
.flutter-plugins
build
+.kotlin
# Shared assets
assets/*
diff --git a/demos/supabase-todolist-drift/.metadata b/demos/supabase-todolist-drift/.metadata
index 6eb54a17..7f3042e6 100644
--- a/demos/supabase-todolist-drift/.metadata
+++ b/demos/supabase-todolist-drift/.metadata
@@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.
version:
- revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49"
+ revision: "b25305a8832cfc6ba632a7f87ad455e319dccce8"
channel: "stable"
project_type: app
@@ -13,26 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ create_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
+ base_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
- platform: android
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- - platform: ios
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- - platform: linux
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- - platform: macos
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- - platform: web
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- - platform: windows
- create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ create_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
+ base_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
# User provided section
diff --git a/demos/supabase-todolist-drift/android/.gitignore b/demos/supabase-todolist-drift/android/.gitignore
index 6f568019..be3943c9 100644
--- a/demos/supabase-todolist-drift/android/.gitignore
+++ b/demos/supabase-todolist-drift/android/.gitignore
@@ -5,9 +5,10 @@ gradle-wrapper.jar
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
+.cxx/
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/demos/supabase-todolist-drift/android/app/build.gradle b/demos/supabase-todolist-drift/android/app/build.gradle
deleted file mode 100644
index 920d4a5a..00000000
--- a/demos/supabase-todolist-drift/android/app/build.gradle
+++ /dev/null
@@ -1,58 +0,0 @@
-plugins {
- id "com.android.application"
- id "kotlin-android"
- // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
- id "dev.flutter.flutter-gradle-plugin"
-}
-
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file("local.properties")
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader("UTF-8") { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
-if (flutterVersionCode == null) {
- flutterVersionCode = "1"
-}
-
-def flutterVersionName = localProperties.getProperty("flutter.versionName")
-if (flutterVersionName == null) {
- flutterVersionName = "1.0"
-}
-
-android {
- namespace = "com.example.supabase_todolist_drift"
- compileSdk = flutter.compileSdkVersion
- ndkVersion = flutter.ndkVersion
-
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
- }
-
- defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId = "com.example.supabase_todolist_drift"
- // You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
- minSdk = flutter.minSdkVersion
- targetSdk = flutter.targetSdkVersion
- versionCode = flutterVersionCode.toInteger()
- versionName = flutterVersionName
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig = signingConfigs.debug
- }
- }
-}
-
-flutter {
- source = "../.."
-}
diff --git a/demos/supabase-todolist-drift/android/app/build.gradle.kts b/demos/supabase-todolist-drift/android/app/build.gradle.kts
new file mode 100644
index 00000000..a71067d0
--- /dev/null
+++ b/demos/supabase-todolist-drift/android/app/build.gradle.kts
@@ -0,0 +1,44 @@
+plugins {
+ id("com.android.application")
+ id("kotlin-android")
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id("dev.flutter.flutter-gradle-plugin")
+}
+
+android {
+ namespace = "com.powersync.demo.flutter.supabase_todolist_drift"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_11.toString()
+ }
+
+ defaultConfig {
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId = "com.powersync.demo.flutter.supabase_todolist_drift"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
+ }
+
+ buildTypes {
+ release {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig = signingConfigs.getByName("debug")
+ }
+ }
+}
+
+flutter {
+ source = "../.."
+}
diff --git a/demos/supabase-todolist-drift/android/app/src/debug/AndroidManifest.xml b/demos/supabase-todolist-drift/android/app/src/debug/AndroidManifest.xml
deleted file mode 100644
index 399f6981..00000000
--- a/demos/supabase-todolist-drift/android/app/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/demos/supabase-todolist-drift/android/app/src/main/AndroidManifest.xml b/demos/supabase-todolist-drift/android/app/src/main/AndroidManifest.xml
index 31fbc986..cd0a83b2 100644
--- a/demos/supabase-todolist-drift/android/app/src/main/AndroidManifest.xml
+++ b/demos/supabase-todolist-drift/android/app/src/main/AndroidManifest.xml
@@ -42,4 +42,5 @@
+
diff --git a/demos/supabase-todolist-drift/android/app/src/main/kotlin/com/example/supabase_todolist_drift/MainActivity.kt b/demos/supabase-todolist-drift/android/app/src/main/kotlin/com/example/supabase_todolist_drift/MainActivity.kt
deleted file mode 100644
index b862d376..00000000
--- a/demos/supabase-todolist-drift/android/app/src/main/kotlin/com/example/supabase_todolist_drift/MainActivity.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.supabase_todolist_drift
-
-import io.flutter.embedding.android.FlutterActivity
-
-class MainActivity: FlutterActivity()
diff --git a/demos/supabase-todolist-drift/android/app/src/main/kotlin/com/powersync/demo/flutter/supabase_todolist_drift/MainActivity.kt b/demos/supabase-todolist-drift/android/app/src/main/kotlin/com/powersync/demo/flutter/supabase_todolist_drift/MainActivity.kt
new file mode 100644
index 00000000..66ae2054
--- /dev/null
+++ b/demos/supabase-todolist-drift/android/app/src/main/kotlin/com/powersync/demo/flutter/supabase_todolist_drift/MainActivity.kt
@@ -0,0 +1,5 @@
+package com.powersync.demo.flutter.supabase_todolist_drift
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity : FlutterActivity()
diff --git a/demos/supabase-todolist-drift/android/app/src/profile/AndroidManifest.xml b/demos/supabase-todolist-drift/android/app/src/profile/AndroidManifest.xml
deleted file mode 100644
index 399f6981..00000000
--- a/demos/supabase-todolist-drift/android/app/src/profile/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/demos/supabase-todolist-drift/android/build.gradle b/demos/supabase-todolist-drift/android/build.gradle
deleted file mode 100644
index d2ffbffa..00000000
--- a/demos/supabase-todolist-drift/android/build.gradle
+++ /dev/null
@@ -1,18 +0,0 @@
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-rootProject.buildDir = "../build"
-subprojects {
- project.buildDir = "${rootProject.buildDir}/${project.name}"
-}
-subprojects {
- project.evaluationDependsOn(":app")
-}
-
-tasks.register("clean", Delete) {
- delete rootProject.buildDir
-}
diff --git a/demos/supabase-todolist-drift/android/build.gradle.kts b/demos/supabase-todolist-drift/android/build.gradle.kts
new file mode 100644
index 00000000..89176ef4
--- /dev/null
+++ b/demos/supabase-todolist-drift/android/build.gradle.kts
@@ -0,0 +1,21 @@
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get()
+rootProject.layout.buildDirectory.value(newBuildDir)
+
+subprojects {
+ val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
+ project.layout.buildDirectory.value(newSubprojectBuildDir)
+}
+subprojects {
+ project.evaluationDependsOn(":app")
+}
+
+tasks.register("clean") {
+ delete(rootProject.layout.buildDirectory)
+}
diff --git a/demos/supabase-todolist-drift/android/gradle/wrapper/gradle-wrapper.properties b/demos/supabase-todolist-drift/android/gradle/wrapper/gradle-wrapper.properties
index e1ca574e..3e64fd61 100644
--- a/demos/supabase-todolist-drift/android/gradle/wrapper/gradle-wrapper.properties
+++ b/demos/supabase-todolist-drift/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
diff --git a/demos/supabase-todolist-drift/android/settings.gradle b/demos/supabase-todolist-drift/android/settings.gradle
deleted file mode 100644
index 536165d3..00000000
--- a/demos/supabase-todolist-drift/android/settings.gradle
+++ /dev/null
@@ -1,25 +0,0 @@
-pluginManagement {
- def flutterSdkPath = {
- def properties = new Properties()
- file("local.properties").withInputStream { properties.load(it) }
- def flutterSdkPath = properties.getProperty("flutter.sdk")
- assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
- return flutterSdkPath
- }()
-
- includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-
- repositories {
- google()
- mavenCentral()
- gradlePluginPortal()
- }
-}
-
-plugins {
- id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "7.3.0" apply false
- id "org.jetbrains.kotlin.android" version "1.7.10" apply false
-}
-
-include ":app"
diff --git a/demos/supabase-todolist-drift/android/settings.gradle.kts b/demos/supabase-todolist-drift/android/settings.gradle.kts
new file mode 100644
index 00000000..ab39a10a
--- /dev/null
+++ b/demos/supabase-todolist-drift/android/settings.gradle.kts
@@ -0,0 +1,25 @@
+pluginManagement {
+ val flutterSdkPath = run {
+ val properties = java.util.Properties()
+ file("local.properties").inputStream().use { properties.load(it) }
+ val flutterSdkPath = properties.getProperty("flutter.sdk")
+ require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
+ flutterSdkPath
+ }
+
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+plugins {
+ id("dev.flutter.flutter-plugin-loader") version "1.0.0"
+ id("com.android.application") version "8.7.3" apply false
+ id("org.jetbrains.kotlin.android") version "2.1.0" apply false
+}
+
+include(":app")
diff --git a/demos/supabase-todolist-drift/pubspec.lock b/demos/supabase-todolist-drift/pubspec.lock
index 1a2be52e..b072a9ba 100644
--- a/demos/supabase-todolist-drift/pubspec.lock
+++ b/demos/supabase-todolist-drift/pubspec.lock
@@ -742,28 +742,28 @@ packages:
path: "../../packages/powersync"
relative: true
source: path
- version: "1.13.0"
+ version: "1.14.0"
powersync_attachments_helper:
dependency: "direct main"
description:
path: "../../packages/powersync_attachments_helper"
relative: true
source: path
- version: "0.6.18+7"
+ version: "0.6.18+9"
powersync_core:
dependency: "direct overridden"
description:
path: "../../packages/powersync_core"
relative: true
source: path
- version: "1.3.0"
+ version: "1.4.0"
powersync_flutter_libs:
dependency: "direct overridden"
description:
path: "../../packages/powersync_flutter_libs"
relative: true
source: path
- version: "0.4.8"
+ version: "0.4.9"
pub_semver:
dependency: transitive
description:
diff --git a/demos/supabase-todolist/.metadata b/demos/supabase-todolist/.metadata
new file mode 100644
index 00000000..7f3042e6
--- /dev/null
+++ b/demos/supabase-todolist/.metadata
@@ -0,0 +1,30 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+ revision: "b25305a8832cfc6ba632a7f87ad455e319dccce8"
+ channel: "stable"
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
+ base_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
+ - platform: android
+ create_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
+ base_revision: b25305a8832cfc6ba632a7f87ad455e319dccce8
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/demos/supabase-todolist/android/.gitignore b/demos/supabase-todolist/android/.gitignore
index 6f568019..be3943c9 100644
--- a/demos/supabase-todolist/android/.gitignore
+++ b/demos/supabase-todolist/android/.gitignore
@@ -5,9 +5,10 @@ gradle-wrapper.jar
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
+.cxx/
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/demos/supabase-todolist/android/app/build.gradle b/demos/supabase-todolist/android/app/build.gradle
deleted file mode 100644
index 9daa778b..00000000
--- a/demos/supabase-todolist/android/app/build.gradle
+++ /dev/null
@@ -1,70 +0,0 @@
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
-}
-
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
-android {
- compileSdkVersion flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- kotlinOptions {
- jvmTarget = '1.8'
- }
-
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
- }
-
- defaultConfig {
- applicationId "co.powersync.demotodolist"
- // You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
- minSdkVersion 24
- targetSdkVersion flutter.targetSdkVersion
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
- }
- }
-}
-
-flutter {
- source '../..'
-}
-
-dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-}
diff --git a/demos/supabase-todolist/android/app/build.gradle.kts b/demos/supabase-todolist/android/app/build.gradle.kts
new file mode 100644
index 00000000..04488b88
--- /dev/null
+++ b/demos/supabase-todolist/android/app/build.gradle.kts
@@ -0,0 +1,44 @@
+plugins {
+ id("com.android.application")
+ id("kotlin-android")
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id("dev.flutter.flutter-gradle-plugin")
+}
+
+android {
+ namespace = "com.powersync.demo.flutter.supabase_todolist"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_11.toString()
+ }
+
+ defaultConfig {
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId = "com.powersync.demo.flutter.supabase_todolist"
+ // You can update the following values to match your application needs.
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = flutter.minSdkVersion
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
+ }
+
+ buildTypes {
+ release {
+ // TODO: Add your own signing config for the release build.
+ // Signing with the debug keys for now, so `flutter run --release` works.
+ signingConfig = signingConfigs.getByName("debug")
+ }
+ }
+}
+
+flutter {
+ source = "../.."
+}
diff --git a/demos/supabase-todolist/android/app/src/debug/AndroidManifest.xml b/demos/supabase-todolist/android/app/src/debug/AndroidManifest.xml
deleted file mode 100644
index f19dd7d6..00000000
--- a/demos/supabase-todolist/android/app/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/demos/supabase-todolist/android/app/src/main/AndroidManifest.xml b/demos/supabase-todolist/android/app/src/main/AndroidManifest.xml
index 55e175c4..ca3077e6 100644
--- a/demos/supabase-todolist/android/app/src/main/AndroidManifest.xml
+++ b/demos/supabase-todolist/android/app/src/main/AndroidManifest.xml
@@ -1,13 +1,13 @@
-
-
+
+
+
+
+
+
+
+
+
diff --git a/demos/supabase-todolist/android/app/src/main/kotlin/co/powersync/demotodolist/MainActivity.kt b/demos/supabase-todolist/android/app/src/main/kotlin/co/powersync/demotodolist/MainActivity.kt
deleted file mode 100644
index 88fda765..00000000
--- a/demos/supabase-todolist/android/app/src/main/kotlin/co/powersync/demotodolist/MainActivity.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package co.powersync.demotodolist
-
-import io.flutter.embedding.android.FlutterActivity
-
-class MainActivity: FlutterActivity() {
-}
diff --git a/demos/supabase-todolist/android/app/src/main/kotlin/com/powersync/powersync_flutter_demo/demo/flutter/supabase_todolist/MainActivity.kt b/demos/supabase-todolist/android/app/src/main/kotlin/com/powersync/powersync_flutter_demo/demo/flutter/supabase_todolist/MainActivity.kt
new file mode 100644
index 00000000..290e567f
--- /dev/null
+++ b/demos/supabase-todolist/android/app/src/main/kotlin/com/powersync/powersync_flutter_demo/demo/flutter/supabase_todolist/MainActivity.kt
@@ -0,0 +1,5 @@
+package com.powersync.demo.flutter.supabase_todolist
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity : FlutterActivity()
diff --git a/demos/supabase-todolist/android/app/src/profile/AndroidManifest.xml b/demos/supabase-todolist/android/app/src/profile/AndroidManifest.xml
deleted file mode 100644
index f19dd7d6..00000000
--- a/demos/supabase-todolist/android/app/src/profile/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/demos/supabase-todolist/android/build.gradle b/demos/supabase-todolist/android/build.gradle
deleted file mode 100644
index 713d7f6e..00000000
--- a/demos/supabase-todolist/android/build.gradle
+++ /dev/null
@@ -1,31 +0,0 @@
-buildscript {
- ext.kotlin_version = '1.7.10'
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:7.2.0'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-rootProject.buildDir = '../build'
-subprojects {
- project.buildDir = "${rootProject.buildDir}/${project.name}"
-}
-subprojects {
- project.evaluationDependsOn(':app')
-}
-
-tasks.register("clean", Delete) {
- delete rootProject.buildDir
-}
diff --git a/demos/supabase-todolist/android/build.gradle.kts b/demos/supabase-todolist/android/build.gradle.kts
new file mode 100644
index 00000000..89176ef4
--- /dev/null
+++ b/demos/supabase-todolist/android/build.gradle.kts
@@ -0,0 +1,21 @@
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get()
+rootProject.layout.buildDirectory.value(newBuildDir)
+
+subprojects {
+ val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
+ project.layout.buildDirectory.value(newSubprojectBuildDir)
+}
+subprojects {
+ project.evaluationDependsOn(":app")
+}
+
+tasks.register("clean") {
+ delete(rootProject.layout.buildDirectory)
+}
diff --git a/demos/supabase-todolist/android/gradle/wrapper/gradle-wrapper.properties b/demos/supabase-todolist/android/gradle/wrapper/gradle-wrapper.properties
index 3c472b99..3e64fd61 100644
--- a/demos/supabase-todolist/android/gradle/wrapper/gradle-wrapper.properties
+++ b/demos/supabase-todolist/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
diff --git a/demos/supabase-todolist/android/settings.gradle b/demos/supabase-todolist/android/settings.gradle
deleted file mode 100644
index 44e62bcf..00000000
--- a/demos/supabase-todolist/android/settings.gradle
+++ /dev/null
@@ -1,11 +0,0 @@
-include ':app'
-
-def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-def properties = new Properties()
-
-assert localPropertiesFile.exists()
-localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
-
-def flutterSdkPath = properties.getProperty("flutter.sdk")
-assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
-apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
diff --git a/demos/supabase-todolist/android/settings.gradle.kts b/demos/supabase-todolist/android/settings.gradle.kts
new file mode 100644
index 00000000..ab39a10a
--- /dev/null
+++ b/demos/supabase-todolist/android/settings.gradle.kts
@@ -0,0 +1,25 @@
+pluginManagement {
+ val flutterSdkPath = run {
+ val properties = java.util.Properties()
+ file("local.properties").inputStream().use { properties.load(it) }
+ val flutterSdkPath = properties.getProperty("flutter.sdk")
+ require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
+ flutterSdkPath
+ }
+
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
+
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+plugins {
+ id("dev.flutter.flutter-plugin-loader") version "1.0.0"
+ id("com.android.application") version "8.7.3" apply false
+ id("org.jetbrains.kotlin.android") version "2.1.0" apply false
+}
+
+include(":app")
diff --git a/demos/supabase-todolist/pubspec.lock b/demos/supabase-todolist/pubspec.lock
index 7522f0ed..461a44ef 100644
--- a/demos/supabase-todolist/pubspec.lock
+++ b/demos/supabase-todolist/pubspec.lock
@@ -462,28 +462,28 @@ packages:
path: "../../packages/powersync"
relative: true
source: path
- version: "1.13.0"
+ version: "1.14.0"
powersync_attachments_helper:
dependency: "direct main"
description:
path: "../../packages/powersync_attachments_helper"
relative: true
source: path
- version: "0.6.18+7"
+ version: "0.6.18+9"
powersync_core:
dependency: "direct overridden"
description:
path: "../../packages/powersync_core"
relative: true
source: path
- version: "1.3.0"
+ version: "1.4.0"
powersync_flutter_libs:
dependency: "direct overridden"
description:
path: "../../packages/powersync_flutter_libs"
relative: true
source: path
- version: "0.4.8"
+ version: "0.4.9"
pub_semver:
dependency: transitive
description:
@@ -631,7 +631,7 @@ packages:
path: "/Users/simon/src/sqlite_async.dart/packages/sqlite_async"
relative: false
source: path
- version: "0.11.5"
+ version: "0.11.7"
stack_trace:
dependency: transitive
description: