در این سوال از شما میخواهیم فایل پایه را به گونهای تکمیل کنید که با وارد کردن آدرس یک فایل در ``EditText`` موجود در صفحه، پس از لمس دکمه ``Download`` فایل در آدرس مشخصی دانلود شود. پروژه پایه را از [ اینجا](https://blog.quera.ir/wp-content/uploads/2018/10/Downloader-contestant.zip) دانلود کنید.
نمای کلی پروژه پایه:
![](https://blog.quera.ir/wp-content/uploads/2018/10/img.png)
فایلهای دانلودی باید در فولدر ``DCIM`` موجود در حافظه خارجی دستگاه ذخیره شود.
## نکات حیاتی:
+ استفاده از کتابخانههای دانلود فایل امکان پذیر نیست و درصورت افزودن کتابخانه جدید به پروژه پایه و استفاده از آن، نمرهای به شما تعلق نمیگیرد.
+ دقت کنید که فایلها حتما در مکان گفتهشده دانلود شوند.
+ برای ذخیره فایل دانلودی از **نام** و **پسوند** فایل موجود در سرور استفاده کنید.
+ قبل از شروع دانلود، مقدار متغیر ``isDownloadCompleted`` موجود در فایل ``JudgeUtil`` را برابر با ``false`` قرار دهید و پس از اتمام دانلود، مقدار آن را ``true`` کنید.
+ برای جلوگیری از بروز خطای حجم فایل ارسالی، قبل از ساخت و ارسال فایل `zip` دقت کنید که پوشههای `build` در این فایل **وجود نداشته باشند**.
ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلهایی به پوشه ``java`` (یا زیر پوشههای آن) اضافه کنید. همچنین مجازید به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود نیستید). درنهایت محتویات پوشه ``app`` را در قالب یک فایل فشرده ارسال کنید.
```
app
│
└───src
├───main
│ │ AndroidManifest.xml <------
│ │
│ ├───java
│ │ └───ir
│ │ └───quera
│ │ └───android
│ │ └───downloader
│ │ JudgeUtil.java
│ │ MainActivity.java <------
│ │
│ └───res
│ ├───drawable
│ ├───drawable-v24
│ ├───layout
│ ├───mipmap-anydpi-v26
│ ├───mipmap-hdpi
│ ├───mipmap-mdpi
│ ├───mipmap-xhdpi
│ ├───mipmap-xxhdpi
│ ├───mipmap-xxxhdpi
│ └───values
│ colors.xml
│ strings.xml
│ styles.xml
│
└───test
```