diff --git a/.changes/material-dialog.md b/.changes/material-dialog.md new file mode 100644 index 000000000..30b4418ae --- /dev/null +++ b/.changes/material-dialog.md @@ -0,0 +1,6 @@ +--- +dialog: patch +dialog-js: patch +--- + +Use `com.google.android.material.dialog.MaterialAlertDialogBuilder` instead of `AlertDialog` so the dialog follows the app's theme diff --git a/examples/api/src-tauri/capabilities/base.json b/examples/api/src-tauri/capabilities/base.json index f7fd7dff0..f5286a4ac 100644 --- a/examples/api/src-tauri/capabilities/base.json +++ b/examples/api/src-tauri/capabilities/base.json @@ -17,8 +17,7 @@ "core:default", "fs:default", "core:window:allow-minimize", - "core:window:allow-maximize", - "core:window:allow-unmaximize", + "core:window:allow-toggle-maximize", "core:window:allow-close", "core:window:allow-start-dragging", "notification:default", diff --git a/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt b/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt index 0a05f42b6..e89f63220 100644 --- a/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt +++ b/examples/api/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt @@ -1,3 +1,11 @@ package com.tauri.api -class MainActivity : TauriActivity() \ No newline at end of file +import android.os.Bundle +import androidx.activity.enableEdgeToEdge + +class MainActivity : TauriActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + } +} diff --git a/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml index f03785271..4042aae02 100644 --- a/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml +++ b/examples/api/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - diff --git a/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml b/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml index f03785271..4042aae02 100644 --- a/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml +++ b/examples/api/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - diff --git a/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt index f98748258..f764e2ad9 100644 --- a/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt +++ b/examples/api/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt @@ -21,7 +21,23 @@ open class BuildTask : DefaultTask() { runTauriCli(executable) } catch (e: Exception) { if (Os.isFamily(Os.FAMILY_WINDOWS)) { - runTauriCli("$executable.cmd") + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException } else { throw e; } diff --git a/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties index 0df10d556..c5f9a53c2 100644 --- a/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties +++ b/examples/api/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Tue May 10 19:22:52 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/examples/api/src/App.svelte b/examples/api/src/App.svelte index 8e114c4b9..b9b0fb8ea 100644 --- a/examples/api/src/App.svelte +++ b/examples/api/src/App.svelte @@ -1,4 +1,5 @@ + +
+ Tauri API Validation + + + + + + +
diff --git a/examples/api/src/views/Dialog.svelte b/examples/api/src/views/Dialog.svelte index 7e89e36ff..7cad5250e 100644 --- a/examples/api/src/views/Dialog.svelte +++ b/examples/api/src/views/Dialog.svelte @@ -55,7 +55,7 @@ async function openDialog() { try { - var result = await open({ + const result = await open({ title: "My wonderful open dialog", defaultPath, filters: filter @@ -74,9 +74,11 @@ if (Array.isArray(result)) { onMessage(result); + } else if (result === null) { + onMessage('user cancelled the selection') } else { - var pathToRead = result; - var isFile = pathToRead.match(/\S+\.\S+$/g); + const pathToRead = result; + const isFile = pathToRead.match(/\S+\.\S+$/g); await readFile(pathToRead) .then(function (res) { @@ -89,7 +91,7 @@ arrayBufferToBase64( new Uint8Array(res), function (base64) { - var src = "data:image/png;base64," + base64; + const src = "data:image/png;base64," + base64; insecureRenderHtml(''); } ); diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml index 3238df1f0..2777e7358 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - diff --git a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml index 3238df1f0..2777e7358 100644 --- a/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml +++ b/plugins/deep-link/examples/app/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - diff --git a/plugins/dialog/android/build.gradle.kts b/plugins/dialog/android/build.gradle.kts index 248ebf68f..8913dfcf7 100644 --- a/plugins/dialog/android/build.gradle.kts +++ b/plugins/dialog/android/build.gradle.kts @@ -35,8 +35,8 @@ android { dependencies { implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.appcompat:appcompat:1.6.0") - implementation("com.google.android.material:material:1.7.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("com.google.android.material:material:1.13.0") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") diff --git a/plugins/dialog/android/src/main/java/DialogPlugin.kt b/plugins/dialog/android/src/main/java/DialogPlugin.kt index 447a29911..5c58f00dc 100644 --- a/plugins/dialog/android/src/main/java/DialogPlugin.kt +++ b/plugins/dialog/android/src/main/java/DialogPlugin.kt @@ -5,7 +5,6 @@ package app.tauri.dialog import android.app.Activity -import android.app.AlertDialog import android.content.Intent import android.net.Uri import android.os.Handler @@ -21,6 +20,7 @@ import app.tauri.plugin.Invoke import app.tauri.plugin.JSArray import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin +import com.google.android.material.dialog.MaterialAlertDialogBuilder @InvokeArg class Filter { @@ -158,7 +158,7 @@ class DialogPlugin(private val activity: Activity): Plugin(activity) { Handler(Looper.getMainLooper()) .post { - val builder = AlertDialog.Builder(activity) + val builder = MaterialAlertDialogBuilder(activity) if (args.title != null) { builder.setTitle(args.title) @@ -191,8 +191,7 @@ class DialogPlugin(private val activity: Activity): Plugin(activity) { } } - val dialog = builder.create() - dialog.show() + builder.show() } }