Ë
    {D™j¡-  ã                  ó0  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZ  G d„ d	e«      Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Z ed¬
«      dd„«       Zd	gZy)zAndroid.é    )ÚannotationsN)Ú	lru_cache)ÚTYPE_CHECKINGÚcasté   )ÚPlatformDirsABCc                  óö  — e Zd ZdZedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Z	edd„«       Z
edd„«       Zedd	„«       Zedd
„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zedd„«       Zy)ÚAndroidaî  Platform directories for Android.

    Follows the guidance `from here <https://android.stackexchange.com/a/216132>`_. Directories are typically located
    under the app's private storage (``/data/user/<userid>/<packagename>/``).

    Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `version
    <platformdirs.api.PlatformDirsABC.version>`, `opinion <platformdirs.api.PlatformDirsABC.opinion>`, `ensure_exists
    <platformdirs.api.PlatformDirsABC.ensure_exists>`.

    c                óJ   — | j                  t        dt        «       «      d«      S )z\Data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``.ÚstrÚfiles©Ú_append_app_name_and_versionr   Ú_android_folder©Úselfs    ú`/var/www/html/Astrologybackend/backend/venv/lib/python3.12/site-packages/platformdirs/android.pyÚuser_data_dirzAndroid.user_data_dir   ó"   € ð ×0Ñ0´°e¼_Ó=NÓ1OÐQXÓYÐYó    c                ó   — | j                   S )z8Data directory shared by users, same as `user_data_dir`.©r   r   s    r   Úsite_data_dirzAndroid.site_data_dir   ó   € ð ×!Ñ!Ð!r   c                óJ   — | j                  t        dt        «       «      d«      S )zeConfig directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``.r   Úshared_prefsr   r   s    r   Úuser_config_dirzAndroid.user_config_dir$   s"   € ð ×0Ñ0´°e¼_Ó=NÓ1OÐQ_Ó`Ð`r   c                ó   — | j                   S )z<Config directory shared by users, same as `user_config_dir`.©r   r   s    r   Úsite_config_dirzAndroid.site_config_dir)   ó   € ð ×#Ñ#Ð#r   c                óJ   — | j                  t        dt        «       «      d«      S )z]Cache directory tied to the user, e.g.,``/data/user/<userid>/<packagename>/cache/<AppName>``.r   Úcacher   r   s    r   Úuser_cache_dirzAndroid.user_cache_dir.   r   r   c                ó   — | j                   S )z:Cache directory shared by users, same as `user_cache_dir`.)r$   r   s    r   Úsite_cache_dirzAndroid.site_cache_dir3   ó   € ð ×"Ñ"Ð"r   c                ó   — | j                   S )z:State directory tied to the user, same as `user_data_dir`.r   r   s    r   Úuser_state_dirzAndroid.user_state_dir8   r   r   c                ó   — | j                   S )z:State directory shared by users, same as `user_state_dir`.)r)   r   s    r   Úsite_state_dirzAndroid.site_state_dir=   r'   r   c                ó˜   — | j                   }| j                  r1t        j                  j	                  |d«      }| j                  |«       |S )zŸLog directory tied to the user, same as `user_cache_dir` if not opinionated else ``log`` in it, e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>/log``.Úlog©r$   ÚopinionÚosÚpathÚjoinÚ_optionally_create_directory©r   r1   s     r   Úuser_log_dirzAndroid.user_log_dirB   ó=   € ð ×"Ñ"ˆØ�<Š<Ü—7‘7—<‘<  eÓ,ˆDØ×-Ñ-¨dÔ3Øˆr   c                ó   — | j                   S )z6Log directory shared by users, same as `user_log_dir`.)r5   r   s    r   Úsite_log_dirzAndroid.site_log_dirK   ó   € ð × Ñ Ð r   c                ó   — t        «       S )zLDocuments directory tied to the user e.g. ``/storage/emulated/0/Documents``.)Ú_android_documents_folderr   s    r   Úuser_documents_dirzAndroid.user_documents_dirP   ó   € ô )Ó*Ð*r   c                ó   — t        «       S )zLDownloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``.)Ú_android_downloads_folderr   s    r   Úuser_downloads_dirzAndroid.user_downloads_dirU   r=   r   c                ó   — t        «       S )zJPictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``.)Ú_android_pictures_folderr   s    r   Úuser_pictures_dirzAndroid.user_pictures_dirZ   s   € ô (Ó)Ð)r   c                ó   — t        «       S )zKVideos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``.)Ú_android_videos_folderr   s    r   Úuser_videos_dirzAndroid.user_videos_dir_   s   € ô &Ó'Ð'r   c                ó   — t        «       S )zDMusic directory tied to the user e.g. ``/storage/emulated/0/Music``.)Ú_android_music_folderr   s    r   Úuser_music_dirzAndroid.user_music_dird   s   € ô %Ó&Ð&r   c                 ó   — y)zHDesktop directory tied to the user e.g. ``/storage/emulated/0/Desktop``.z/storage/emulated/0/Desktop© r   s    r   Úuser_desktop_dirzAndroid.user_desktop_diri   s   € ð -r   c                 ó   — y)zJProjects directory tied to the user e.g. ``/storage/emulated/0/Projects``.z/storage/emulated/0/ProjectsrK   r   s    r   Úuser_projects_dirzAndroid.user_projects_dirn   s   € ð .r   c                 ó   — y)zLPublic share directory tied to the user e.g. ``/storage/emulated/0/Public``.z/storage/emulated/0/PublicrK   r   s    r   Úuser_publicshare_dirzAndroid.user_publicshare_dirs   s   € ð ,r   c                 ó   — y)zLTemplates directory tied to the user e.g. ``/storage/emulated/0/Templates``.z/storage/emulated/0/TemplatesrK   r   s    r   Úuser_templates_dirzAndroid.user_templates_dirx   s   € ð /r   c                 ó   — y)zDFonts directory tied to the user e.g. ``/storage/emulated/0/fonts``.z/storage/emulated/0/fontsrK   r   s    r   Úuser_fonts_dirzAndroid.user_fonts_dir}   s   € ð +r   c                ó   — | j                   S )zCPreference directory tied to the user, same as ``user_config_dir``.r   r   s    r   Úuser_preference_dirzAndroid.user_preference_dir‚   r!   r   c                óh   — t         j                  j                  t        dt	        «       «      dd«      S )zUBin directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/bin``.r   r   Úbin)r0   r1   r2   r   r   r   s    r   Úuser_bin_dirzAndroid.user_bin_dir‡   s%   € ô �w‰w�|‰|œD ¬Ó(9Ó:¸GÀUÓKÐKr   c                ó   — | j                   S )z6Bin directory shared by users, same as `user_bin_dir`.)rY   r   s    r   Úsite_bin_dirzAndroid.site_bin_dirŒ   r9   r   c                ó   — | j                   S )zAApplications directory tied to the user, same as `user_data_dir`.r   r   s    r   Úuser_applications_dirzAndroid.user_applications_dir‘   r   r   c                ó   — | j                   S )zHApplications directory shared by users, same as `user_applications_dir`.)r]   r   s    r   Úsite_applications_dirzAndroid.site_applications_dir–   s   € ð ×)Ñ)Ð)r   c                ó˜   — | j                   }| j                  r1t        j                  j	                  |d«      }| j                  |«       |S )z£Runtime directory tied to the user, same as `user_cache_dir` if not opinionated else ``tmp`` in it, e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>/tmp``.Útmpr.   r4   s     r   Úuser_runtime_dirzAndroid.user_runtime_dir›   r6   r   c                ó   — | j                   S )z>Runtime directory shared by users, same as `user_runtime_dir`.)rb   r   s    r   Úsite_runtime_dirzAndroid.site_runtime_dir¤   s   € ð ×$Ñ$Ð$r   N©Úreturnr   ) Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r    r$   r&   r)   r+   r5   r8   r<   r@   rC   rF   rI   rL   rN   rP   rR   rT   rV   rY   r[   r]   r_   rb   rd   rK   r   r   r
   r
      s+  „ ñ	ð òZó ðZð ò"ó ð"ð òaó ðað ò$ó ð$ð òZó ðZð ò#ó ð#ð ò"ó ð"ð ò#ó ð#ð òó ðð ò!ó ð!ð ò+ó ð+ð ò+ó ð+ð ò*ó ð*ð ò(ó ð(ð ò'ó ð'ð ò-ó ð-ð ò.ó ð.ð ò,ó ð,ð ò/ó ð/ð ò+ó ð+ð ò$ó ð$ð òLó ðLð ò!ó ð!ð ò"ó ð"ð ò*ó ð*ð òó ðð ò%ó ñ%r   r
   )Úmaxsizec                 óÄ  — d} t         sM	 ddlm} t        d|j	                  «       «      }|j                  «       j                  «       j                  «       } | €;	 ddl	m
}  |d«      }|j                  «       j                  «       j                  «       } | €St        j                  d«      }t        j                  D ])  }|j                  |«      sŒ|j!                  d«      d   }  n d} | €Tt        j                  d«      }t        j                  D ]*  }|j                  |«      sŒ|j!                  d«      d   }  | S  d} | S # t        $ r d} Y Œ÷w xY w# t        $ r d} Y ŒËw xY w)	zF:returns: base folder for the Android OS or None if it cannot be foundNr   )Ú	mActivityúandroid.content.Context©Ú	autoclassz /data/(data|user/\d+)/(.+)/filesz/filesz7/mnt/expand/[a-fA-F0-9-]{36}/(data|user/\d+)/(.+)/files)r   Úandroidrn   r   ÚgetApplicationContextÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚjniusrq   ÚreÚcompileÚsysr1   ÚmatchÚsplit)Úresultrn   Úcontextrq   Úpatternr1   s         r   r   r   ª   sf  € ð €Fõ ð	å)äÐ4°i×6UÑ6UÓ6WÓXˆGØ×(Ñ(Ó*×8Ñ8Ó:×JÑJÓLˆFð €~ð	õ (áÐ 9Ó:ˆGØ×(Ñ(Ó*×8Ñ8Ó:×JÑJÓLˆFð €~ô —*‘*Ð@ÓAˆÜ—H‘Hò 	ˆDØ�}‰}˜TÕ"ØŸ™ HÓ-¨aÑ0�Ùð	ð
 ˆFØ€~ô —*‘*ÐWÓXˆÜ—H‘Hò 	ˆDØ�}‰}˜TÕ"ØŸ™ HÓ-¨aÑ0�Øð €Mð	ð
 ˆFØ€MøôA ò 	ØŠFð	ûô ò 	ØŠFð	ús$   ŠAE  Á:E Å EÅEÅEÅEc                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z-:returns: documents folder for the Android OSr   rp   ro   úandroid.os.Environmentz/storage/emulated/0/Documents)rx   rq   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrv   rw   )rq   r   ÚenvironmentÚdocuments_dirs       r   r;   r;   Ú   óc   € ð8Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ$×8Ñ8¸×9XÑ9XÓY×iÑiÓkˆð Ðøô ò 8Ø7‰àÐð8úó   ‚?A ÁAÁAc                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z-:returns: downloads folder for the Android OSr   rp   ro   r‚   z/storage/emulated/0/Downloads)rx   rq   rƒ   ÚDIRECTORY_DOWNLOADSrv   rw   )rq   r   r…   Údownloads_dirs       r   r?   r?   ê   r‡   rˆ   c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z,:returns: pictures folder for the Android OSr   rp   ro   r‚   z/storage/emulated/0/Pictures)rx   rq   rƒ   ÚDIRECTORY_PICTURESrv   rw   )rq   r   r…   Úpictures_dirs       r   rB   rB   ú   sc   € ð6Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ#×7Ñ7¸×8VÑ8VÓW×gÑgÓiˆð Ðøô ò 6Ø5‰àÐð6úrˆ   c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z*:returns: videos folder for the Android OSr   rp   ro   r‚   z/storage/emulated/0/DCIM/Camera)rx   rq   rƒ   ÚDIRECTORY_DCIMrv   rw   )rq   r   r…   Ú
videos_dirs       r   rE   rE   
  sc   € ð7Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ!×5Ñ5°k×6PÑ6PÓQ×aÑaÓcˆ
ð Ðøô ò 7Ø6‰
àÐð7úrˆ   c                 óª   — 	 ddl m}   | d«      } | d«      }|j                  |j                  «      j	                  «       }|S # t
        $ r d}Y |S w xY w)z):returns: music folder for the Android OSr   rp   ro   r‚   z/storage/emulated/0/Music)rx   rq   rƒ   ÚDIRECTORY_MUSICrv   rw   )rq   r   r…   Ú	music_dirs       r   rH   rH     sc   € ð0Ý#áÐ5Ó6ˆÙÐ 8Ó9ˆØ ×4Ñ4°[×5PÑ5PÓQ×aÑaÓcˆ	ð Ðøô ò 0Ø/‰	àÐð0úrˆ   )rf   z
str | Nonere   )rj   Ú
__future__r   r0   ry   r{   Ú	functoolsr   Útypingr   r   Úapir   r
   r   r;   r?   rB   rE   rH   Ú__all__rK   r   r   ú<module>rš      sÏ   ðÙ å "ã 	Û 	Û 
Ý ß &å  ôY%ˆoô Y%ñx �1Ôò,ó ð,ñ^ �1Ôòó ðñ �1Ôòó ðñ �1Ôòó ðñ �1Ôòó ðñ �1Ôòó ðð  ð�r   