§
    !ph5#  ã                  ó€  — 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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                ób   — |                       t          dt          ¦   «         ¦  «        d¦  «        S )zd:return: data directory tied to the user, e.g. ``/data/user/<userid>/<packagename>/files/<AppName>``r   Úfiles©Ú_append_app_name_and_versionr   Ú_android_folder©Úselfs    úaC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\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 )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                ób   — |                       t          dt          ¦   «         ¦  «        d¦  «        S )z‡
        :return: 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 )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                ób   — |                       t          dt          ¦   «         ¦  «        d¦  «        S )ze:return: 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 )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   r5   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   r1   r   c                ó   — | j         S )zF:return: runtime directory shared by users, same as `user_runtime_dir`)rG   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'   r0   r4   r8   r;   r>   rA   rD   rG   rI   rC   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ð%ð %ð %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 )	zE:return: 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   ÚandroidrS   r   ÚgetApplicationContextÚgetFilesDirÚgetParentFileÚgetAbsolutePathÚ	ExceptionÚjniusrV   ÚreÚcompileÚsysr-   ÚmatchÚsplit)ÚresultrS   ÚcontextrV   Úpatternr-   s         r   r   r   w   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,:return: documents folder for the Android OSr   rU   rT   úandroid.os.Environmentz/storage/emulated/0/Documents)r]   rV   ÚgetExternalFilesDirÚDIRECTORY_DOCUMENTSr[   r\   )rV   rd   ÚenvironmentÚdocuments_dirs       r   r3   r3   §   ó‰   € ð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   rU   rT   rg   z/storage/emulated/0/Downloads)r]   rV   rh   ÚDIRECTORY_DOWNLOADSr[   r\   )rV   rd   rj   Údownloads_dirs       r   r7   r7   ·   rl   rm   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   rU   rT   rg   z/storage/emulated/0/Pictures)r]   rV   rh   ÚDIRECTORY_PICTURESr[   r\   )rV   rd   rj   Úpictures_dirs       r   r:   r:   Ç   s‰   € ð6Ø#Ð#Ð#Ð#Ð#Ð#à�)Ð5Ñ6Ô6ˆØ�iÐ 8Ñ9Ô9ˆØ#×7Ò7¸Ô8VÑWÔW×gÒgÑiÔiˆˆøÝð 6ð 6ð 6Ø5ˆˆˆð6øøøð Ðrm   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   rU   rT   rg   z/storage/emulated/0/DCIM/Camera)r]   rV   rh   ÚDIRECTORY_DCIMr[   r\   )rV   rd   rj   Ú
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øøøð Ðrm   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   rU   rT   rg   z/storage/emulated/0/Music)r]   rV   rh   ÚDIRECTORY_MUSICr[   r\   )rV   rd   rj   Ú	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øøøð Ðrm   )r   rQ   rJ   )rN   Ú
__future__r   r,   r^   r`   Ú	functoolsr   Útypingr   r   Úapir   r
   r   r3   r7   r:   r=   r@   Ú__all__rC   r   r   ú<module>r      sË  ðØ €à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à  Ð  Ð  Ð  Ð  Ð  ðf%ð f%ð f%ð f%ð f%ˆoñ f%ô f%ð f%ðR €�1ÐÑÔð,ð ,ð ,ñ Ôð,ð^ €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð €�1ÐÑÔðð ð ñ Ôðð  ð€€€r   