Skip to content

Commit db2ab98

Browse files
committed
Updated plugin to run on the UI thread.
1 parent 05e2ad1 commit db2ab98

2 files changed

Lines changed: 31 additions & 22 deletions

File tree

Plugins/Android/AndroidPlugin.java

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
package com.candycoded.alertconfirmdialog;
44

5+
import android.app.Activity;
56
import android.content.Context;
67
import android.app.AlertDialog;
78
import android.os.Bundle;
@@ -10,52 +11,60 @@
1011

1112
public class AndroidPlugin {
1213

13-
private Context context;
14+
private Activity activity;
1415

1516
public AndroidPlugin(Context context) {
16-
this.context = context;
17+
this.activity = (Activity) context;
1718
}
1819

1920
public void Alert(String title, String message, String okButtonLabel) {
2021

21-
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
22+
activity.runOnUiThread(() -> {
2223

23-
alertDialog.setTitle(title);
24-
alertDialog.setMessage(message);
25-
alertDialog.setPositiveButton(okButtonLabel, (dialog, which) -> {
24+
AlertDialog.Builder alertDialog = new AlertDialog.Builder(activity);
2625

27-
dialog.dismiss();
26+
alertDialog.setTitle(title);
27+
alertDialog.setMessage(message);
28+
alertDialog.setPositiveButton(okButtonLabel, (dialog, which) -> {
2829

29-
UnityPlayer.UnitySendMessage("AlertConfirmDialog", "Callback", "OK");
30+
dialog.dismiss();
31+
32+
UnityPlayer.UnitySendMessage("AlertConfirmDialog", "Callback", "OK");
33+
34+
});
35+
alertDialog.create();
36+
alertDialog.show();
3037

3138
});
32-
alertDialog.create();
33-
alertDialog.show();
3439

3540
}
3641

3742
public void Confirm(String title, String message, String okButtonLabel, String cancelButtonLabel) {
3843

39-
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
44+
activity.runOnUiThread(() -> {
4045

41-
alertDialog.setTitle(title);
42-
alertDialog.setMessage(message);
43-
alertDialog.setPositiveButton(okButtonLabel, (dialog, which) -> {
46+
AlertDialog.Builder alertDialog = new AlertDialog.Builder(activity);
4447

45-
dialog.dismiss();
48+
alertDialog.setTitle(title);
49+
alertDialog.setMessage(message);
50+
alertDialog.setPositiveButton(okButtonLabel, (dialog, which) -> {
4651

47-
UnityPlayer.UnitySendMessage("AlertConfirmDialog", "Callback", "OK");
52+
dialog.dismiss();
4853

49-
});
50-
alertDialog.setNegativeButton(cancelButtonLabel, (dialog, which) -> {
54+
UnityPlayer.UnitySendMessage("AlertConfirmDialog", "Callback", "OK");
55+
56+
});
57+
alertDialog.setNegativeButton(cancelButtonLabel, (dialog, which) -> {
58+
59+
dialog.dismiss();
5160

52-
dialog.dismiss();
61+
UnityPlayer.UnitySendMessage("AlertConfirmDialog", "Callback", "CANCEL");
5362

54-
UnityPlayer.UnitySendMessage("AlertConfirmDialog", "Callback", "CANCEL");
63+
});
64+
alertDialog.create();
65+
alertDialog.show();
5566

5667
});
57-
alertDialog.create();
58-
alertDialog.show();
5968

6069
}
6170

-64 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)