Skip to content

Commit 64a4def

Browse files
authored
Merge pull request #136 from aryaveer0710/master
Fixed WindowServiceNew.<init> crash
2 parents 4d84275 + ad982ad commit 64a4def

File tree

5 files changed

+16
-16
lines changed

5 files changed

+16
-16
lines changed

android/src/main/java/in/jvapps/system_alert_window/BubbleActivity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@
3636

3737
public class BubbleActivity extends AppCompatActivity {
3838

39-
private LinearLayout bubbleLayout;
40-
private HashMap<String, Object> paramsMap;
4139
private FlutterView flutterView;
4240

4341
private Context mContext;

android/src/main/java/in/jvapps/system_alert_window/SystemAlertWindowPlugin.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import io.flutter.plugin.common.BasicMessageChannel;
2121
import io.flutter.plugin.common.JSONMessageCodec;
2222

23-
public class SystemAlertWindowPlugin implements FlutterPlugin, ActivityAware,BasicMessageChannel.MessageHandler {
23+
public class SystemAlertWindowPlugin implements FlutterPlugin, ActivityAware, BasicMessageChannel.MessageHandler {
2424

2525
private boolean isInitialized;
2626

@@ -79,7 +79,6 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBindin
7979
messenger = new BasicMessageChannel<>(flutterPluginBinding.getBinaryMessenger(), Constants.MESSAGE_CHANNEL,
8080
JSONMessageCodec.INSTANCE);
8181
messenger.setMessageHandler(this);
82-
Commons.messenger = messenger;
8382
}
8483

8584
@Override
@@ -97,12 +96,19 @@ public void onAttachedToActivity(@NonNull ActivityPluginBinding activityPluginBi
9796
LogUtils.getInstance().d(TAG, "Initializing on attached to activity");
9897
if (methodCallHandler != null) {
9998
methodCallHandler.setActivity(activityPluginBinding.getActivity());
100-
FlutterEngineGroup enn = new FlutterEngineGroup(context);
101-
DartExecutor.DartEntrypoint dEntry = new DartExecutor.DartEntrypoint(
102-
FlutterInjector.instance().flutterLoader().findAppBundlePath(),
103-
"overlayMain");
104-
FlutterEngine engine = enn.createAndRunEngine(context, dEntry);
105-
FlutterEngineCache.getInstance().put(Constants.FLUTTER_CACHE_ENGINE, engine);
99+
try {
100+
FlutterEngine existingEngine = FlutterEngineCache.getInstance().get(Constants.FLUTTER_CACHE_ENGINE);
101+
if(existingEngine==null){
102+
FlutterEngineGroup enn = new FlutterEngineGroup(context);
103+
DartExecutor.DartEntrypoint dEntry = new DartExecutor.DartEntrypoint(
104+
FlutterInjector.instance().flutterLoader().findAppBundlePath(),
105+
"overlayMain");
106+
FlutterEngine engine = enn.createAndRunEngine(context, dEntry);
107+
FlutterEngineCache.getInstance().put(Constants.FLUTTER_CACHE_ENGINE, engine);
108+
}
109+
} catch (Exception e) {
110+
LogUtils.getInstance().e(TAG, "Error initializing FlutterEngine: " + e.getMessage());
111+
}
106112

107113
}
108114
this.pluginBinding = activityPluginBinding;

android/src/main/java/in/jvapps/system_alert_window/services/WindowServiceNew.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ public class WindowServiceNew extends Service implements View.OnTouchListener {
6464

6565
private float offsetY;
6666
private boolean moving;
67-
private BasicMessageChannel<Object> overlayMessageChannel = new BasicMessageChannel(FlutterEngineCache.getInstance().get(Constants.FLUTTER_CACHE_ENGINE).getDartExecutor(), Constants.MESSAGE_CHANNEL, JSONMessageCodec.INSTANCE);
68-
6967
@SuppressLint("UnspecifiedImmutableFlag")
7068
@Override
7169
public void onCreate() {
@@ -189,7 +187,6 @@ private void createWindow(HashMap<String, Object> paramsMap) {
189187
flutterView.setFocusable(true);
190188
flutterView.setFocusableInTouchMode(true);
191189
flutterView.setBackgroundColor(Color.TRANSPARENT);
192-
overlayMessageChannel.setMessageHandler((message, reply) -> Commons.messenger.send(message));
193190
flutterView.setOnTouchListener(this);
194191
try {
195192
windowManager.addView(flutterView, params);

android/src/main/java/in/jvapps/system_alert_window/utils/Commons.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ public static Map<String, Object> getMapFromObject(@NonNull Map<String, Object>
3434
public static List<Map<String, Object>> getMapListFromObject(@NonNull Map<String, Object> map, String key) {
3535
return (List<Map<String, Object>>) map.get(key);
3636
}
37-
public static BasicMessageChannel<Object> messenger = null;
38-
3937

4038
public static boolean getIsClicksDisabled(@NonNull Map<String, Object> paramsMap) {
4139
Object isDisableClicksObj = paramsMap.get(KEY_IS_DISABLE_CLICKS);

lib/system_alert_window.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,12 @@ class SystemAlertWindow {
100100
.invokeMethod('updateSystemWindow', [notificationTitle, notificationBody, params, Commons.getSystemWindowPrefMode(prefMode)]);
101101
}
102102

103-
/// Broadcast data to overlay app
103+
/// Broadcast data to system window
104104
static Future sendMessageToOverlay(dynamic data) async {
105105
return await _overlayMessageChannel.send(data);
106106
}
107107

108+
/// Read data in system window
108109
static Stream<dynamic> get overlayListener {
109110
_overlayMessageChannel.setMessageHandler((message) async {
110111
_controller.add(message);

0 commit comments

Comments
 (0)