Skip to content

Conversation

@fadi-george
Copy link
Collaborator

@fadi-george fadi-george commented Dec 29, 2025

One Line Summary

  • fixes minor formatting issues and improves the logic for handling hot restarts on Android and iOS

Details

  • use singelton pattenrs for most of the class instances (User, Notifications)
  • then in lifecycle inits we remove the old observers

Hot Restart Bug for iOS:

flutter-main-ios-bug.mov

Hot Restart Bug for Android:

flutter-main-android-bug.mov

Hot Restart Fix for iOS:

flutter-hotrestart-fix-ios.mov

Hot Restart Fix for Android:

flutter-hotrestart-fix-android.mov

Motivation

Manual testing

  • install flutter extension
  • you can use vscode / cursor (call action Flutter: Launch Emulator)
  • select ios or android device
  • go the example/lib/main.dart file then start debugging (you may need flutter extension)

Affected code checklist

  • Notifications
    • Display
    • Open
    • Push Processing
    • Confirm Deliveries
  • Outcomes
  • Sessions
  • In-App Messaging
  • REST API requests
  • Public API changes

Checklist

Overview

  • I have filled out all REQUIRED sections above
  • PR does one thing
    • If it is hard to explain how any codes changes are related to each other then it most likely needs to be more than one PR
  • Any Public API changes are explained in the PR details and conform to existing APIs

Testing

  • I have included test coverage for these changes, or explained why they are not needed
  • All automated tests pass, or I explained why that is not possible
  • I have personally tested this on my device, or explained why that is not possible

Final pass

  • Code is as readable as possible.
    • Simplify with less code, followed by splitting up code into well named functions and variables, followed by adding comments to the code.
  • I have reviewed this PR myself, ensuring it meets each checklist item
    • WIP (Work In Progress) is ok, but explain what is still in progress and what you would like feedback on. Start the PR title with "WIP" to indicate this.

This change is Reviewable

@fadi-george fadi-george requested a review from a team as a code owner December 29, 2025 21:52
@fadi-george fadi-george changed the title Fixes formatting and hot reload issues fix: address hot reloading issues Dec 29, 2025
Copy link
Contributor

@nan-li nan-li left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I'm concerned about adding complexity for a dev-only scenario. Idk if there are any production side effects? Do you know if some lifecycle callbacks like onDetachedFromEngine could work instead?

channel = new MethodChannel(messenger, "OneSignal");
channel.setMethodCallHandler(this);

channel = new MethodChannel(messenger, "OneSignal");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added twice?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants