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()
}
}