diff --git a/packages/quick_actions/CHANGELOG.md b/packages/quick_actions/CHANGELOG.md
index 3c89003e5d59..d1e6d8db07f3 100644
--- a/packages/quick_actions/CHANGELOG.md
+++ b/packages/quick_actions/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.3.2+2
+* Fix bug that would make the shortcut not open on Android.
+* Report shortcut used on Android.
+* Improves example.
+
## 0.3.2+1
* Update usage example in README.
diff --git a/packages/quick_actions/android/src/main/AndroidManifest.xml b/packages/quick_actions/android/src/main/AndroidManifest.xml
index 26daac952d28..5b02f6d8aef2 100644
--- a/packages/quick_actions/android/src/main/AndroidManifest.xml
+++ b/packages/quick_actions/android/src/main/AndroidManifest.xml
@@ -1,12 +1,4 @@
-
-
-
-
diff --git a/packages/quick_actions/android/src/main/java/io/flutter/plugins/quickactions/QuickActionsPlugin.java b/packages/quick_actions/android/src/main/java/io/flutter/plugins/quickactions/QuickActionsPlugin.java
index 6fb276af0934..3a4ba2410666 100644
--- a/packages/quick_actions/android/src/main/java/io/flutter/plugins/quickactions/QuickActionsPlugin.java
+++ b/packages/quick_actions/android/src/main/java/io/flutter/plugins/quickactions/QuickActionsPlugin.java
@@ -4,15 +4,14 @@
package io.flutter.plugins.quickactions;
-import android.annotation.SuppressLint;
-import android.app.Activity;
+import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
+import android.content.res.Resources;
import android.graphics.drawable.Icon;
import android.os.Build;
-import android.os.Bundle;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
@@ -23,17 +22,11 @@
import java.util.Map;
/** QuickActionsPlugin */
-@SuppressWarnings("unchecked")
public class QuickActionsPlugin implements MethodCallHandler {
- private final Registrar registrar;
- private static final String intentExtraAction = "action";
- private static String launchAction = null;
+ private static final String CHANNEL_ID = "plugins.flutter.io/quick_actions";
+ private static final String EXTRA_ACTION = "some unique action key";
- // Channel is a static field because it needs to be accessible to the
- // {@link ShortcutHandlerActivity} which has to be a static class with
- // no-args constructor.
- // It is also mutable because it is derived from {@link Registrar}.
- private static MethodChannel channel;
+ private final Registrar registrar;
private QuickActionsPlugin(Registrar registrar) {
this.registrar = registrar;
@@ -45,13 +38,11 @@ private QuickActionsPlugin(Registrar registrar) {
*
Must be called when the application is created.
*/
public static void registerWith(Registrar registrar) {
- channel = new MethodChannel(registrar.messenger(), "plugins.flutter.io/quick_actions");
+ final MethodChannel channel = new MethodChannel(registrar.messenger(), CHANNEL_ID);
channel.setMethodCallHandler(new QuickActionsPlugin(registrar));
- launchAction = registrar.activity().getIntent().getStringExtra(intentExtraAction);
}
@Override
- @SuppressLint("NewApi")
public void onMethodCall(MethodCall call, Result result) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {
// We already know that this functionality does not work for anything
@@ -72,8 +63,13 @@ public void onMethodCall(MethodCall call, Result result) {
shortcutManager.removeAllDynamicShortcuts();
break;
case "getLaunchAction":
+ final Intent intent = registrar.activity().getIntent();
+ final String launchAction = intent.getStringExtra(EXTRA_ACTION);
+ if (launchAction != null && !launchAction.isEmpty()) {
+ shortcutManager.reportShortcutUsed(launchAction);
+ intent.removeExtra(EXTRA_ACTION);
+ }
result.success(launchAction);
- launchAction = null;
return;
default:
result.notImplemented();
@@ -82,69 +78,56 @@ public void onMethodCall(MethodCall call, Result result) {
result.success(null);
}
- @SuppressLint("NewApi")
+ @TargetApi(Build.VERSION_CODES.N_MR1)
private List deserializeShortcuts(List