11from abc import ABC , abstractmethod
2- from typing import Callable , Optional
2+ from typing import Any , Callable , Optional
33
44from .utils import IS_ANDROID , get_android_context
55from .view import ViewBase
@@ -15,15 +15,15 @@ def __init__(self) -> None:
1515 super ().__init__ ()
1616
1717 @abstractmethod
18- def set_title (self , title : str ) -> None :
18+ def set_title (self , title : str ) -> "ButtonBase" :
1919 pass
2020
2121 @abstractmethod
2222 def get_title (self ) -> str :
2323 pass
2424
2525 @abstractmethod
26- def set_on_click (self , callback : Callable [[], None ]) -> None :
26+ def set_on_click (self , callback : Callable [[], None ]) -> "ButtonBase" :
2727 pass
2828
2929
@@ -43,20 +43,20 @@ def __init__(self, title: str = "") -> None:
4343 self .native_instance = self .native_class (context )
4444 self .set_title (title )
4545
46- def set_title (self , title : str ):
46+ def set_title (self , title : str ) -> "Button" :
4747 self .native_instance .setText (title )
4848 return self
4949
5050 def get_title (self ) -> str :
5151 return self .native_instance .getText ().toString ()
5252
53- def set_on_click (self , callback : Callable [[], None ]):
53+ def set_on_click (self , callback : Callable [[], None ]) -> "Button" :
5454 class OnClickListener (dynamic_proxy (jclass ("android.view.View" ).OnClickListener )):
55- def __init__ (self , callback ) :
55+ def __init__ (self , callback : Callable [[], None ]) -> None :
5656 super ().__init__ ()
5757 self .callback = callback
5858
59- def onClick (self , view ) :
59+ def onClick (self , view : Any ) -> None :
6060 self .callback ()
6161
6262 listener = OnClickListener (callback )
@@ -79,7 +79,7 @@ class _PNButtonHandler(NSObject): # type: ignore[valid-type]
7979 _callback : Optional [Callable [[], None ]] = None
8080
8181 @objc_method
82- def onTap_ (self , sender ) -> None :
82+ def onTap_ (self , sender : Any ) -> None :
8383 try :
8484 callback = self ._callback
8585 if callback is not None :
@@ -95,14 +95,14 @@ def __init__(self, title: str = "") -> None:
9595 self .native_instance = self .native_class .alloc ().init ()
9696 self .set_title (title )
9797
98- def set_title (self , title : str ):
98+ def set_title (self , title : str ) -> "Button" :
9999 self .native_instance .setTitle_forState_ (title , 0 )
100100 return self
101101
102102 def get_title (self ) -> str :
103103 return self .native_instance .titleForState_ (0 )
104104
105- def set_on_click (self , callback : Callable [[], None ]):
105+ def set_on_click (self , callback : Callable [[], None ]) -> "Button" :
106106 # Create a handler object with an Objective-C method `onTap:` and attach the Python callback
107107 handler = _PNButtonHandler .new ()
108108 # Keep strong references to the handler and callback
0 commit comments