fix bug that onOpenListener is not called