§
    ŒŸj_)  ã                  ó€  — 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dS )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dS )Ú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>`.

    ÚreturnÚstrc                ób   — |                       t          dt          ¦   «         ¦  «        d¦  «        S )ze:returns: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``r   Úfiles©Ú_append_app_name_and_versionr   Ú_android_folder©Úselfs    úa/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/platformdirs/android.pyÚuser_data_dirzAndroid.user_data_dir   ó+   € ð ×0Ò0µ°e½_Ñ=NÔ=NÑ1OÔ1OÐQXÑYÔYÐYó    c                ó   — | j         S )zA:returns: data directory shared by users, same as `user_data_dir`©r   r   s    r   Úsite_data_dirzAndroid.site_data_dir   ó   € ð Ô!Ð!r   c                ób   — |                       t          dt          ¦   «         ¦  «        d¦  «        S )zn:returns: config 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Ô=NÑ1OÔ1OÐQ_Ñ`Ô`Ð`r   c                ó   — | j         S )zE:returns: config directory shared by users, same as `user_config_dir`)r   r   s    r   Úsite_config_dirzAndroid.site_config_dir)   s   € ð Ô#Ð#r   c                ób   — |                       t          dt          ¦   «         ¦  «        d¦  «        S )zf:returns: 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 )zC:returns: 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 )zC:returns: 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 )zC:returns: 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        r5t          j                             |d¦  «        }|                      |¦  «         |S )z¨:returns: 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   r0   s     r   Úuser_log_dirzAndroid.user_log_dirB   óD   € ð Ô"ˆØŒ<ð 	4Ý”7—<’<  eÑ,Ô,ˆDØ×-Ò-¨dÑ3Ô3Ð3Øˆr   c                ó   — | j         S )z?:returns: log directory shared by users, same as `user_log_dir`)r4   r   s    r   Úsite_log_dirzAndroid.site_log_dirK   ó   € ð Ô Ð r   c                ó   — t          ¦   «         S )zU:returns: documents 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 )zU:returns: downloads 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 )zS:returns: pictures 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 )zT:returns: videos 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 )zM:returns: music 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                ó   — dS )zQ:returns: 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_diri   s
   € ð -Ð,r   c                óx   — t           j                             t          dt	          ¦   «         ¦  «        dd¦  «        S )z^:returns: bin directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/bin``r   r   Úbin)r/   r0   r1   r   r   r   s    r   Úuser_bin_dirzAndroid.user_bin_dirn   s,   € õ Œw�|Š|�D ­Ñ(9Ô(9Ñ:Ô:¸GÀUÑKÔKÐKr   c                ó   — | j         S )z?:returns: bin directory shared by users, same as `user_bin_dir`)rN   r   s    r   Úsite_bin_dirzAndroid.site_bin_dirs   r8   r   c                ó   — | j         S )zJ:returns: applications directory tied to the user, same as `user_data_dir`r   r   s    r   Úuser_applications_dirzAndroid.user_applications_dirx   r   r   c                ó   — | j         S )zQ:returns: applications directory shared by users, same as `user_applications_dir`)rR   r   s    r   Úsite_applications_dirzAndroid.site_applications_dir}   s   € ð Ô)Ð)r   c                óŒ   — | j         }| j        r5t          j                             |d¦  «        }|                      |¦  «         |S )z¬:returns: 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-   r3   s     r   Úuser_runtime_dirzAndroid.user_runtime_dir‚   r5   r   c                ó   — | j         S )zG:returns: runtime directory shared by users, same as `user_runtime_dir`)rW   r   s    r   Úsite_runtime_dirzAndroid.site_runtime_dir‹   s   € ð Ô$Ð$r   N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r    r#   r%   r(   r*   r4   r7   r;   r?   rB   rE   rH   rK   rN   rP   rR   rT   rW   rY   rJ   r   r   r
   r
      sî  € € € € € ð	ð 	ð ðZð Zð Zñ „XðZð ð"ð "ð "ñ „Xð"ð ðað að añ „Xðað ð$ð $ð $ñ „Xð$ð ðZð Zð Zñ „XðZð ð#ð #ð #ñ „Xð#ð ð"ð "ð "ñ „Xð"ð ð#ð #ð #ñ „Xð#ð ðð ð ñ „Xðð ð!ð !ð !ñ „Xð!ð ð+ð +ð +ñ „Xð+ð ð+ð +ð +ñ „Xð+ð ð*ð *ð *ñ „Xð*ð ð(ð (ð (ñ „Xð(ð ð'ð 'ð 'ñ „Xð'ð ð-ð -ð -ñ „Xð-ð ðLð Lð Lñ „XðLð ð!ð !ð !ñ „Xð!ð ð"ð "ð "ñ „Xð"ð ð*ð *ð *ñ „Xð*ð ðð ð ñ „Xðð ð%ð %ð %ñ „Xð%ð %ð %r   r
   )Úmaxsizer   ú
str | Nonec                 ó"  — d} t           st	 ddlm} t          d|                     ¦   «         ¦  «        }|                     ¦   «                              ¦   «                              ¦   «         } n# t          $ r d} Y nw xY w| €]	 ddl	m
}  |d¦  «        }|                     ¦   «                              ¦   «                              ¦   «         } n# t          $ r d} Y nw xY w| €Wt          j        d¦  «        }t          j        D ]4}|                     |¦  «        r|                     d¦  «        d         }  nŒ5d} | €Wt          j        d¦  «        }t          j        D ]4}|                     |¦  «        r|                     d¦  «        d         }  nŒ5d} | S )	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   Úandroidrc   r   ÚgetApplicationContextÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚjniusrf   ÚreÚcompileÚsysr0   ÚmatchÚsplit)Úresultrc   Úcontextrf   Úpatternr0   s         r   r   r   ‘   sÝ  € ð €Fõ ð ð	à)Ð)Ð)Ð)Ð)Ð)åÐ4°i×6UÒ6UÑ6WÔ6WÑXÔXˆGØ×(Ò(Ñ*Ô*×8Ò8Ñ:Ô:×JÒJÑLÔLˆFˆFøÝð 	ð 	ð 	ØˆFˆFˆFð	øøøà€~ð	ð (Ð'Ð'Ð'Ð'Ð'à�iÐ 9Ñ:Ô:ˆGØ×(Ò(Ñ*Ô*×8Ò8Ñ:Ô:×JÒJÑLÔLˆFˆFøÝð 	ð 	ð 	ØˆFˆFˆFð	øøøà€~õ ”*Ð@ÑAÔAˆÝ”Hð 	ð 	ˆDØ�}Š}˜TÑ"Ô"ð ØŸš HÑ-Ô-¨aÔ0�Ø�ðð ˆFØ€~õ ”*ÐWÑXÔXˆÝ”Hð 	ð 	ˆDØ�}Š}˜TÑ"Ô"ð ØŸš HÑ-Ô-¨aÔ0�Ø�ðð ˆFØ€Ms%   ‹A A, Á,A;Á:A;ÂA	C ÃCÃCr   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z-:returns: documents folder for the Android OSr   re   rd   úandroid.os.Environmentz/storage/emulated/0/Documents)rm   rf   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSrk   rl   )rf   rt   ÚenvironmentÚdocuments_dirs       r   r:   r:   Á   ó‰   € ð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-:returns: downloads folder for the Android OSr   re   rd   rw   z/storage/emulated/0/Downloads)rm   rf   rx   ÚDIRECTORY_DOWNLOADSrk   rl   )rf   rt   rz   Údownloads_dirs       r   r>   r>   Ñ   r|   r}   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z,:returns: pictures folder for the Android OSr   re   rd   rw   z/storage/emulated/0/Pictures)rm   rf   rx   ÚDIRECTORY_PICTURESrk   rl   )rf   rt   rz   Úpictures_dirs       r   rA   rA   á   s‰   € ð6Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ#×7Ò7¸Ô8VÑWÔW×gÒgÑiÔiˆˆøÝð 6ð 6ð 6Ø5ˆˆˆð6øøøð Ðr}   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z*:returns: videos folder for the Android OSr   re   rd   rw   z/storage/emulated/0/DCIM/Camera)rm   rf   rx   ÚDIRECTORY_DCIMrk   rl   )rf   rt   rz   Ú
videos_dirs       r   rD   rD   ñ   s‰   € ð7Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ!×5Ò5°kÔ6PÑQÔQ×aÒaÑcÔcˆ
ˆ
øÝð 7ð 7ð 7Ø6ˆ
ˆ
ˆ
ð7øøøð Ðr}   c                 ó¾   — 	 ddl m}   | d¦  «        } | d¦  «        }|                     |j        ¦  «                             ¦   «         }n# t
          $ r d}Y nw xY w|S )z):returns: music folder for the Android OSr   re   rd   rw   z/storage/emulated/0/Music)rm   rf   rx   ÚDIRECTORY_MUSICrk   rl   )rf   rt   rz   Ú	music_dirs       r   rG   rG     s‰   € ð0Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ ×4Ò4°[Ô5PÑQÔQ×aÒaÑcÔcˆ	ˆ	øÝð 0ð 0ð 0Ø/ˆ	ˆ	ˆ	ð0øøøð Ðr}   )r   ra   rZ   )r^   Ú
__future__r   r/   rn   rp   Ú	functoolsr   Útypingr   r   Úapir   r
   r   r:   r>   rA   rD   rG   Ú__all__rJ   r   r   ú<module>r�      sË  ðØ €à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à  Ð  Ð  Ð  Ð  Ð  ð@%ð @%ð @%ð @%ð @%ˆoñ @%ô @%ð @%ðF €�1ÐÑÔð,ð ,ð ,ñ Ôð,ð^ €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð  ð€€€r   