From 1b8feeb5de9df0eaed57c5f93d7a507739b96d56 Mon Sep 17 00:00:00 2001 From: anysome Date: Tue, 22 Nov 2016 16:14:46 +0800 Subject: [PATCH 1/4] auto fliter cancel button, make api more compatible with iOS --- .../src/main/java/com/actionsheet/ActionSheetModule.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/actionsheet/ActionSheetModule.java b/android/src/main/java/com/actionsheet/ActionSheetModule.java index b4d0e0b..c739717 100644 --- a/android/src/main/java/com/actionsheet/ActionSheetModule.java +++ b/android/src/main/java/com/actionsheet/ActionSheetModule.java @@ -43,11 +43,17 @@ public void showActionSheetWithOptions(final ReadableMap options, final Callback final List titles = new ArrayList(); + int cancelIndex = -1; + if (options.hasKey("cancelButtonIndex")) { + cancelIndex = options.getInt("cancelButtonIndex"); + } if (options.hasKey("options")) { ReadableArray customButtons = options.getArray("options"); for (int i = 0; i < customButtons.size(); i++) { int currentIndex = titles.size(); - titles.add(currentIndex, customButtons.getString(i)); + if (i != cancelIndex) { + titles.add(currentIndex, customButtons.getString(i)); + } } } From 1b684ad4aa19b100fda0e96fc24949c03123d3c7 Mon Sep 17 00:00:00 2001 From: anysome Date: Tue, 22 Nov 2016 21:40:40 +0800 Subject: [PATCH 2/4] android back do not callback --- android/src/main/java/com/actionsheet/ActionSheetModule.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/android/src/main/java/com/actionsheet/ActionSheetModule.java b/android/src/main/java/com/actionsheet/ActionSheetModule.java index c739717..663dfe1 100644 --- a/android/src/main/java/com/actionsheet/ActionSheetModule.java +++ b/android/src/main/java/com/actionsheet/ActionSheetModule.java @@ -50,9 +50,8 @@ public void showActionSheetWithOptions(final ReadableMap options, final Callback if (options.hasKey("options")) { ReadableArray customButtons = options.getArray("options"); for (int i = 0; i < customButtons.size(); i++) { - int currentIndex = titles.size(); if (i != cancelIndex) { - titles.add(currentIndex, customButtons.getString(i)); + titles.add(i, customButtons.getString(i)); } } } @@ -79,7 +78,6 @@ public void onClick(DialogInterface dialog, int index) { @Override public void onCancel(DialogInterface dialog) { dialog.dismiss(); - callback.invoke(); } }); dialog.show(); From f3d830430e6136c66ddb63463a1ab5fbfb24f3c8 Mon Sep 17 00:00:00 2001 From: anysome Date: Tue, 22 Nov 2016 22:21:13 +0800 Subject: [PATCH 3/4] fix bug if cancel button was not the last item --- .../java/com/actionsheet/ActionSheetModule.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/actionsheet/ActionSheetModule.java b/android/src/main/java/com/actionsheet/ActionSheetModule.java index 663dfe1..44b88fd 100644 --- a/android/src/main/java/com/actionsheet/ActionSheetModule.java +++ b/android/src/main/java/com/actionsheet/ActionSheetModule.java @@ -43,15 +43,17 @@ public void showActionSheetWithOptions(final ReadableMap options, final Callback final List titles = new ArrayList(); - int cancelIndex = -1; + int _cancelInde = -1; if (options.hasKey("cancelButtonIndex")) { - cancelIndex = options.getInt("cancelButtonIndex"); + _cancelInde = options.getInt("cancelButtonIndex"); } + final int cancelIndex = _cancelInde; if (options.hasKey("options")) { ReadableArray customButtons = options.getArray("options"); for (int i = 0; i < customButtons.size(); i++) { + int currentIndex = titles.size(); if (i != cancelIndex) { - titles.add(i, customButtons.getString(i)); + titles.add(currentIndex, customButtons.getString(i)); } } } @@ -65,7 +67,11 @@ public void showActionSheetWithOptions(final ReadableMap options, final Callback builder.setAdapter(adapter, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int index) { - callback.invoke(index); + if (index < cancelIndex) { + callback.invoke(index); + } else { + callback.invoke(index + 1); + } } }); From 00e0fec7a46dacc47d0afd76aed51e977a47ad76 Mon Sep 17 00:00:00 2001 From: anysome Date: Wed, 23 Nov 2016 09:45:23 +0800 Subject: [PATCH 4/4] fix bug if cancelIndex not present --- android/src/main/java/com/actionsheet/ActionSheetModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/actionsheet/ActionSheetModule.java b/android/src/main/java/com/actionsheet/ActionSheetModule.java index 44b88fd..73867e6 100644 --- a/android/src/main/java/com/actionsheet/ActionSheetModule.java +++ b/android/src/main/java/com/actionsheet/ActionSheetModule.java @@ -43,7 +43,7 @@ public void showActionSheetWithOptions(final ReadableMap options, final Callback final List titles = new ArrayList(); - int _cancelInde = -1; + int _cancelInde = 99; if (options.hasKey("cancelButtonIndex")) { _cancelInde = options.getInt("cancelButtonIndex"); }