Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ios): fix duplicate application delegate allocation #14028

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

hansemannn
Copy link
Collaborator

While debugging the open scene-related bug that push registration did not fire the events properly, I noticed that during the scene integration, the main app router TiApp was instantiated twice, leading to an unpredicated behavior in the call tree.

I fixed the issue by moving out all scene-related delegates into an own class that is only called by the initial scene configuration that calls the related TiApp code via it's Scenes ObjC extension.

I would like to prompt anyone reading this PR to test it properly, as it's (again) a pretty large change to polish the scene integration.

Open Todos:

  • Resolve warnings about duplicate selector implementation in TiApp and it's category TiApp (Addons)
  • Tested and approved by at least three community members

For the push-related testing, the following snippet will help:

const win = Ti.UI.createWindow({ backgroundColor: 'yellow' });

win.addEventListener('open', registerForPush);
win.open();

function registerForPush() {
	Ti.App.iOS.addEventListener('usernotificationsettings', function eventUserNotificationSettings() {
		Ti.App.iOS.removeEventListener('usernotificationsettings', eventUserNotificationSettings);

		Ti.Network.registerForPushNotifications({
			success: () => {
				console.warn('Successfully registered for push notifications!');
			},
			error: event => {
				console.error('Cannot register for push notifications!', event);
			},
			callback: event => {
				console.warn('Push arrived!');
				console.warn(event.data);
			}
		});
	});

	Ti.App.iOS.registerUserNotificationSettings({
		types: [
			Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT,
			Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND,
			Ti.App.iOS.USER_NOTIFICATION_TYPE_BADGE
		]
	});
}

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.

None yet

1 participant