جهت آشنایی با داوری اندروید.

ورود کاربران


فایل : دانلود فایل پروژه

شرکت Quera به دنبال تولید اپلیکیشن موبایل اندروید برای سایت خود است، اولین قدم برای این منظور تولید صفحه ورود کاربران است. برای این منظور طراح گرافیکی این شرکت یک قالب اولیه برای این صفحه آماده کرده و بر روی ساختار XML پیاده سازی کرده است، وظیفه شما آن است که فرآیند submit را پیاده سازی نمایید. ابتدا باید کنترل صحت داده های ورودی بررسی شود. کنترل صحت داده ها به این صورت می باشد که:

  • هر کدام از ورودی ها باید مقدار داشته باشد در غیر این صورت پیام راهنمایی درون آن به Enter Email یا Enter Password با رنگ #FF0000 تغیر می کند.

نمونه خروجی

  • مقدار وارد شده در ورودی Email باید آدرس یک ایمیل بر اساس استاندارد RFC 5322 باشد.

  • مقدار وارد شده در Password باید حداقل ۸ کاراکتر باشد، این کارکاتر ها می توانند حروف کوچک و بزرگ، عدد و علائم @#$%& باشد که در هر پسورد حداقل یک حرف کوچک، یک حرف بزرگ، یک عدد و یکی از علائم مجاز باید حضور داشته باشد.

  • در صورت مغایرت مقدار وارد شده درون هر ورودی با شرایط فوق پیام خطای Password is not valid یا Email is not valid در بالای صفحه و در قسمت تعیین شده نمایش داده می شود. توجه کنید که در صورت اشتباه بودن هر دو ورودی هر دو پیام باید نمایش داده شوند و با کاراکتر \n از هم جدا شوند (ترتیب اهمیتی ندارد).

پس از بررسی صحت ورودی ها در صورت صحیح بودن آنها یک درخواست HTTP به یک سرور خارجی ارسال می شود. این درخواست از نوع POST می باشد که در بدنه آن یک JOSN شامل کلید های email و password به همراه مقادیر وارد شده می باشد. این درخواست به آدرس quera.ir/accounts/login ارسال می شود و پیام بازگردانی شده با فرمت HTTP درون ResultActivty نمایش داده می شود. برای ارسال این درخواست حتما از HttpURLConnection استفاده نمایید.

برای پاسخ به این سوال ابتدا فایل زیپ مربوط به این سوال را دانلود نمایید، داخل این فایل یک پروژه اندروید وجود دارد، پس از انجام تغییرات فوق پروژه اندروید را دوباره زیپ نموده و بر روی سایت بارگذاری نمایید. توجه نمایید که بجز فایل های مشخص شده به دیگر فایل های موجود در پروژه دست نزنید.**

ساختار فایل ناقص پروژه برای دانلود (فایل‌هایی که باید تغییر دهید با ----> نمایش داده شده اند):

<Your-zip-name>.zip
└───LoginPage
    ├───app
    │   ├───libs
    │   └───src
    │       ├───androidTest
    │       │   └───...
    │       ├───main
    │       │   │   AndroidManifest.xml
    │       │   ├───java
    │       │   │   └───ir
    │       │   │       └───quera
    │       │   │           └───loginpage
    │       │   │                   MainActivity.java    <----
    │       │   │                   ResultActivity.java    <----
    │       │   │
    │       │   └───res
    │       │       ├───drawable
    │       │       ├───layout
    │       │       │       activity_main.xml    <----
    │       │       │       activity_result.xml    <----
    │       │       │
    │       │       ├───mipmap-hdpi
    │       │       ├───mipmap-mdpi
    │       │       ├───mipmap-xhdpi
    │       │       ├───mipmap-xxhdpi
    │       │       ├───mipmap-xxxhdpi
    │       │       └───values
    │       │               colors.xml
    │       │               strings.xml
    │       │               styles.xml
    │       │
    │       └───test
    │           └───...
    └───gradle
        └───...
Plain text
  • تنها فایلهای موجود در آدرس زیر از پروژه شما استفاده خواهد شد بقیه فایلها از پروژه نمونه قرار داده شده خواهند بود. فایلهای اضافی شما قبل از داوری حذف میشود.

app/src/main/*

ساختار درختی فایل ارسالی:

<Your-zip-name>.zip
├───main
│   ├───java
│   │   └───ir
│   │       └───quera
│   │           └───loginpage
│   │                   MainActivity.java
│   │                   ResultActivity.java
│   └───res
│       ├───drawable
│       ├───layout
│       │       activity_main.xml
│       │       activity_result.xml
│       ├───mipmap-hdpi
│       │       ...
│       ├───mipmap-mdpi
│       │       ...
│       ├───mipmap-xhdpi
│       │       ...
│       ├───mipmap-xxhdpi
│       │       ...
│       ├───mipmap-xxxhdpi
│       │       ...
│       └───values
│               colors.xml
│               strings.xml
│               styles.xml
│
└───test
    └───...
Plain text
  • توجه کنید که پروژه zip شده باید مستقیما در ریشه فایل zip قرار گیرد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.