§
     h+  ã                  ó|  — 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	 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dS )zAndroid.é    )ÚannotationsN)Ú	lru_cache)Úcasté   )ÚPlatformDirsABCc                  ób  — 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dS )ÚAndroida$  
    Follows the guidance `from here <https://android.stackexchange.com/a/216132>`_. Makes use of the
    `appname <platformdirs.api.PlatformDirsABC.appname>`,
    `version <platformdirs.api.PlatformDirsABC.version>`,
    `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.
    ÚreturnÚstrc                ól   — |                       t          t          t          ¦   «         ¦  «        d¦  «        S )zd:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``Úfiles©Ú_append_app_name_and_versionr   r   Ú_android_folder©Úselfs    úZc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pip/_vendor/platformdirs/android.pyÚuser_data_dirzAndroid.user_data_dir   ó*   € ð ×0Ò0µµc½?Ñ;LÔ;LÑ1MÔ1MÈwÑWÔWÐWó    c                ó   — | j         S )z@:return: data directory shared by users, same as `user_data_dir`©r   r   s    r   Úsite_data_dirzAndroid.site_data_dir   ó   € ð Ô!Ð!r   c                ól   — |                       t          t          t          ¦   «         ¦  «        d¦  «        S )z‡
        :return: config directory tied to the user, e.g.         ``/data/user/<userid>/<packagename>/shared_prefs/<AppName>``
        Úshared_prefsr   r   s    r   Úuser_config_dirzAndroid.user_config_dir   s*   € ð ×0Ò0µµc½?Ñ;LÔ;LÑ1MÔ1MÈ~Ñ^Ô^Ð^r   c                ó   — | j         S )zH:return: config directory shared by the users, same as `user_config_dir`)r   r   s    r   Úsite_config_dirzAndroid.site_config_dir'   s   € ð Ô#Ð#r   c                ól   — |                       t          t          t          ¦   «         ¦  «        d¦  «        S )zj:return: cache directory tied to the user, e.g. e.g. ``/data/user/<userid>/<packagename>/cache/<AppName>``Úcacher   r   s    r   Úuser_cache_dirzAndroid.user_cache_dir,   r   r   c                ó   — | j         S )zB:return: cache directory shared by users, same as `user_cache_dir`)r"   r   s    r   Úsite_cache_dirzAndroid.site_cache_dir1   s   € ð Ô"Ð"r   c                ó   — | j         S )zB:return: state directory tied to the user, same as `user_data_dir`r   r   s    r   Úuser_state_dirzAndroid.user_state_dir6   r   r   c                ób   — | j         }| j        r t          j                             |d¦  «        }|S )zÃ
        :return: 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©r   r,   s     r   Úuser_log_dirzAndroid.user_log_dir;   ó0   € ð Ô"ˆØŒ<ð 	-Ý”7—<’<  eÑ,Ô,ˆDØˆr   c                ó   — t          ¦   «         S )zT:return: documents directory tied to the user e.g. ``/storage/emulated/0/Documents``)Ú_android_documents_folderr   s    r   Úuser_documents_dirzAndroid.user_documents_dirF   ó   € õ )Ñ*Ô*Ð*r   c                ó   — t          ¦   «         S )zT:return: downloads directory tied to the user e.g. ``/storage/emulated/0/Downloads``)Ú_android_downloads_folderr   s    r   Úuser_downloads_dirzAndroid.user_downloads_dirK   r4   r   c                ó   — t          ¦   «         S )zR:return: pictures directory tied to the user e.g. ``/storage/emulated/0/Pictures``)Ú_android_pictures_folderr   s    r   Úuser_pictures_dirzAndroid.user_pictures_dirP   s   € õ (Ñ)Ô)Ð)r   c                ó   — t          ¦   «         S )zS:return: videos directory tied to the user e.g. ``/storage/emulated/0/DCIM/Camera``)Ú_android_videos_folderr   s    r   Úuser_videos_dirzAndroid.user_videos_dirU   s   € õ &Ñ'Ô'Ð'r   c                ó   — t          ¦   «         S )zL:return: music directory tied to the user e.g. ``/storage/emulated/0/Music``)Ú_android_music_folderr   s    r   Úuser_music_dirzAndroid.user_music_dirZ   s   € õ %Ñ&Ô&Ð&r   c                ób   — | j         }| j        r t          j                             |d¦  «        }|S )zÇ
        :return: 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)   r.   s     r   Úuser_runtime_dirzAndroid.user_runtime_dir_   r0   r   N©r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r"   r$   r&   r/   r3   r7   r:   r=   r@   rC   © r   r   r	   r	      sê  € € € € € ðð ð ðXð Xð Xñ „XðXð ð"ð "ð "ñ „Xð"ð ð_ð _ð _ñ „Xð_ð ð$ð $ð $ñ „Xð$ð ðXð Xð Xñ „XðXð ð#ð #ð #ñ „Xð#ð ð"ð "ð "ñ „Xð"ð ðð ð ñ „Xðð ð+ð +ð +ñ „Xð+ð ð+ð +ð +ñ „Xð+ð ð*ð *ð *ñ „Xð*ð ð(ð (ð (ñ „Xð(ð ð'ð 'ð 'ñ „Xð'ð ðð ð ñ „Xðð ð r   r	   )Úmaxsizer
   ú
str | Nonec                 ój  — 	 ddl m}   | d¦  «        }|                     ¦   «                              ¦   «                              ¦   «         }ng# t
          $ rZ t          j        d¦  «        }t          j	        D ]4}| 
                    |¦  «        r|                     d¦  «        d         } nŒ5d}Y nw xY w|S )zE:return: base folder for the Android OS or None if it cannot be foundr   ©Ú	autoclassúandroid.content.Contextz /data/(data|user/\d+)/(.+)/filesz/filesN)ÚjniusrO   ÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚreÚcompileÚsysr,   ÚmatchÚsplit)rO   ÚcontextÚresultÚpatternr,   s        r   r   r   k   sÔ   € ðà#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ$×0Ò0Ñ2Ô2×@Ò@ÑBÔB×RÒRÑTÔTˆˆøÝð ð ð å”*Ð@ÑAÔAˆÝ”Hð 	ð 	ˆDØ�}Š}˜TÑ"Ô"ð ØŸš HÑ-Ô-¨aÔ0�Ø�ðð ˆFøøðøøøð €Ms   ‚A	A ÁA!B0Â/B0r   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z,:return: documents folder for the Android OSr   rN   rP   úandroid.os.Environmentz/storage/emulated/0/Documents)rQ   rO   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrT   rU   )rO   r[   ÚenvironmentÚdocuments_dirs       r   r2   r2   €   ó‰   € ð8Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ$×8Ò8¸Ô9XÑYÔY×iÒiÑkÔkˆˆøÝð 8ð 8ð 8Ø7ˆˆˆð8øøøð Ðó   ‚AA ÁAÁAc                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z,:return: downloads folder for the Android OSr   rN   rP   r_   z/storage/emulated/0/Downloads)rQ   rO   r`   ÚDIRECTORY_DOWNLOADSrT   rU   )rO   r[   rb   Údownloads_dirs       r   r6   r6   �   rd   re   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z+:return: pictures folder for the Android OSr   rN   rP   r_   z/storage/emulated/0/Pictures)rQ   rO   r`   ÚDIRECTORY_PICTURESrT   rU   )rO   r[   rb   Úpictures_dirs       r   r9   r9       s‰   € ð6Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ#×7Ò7¸Ô8VÑWÔW×gÒgÑiÔiˆˆøÝð 6ð 6ð 6Ø5ˆˆˆð6øøøð Ðre   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z):return: videos folder for the Android OSr   rN   rP   r_   z/storage/emulated/0/DCIM/Camera)rQ   rO   r`   ÚDIRECTORY_DCIMrT   rU   )rO   r[   rb   Ú
videos_dirs       r   r<   r<   °   s‰   € ð7Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ!×5Ò5°kÔ6PÑQÔQ×aÒaÑcÔcˆ
ˆ
øÝð 7ð 7ð 7Ø6ˆ
ˆ
ˆ
ð7øøøð Ðre   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z(:return: music folder for the Android OSr   rN   rP   r_   z/storage/emulated/0/Music)rQ   rO   r`   ÚDIRECTORY_MUSICrT   rU   )rO   r[   rb   Ú	music_dirs       r   r?   r?   À   s‰   € ð0Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ ×4Ò4°[Ô5PÑQÔQ×aÒaÑcÔcˆ	ˆ	øÝð 0ð 0ð 0Ø/ˆ	ˆ	ˆ	ð0øøøð Ðre   )r
   rL   rD   )rH   Ú
__future__r   r+   rV   rX   Ú	functoolsr   Útypingr   Úapir   r	   r   r2   r6   r9   r<   r?   Ú__all__rJ   r   r   ú<module>rw      sÄ  ðØ €Ø "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  ð[ð [ð [ð [ð [ˆoñ [ô [ð [ð| €�1ÐÑÔðð ð ñ Ôðð( €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð  ð€€€r   