§
    ïyIf  ã                  ó|  — 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                  ó’  — 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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    úH/var/www/piapp/venv/lib/python3.11/site-packages/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 )ze:return: cache directory tied to the user, 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_dir3   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_dir8   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_dirH   ó   € õ )Ñ*Ô*Ð*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_dirM   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_dirR   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_dirW   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_dir\   s   € õ %Ñ&Ô&Ð&r   c                ó   — dS )zP:return: desktop 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_dira   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_dirf   r0   r   c                ó   — | j         S )zF:return: runtime directory shared by users, same as `user_runtime_dir`)rF   r   s    r   Úsite_runtime_dirzAndroid.site_runtime_dirq   s   € ð Ô$Ð$r   N©r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r   r"   r$   r&   r/   r3   r7   r:   r=   r@   rC   rF   rH   rB   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ð-ð ðð ð ñ „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)ÚjniusrS   ÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚreÚcompileÚsysr,   ÚmatchÚsplit)rS   ÚcontextÚresultÚpatternr,   s        r   r   r   w   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   rR   rT   úandroid.os.Environmentz/storage/emulated/0/Documents)rU   rS   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrX   rY   )rS   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   rR   rT   rc   z/storage/emulated/0/Downloads)rU   rS   rd   ÚDIRECTORY_DOWNLOADSrX   rY   )rS   r_   rf   Údownloads_dirs       r   r6   r6   œ   rh   ri   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   rR   rT   rc   z/storage/emulated/0/Pictures)rU   rS   rd   ÚDIRECTORY_PICTURESrX   rY   )rS   r_   rf   Ú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øøøð Ðri   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   rR   rT   rc   z/storage/emulated/0/DCIM/Camera)rU   rS   rd   ÚDIRECTORY_DCIMrX   rY   )rS   r_   rf   Ú
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øøøð Ðri   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   rR   rT   rc   z/storage/emulated/0/Music)rU   rS   rd   ÚDIRECTORY_MUSICrX   rY   )rS   r_   rf   Ú	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øøøð Ðri   )r
   rP   rI   )rM   Ú
__future__r   r+   rZ   r\   Ú	functoolsr   Útypingr   Úapir   r	   r   r2   r6   r9   r<   r?   Ú__all__rB   r   r   ú<module>r{      sÄ  ðØ €à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  ðf%ð f%ð f%ð f%ð f%ˆoñ f%ô f%ð f%ðR €�1ÐÑÔðð ð ñ Ôðð( €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð  ð€€€r   