Skip to content

Commit 20b261e

Browse files
dekartAndrey Kuprievclaude
committed
Fix: prevent unintended app launch with Firebase + audio_service
Apply changes from PR ryanheise#1011 by @anocean2 (Andrey Kupriev). This fixes the issue where Firebase messages cause the app to launch when it shouldn't by adding a startup guard to AudioServiceActivity. Changes: - Add armStartup flag to AudioServicePlugin - getFlutterEngine() returns null when not armed - AudioServiceActivity calls setArmStartup(true) before getting engine Original PR: ryanheise#1011 Co-Authored-By: Andrey Kupriev <kuprievao@intech.rshb.ru> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2895770 commit 20b261e

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

audio_service/android/src/main/java/com/ryanheise/audioservice/AudioServiceActivity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
public class AudioServiceActivity extends FlutterActivity {
1111
@Override
1212
public FlutterEngine provideFlutterEngine(@NonNull Context context) {
13+
AudioServicePlugin.setArmStartup(true);
1314
return AudioServicePlugin.getFlutterEngine(context);
1415
}
1516
}

audio_service/android/src/main/java/com/ryanheise/audioservice/AudioServicePlugin.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@
5959
* AudioservicePlugin
6060
*/
6161
public class AudioServicePlugin implements FlutterPlugin, ActivityAware {
62+
private static boolean armStartup = false;
63+
public static synchronized void setArmStartup(boolean enabled) {
64+
armStartup = enabled;
65+
}
6266
private static String flutterEngineId = "audio_service_engine";
6367
/** Must be called BEFORE any FlutterEngine is created. e.g. in Application class. */
6468
public static void setFlutterEngineId(String id) {
@@ -67,7 +71,11 @@ public static void setFlutterEngineId(String id) {
6771
public static String getFlutterEngineId() {
6872
return flutterEngineId;
6973
}
74+
7075
public static synchronized FlutterEngine getFlutterEngine(Context context) {
76+
if (armStartup == false) {
77+
return null;
78+
}
7179
FlutterEngine flutterEngine = FlutterEngineCache.getInstance().get(flutterEngineId);
7280
if (flutterEngine == null) {
7381
// XXX: The constructor triggers onAttachedToEngine so this variable doesn't help us.

0 commit comments

Comments
 (0)