44import re
55import sys
66from functools import lru_cache
7+ from typing import cast
78
89from .api import PlatformDirsABC
910
@@ -18,7 +19,7 @@ class Android(PlatformDirsABC):
1819 @property
1920 def user_data_dir (self ) -> str :
2021 """:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``"""
21- return self ._append_app_name_and_version (_android_folder (), "files" )
22+ return self ._append_app_name_and_version (cast ( str , _android_folder () ), "files" )
2223
2324 @property
2425 def site_data_dir (self ) -> str :
@@ -30,7 +31,7 @@ def user_config_dir(self) -> str:
3031 """
3132 :return: config directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
3233 """
33- return self ._append_app_name_and_version (_android_folder (), "shared_prefs" )
34+ return self ._append_app_name_and_version (cast ( str , _android_folder () ), "shared_prefs" )
3435
3536 @property
3637 def site_config_dir (self ) -> str :
@@ -40,7 +41,7 @@ def site_config_dir(self) -> str:
4041 @property
4142 def user_cache_dir (self ) -> str :
4243 """:return: cache directory tied to the user, e.g. e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>``"""
43- return self ._append_app_name_and_version (_android_folder (), "cache" )
44+ return self ._append_app_name_and_version (cast ( str , _android_folder () ), "cache" )
4445
4546 @property
4647 def user_state_dir (self ) -> str :
@@ -78,14 +79,14 @@ def user_runtime_dir(self) -> str:
7879
7980
8081@lru_cache (maxsize = 1 )
81- def _android_folder () -> str :
82- """:return: base folder for the Android OS"""
82+ def _android_folder () -> str | None :
83+ """:return: base folder for the Android OS or None if cannot be found """
8384 try :
8485 # First try to get path to android app via pyjnius
8586 from jnius import autoclass
8687
8788 Context = autoclass ("android.content.Context" ) # noqa: N806
88- result : str = Context .getFilesDir ().getParentFile ().getAbsolutePath ()
89+ result : str | None = Context .getFilesDir ().getParentFile ().getAbsolutePath ()
8990 except Exception :
9091 # if fails find an android folder looking path on the sys.path
9192 pattern = re .compile (r"/data/(data|user/\d+)/(.+)/files" )
@@ -94,7 +95,7 @@ def _android_folder() -> str:
9495 result = path .split ("/files" )[0 ]
9596 break
9697 else :
97- raise OSError ( "Cannot find path to android app folder" )
98+ result = None
9899 return result
99100
100101
0 commit comments