Skip to content

Commit

Permalink
fix receive share from background
Browse files Browse the repository at this point in the history
  • Loading branch information
Duarte Silveira committed Jun 4, 2018
1 parent eb8de5e commit 4833037
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
Expand Up @@ -9,6 +9,7 @@

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import io.flutter.app.FlutterActivity;
Expand All @@ -34,7 +35,9 @@ public class FlutterShareReceiverActivity extends FlutterActivity {
public static final String STREAM = "plugins.flutter.io/receiveshare";

private EventChannel.EventSink eventSink = null;
private boolean inited = false;
private boolean inited = false;
private List<Intent> backlog = new ArrayList<>();
private boolean ignoring = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -56,17 +59,24 @@ public void init(BinaryMessenger flutterView, Context context) {
public void onListen(Object args, EventChannel.EventSink events) {
Log.i(getClass().getSimpleName(), "adding listener");
eventSink = events;
ignoring = false;
for (int i = 0; i < backlog.size(); i++) {
handleIntent(backlog.remove(i));
}
}

@Override
public void onCancel(Object args) {
Log.i(getClass().getSimpleName(), "cancelling listener");
ignoring = true;
eventSink = null;
}
});

inited = true;

handleIntent(getIntent());

}

@Override
Expand Down Expand Up @@ -94,6 +104,8 @@ public void handleIntent(Intent intent) {
params.put(TITLE, sharedTitle);
}
eventSink.success(params);
} else if (!ignoring && !backlog.contains(intent)) {
backlog.add(intent);
}
} else {
String sharedTitle = intent.getStringExtra(Intent.EXTRA_SUBJECT);
Expand All @@ -111,6 +123,8 @@ public void handleIntent(Intent intent) {
params.put(TEXT, intent.getStringExtra(Intent.EXTRA_TEXT));
}
eventSink.success(params);
} else if (!ignoring && !backlog.contains(intent)) {
backlog.add(intent);
}
}

Expand All @@ -125,6 +139,8 @@ public void handleIntent(Intent intent) {
params.put(Integer.toString(i), uris.get(i).toString());
}
eventSink.success(params);
} else if (!ignoring && !backlog.contains(intent)) {
backlog.add(intent);
}

}
Expand Down
1 change: 1 addition & 0 deletions example/lib/main.dart
Expand Up @@ -30,6 +30,7 @@ class DemoAppState extends ReceiveShareState<DemoApp> {

@override
Widget build(BuildContext context) {
enableShareReceiving();
return new MaterialApp(
title: 'Share Plugin Demo',
home: new Scaffold(
Expand Down
2 changes: 1 addition & 1 deletion lib/share.dart
Expand Up @@ -16,7 +16,7 @@ class ShareType {
static const ShareType TYPE_FILE = const ShareType._internal("*/*");

static List<ShareType> values() {
List values = List<ShareType>();
List values = new List<ShareType>();
values.add(TYPE_PLAIN_TEXT);
values.add(TYPE_IMAGE);
values.add(TYPE_FILE);
Expand Down

0 comments on commit 4833037

Please sign in to comment.