From c61225163854bb6548807a8179c0391c2903da94 Mon Sep 17 00:00:00 2001
From: Amsal Situmorang <if317035@students.del.ac.id>
Date: Sat, 9 May 2020 21:08:17 +0700
Subject: [PATCH] Initial commit

---
 .gitignore                                                             |  14 ++++++++++++++
 .idea/codeStyles/Project.xml                                           | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 .idea/gradle.xml                                                       |  16 ++++++++++++++++
 .idea/misc.xml                                                         |   9 +++++++++
 .idea/runConfigurations.xml                                            |  12 ++++++++++++
 .idea/vcs.xml                                                          |   6 ++++++
 app/.gitignore                                                         |   1 +
 app/build.gradle                                                       |  46 ++++++++++++++++++++++++++++++++++++++++++++++
 app/proguard-rules.pro                                                 |  21 +++++++++++++++++++++
 app/src/androidTest/java/com/amsal/ta/ExampleInstrumentedTest.java     |  27 +++++++++++++++++++++++++++
 app/src/main/AndroidManifest.xml                                       |  32 ++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/DetailResultActivity.java               |  52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/IntroActivity.java                      | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/MainActivity.java                       |  30 ++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/ResultActivity.java                     | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/SplashscreenActivity.java               |  50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/adapter/AppAdapter.java                 | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/adapter/IntroViewPagerAdapter.java      |  70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/adapter/ResultAdapter.java              |  95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/model/AppInfo.java                      |  51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/model/AppResult.java                    |  94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/model/ScreenItem.java                   |  37 +++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/ui/account/AccountFragment.java         |  35 +++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/ui/account/AccountViewModel.java        |  19 +++++++++++++++++++
 app/src/main/java/com/amsal/ta/ui/dashboard/DashboardFragment.java     | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/ui/dashboard/DashboardViewModel.java    |  19 +++++++++++++++++++
 app/src/main/java/com/amsal/ta/ui/home/HomeFragment.java               |  35 +++++++++++++++++++++++++++++++++++
 app/src/main/java/com/amsal/ta/ui/home/HomeViewModel.java              |  19 +++++++++++++++++++
 app/src/main/res/anim/bottom_animation.xml                             |  14 ++++++++++++++
 app/src/main/res/anim/button_animation.xml                             |  16 ++++++++++++++++
 app/src/main/res/anim/top_animation.xml                                |  14 ++++++++++++++
 app/src/main/res/drawable-v24/btn_gradient_style.xml                   |  11 +++++++++++
 app/src/main/res/drawable-v24/drawable-v24/btn_gradient_style.xml      |  11 +++++++++++
 app/src/main/res/drawable-v24/drawable-v24/ic_launcher_foreground.xml  |  34 ++++++++++++++++++++++++++++++++++
 app/src/main/res/drawable-v24/drawable-v24/ic_policy.png               | Bin 0 -> 578 bytes
 app/src/main/res/drawable-v24/drawable-v24/img1.png                    | Bin 0 -> 115019 bytes
 app/src/main/res/drawable-v24/drawable-v24/img2.png                    | Bin 0 -> 80392 bytes
 app/src/main/res/drawable-v24/drawable-v24/img3.png                    | Bin 0 -> 128907 bytes
 app/src/main/res/drawable-v24/drawable-v24/indicator_default.xml       |  23 +++++++++++++++++++++++
 app/src/main/res/drawable-v24/drawable-v24/indicator_selected.xml      |  23 +++++++++++++++++++++++
 app/src/main/res/drawable-v24/drawable-v24/indicator_selector.xml      |  12 ++++++++++++
 app/src/main/res/drawable-v24/drawable/ic_arrow_forward_black_24dp.xml |   9 +++++++++
 app/src/main/res/drawable-v24/drawable/ic_dashboard_black_24dp.xml     |   9 +++++++++
 app/src/main/res/drawable-v24/drawable/ic_home_black_24dp.xml          |   9 +++++++++
 app/src/main/res/drawable-v24/drawable/ic_launcher_background.xml      | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/drawable-v24/drawable/ic_notifications_black_24dp.xml |   9 +++++++++
 app/src/main/res/drawable-v24/drawable/ic_person_black_24dp.xml        |   9 +++++++++
 app/src/main/res/drawable-v24/drawable/logos.png                       | Bin 0 -> 42129 bytes
 app/src/main/res/drawable-v24/error.png                                | Bin 0 -> 328039 bytes
 app/src/main/res/drawable-v24/ic_launcher_foreground.xml               |  34 ++++++++++++++++++++++++++++++++++
 app/src/main/res/drawable-v24/ic_policy.png                            | Bin 0 -> 578 bytes
 app/src/main/res/drawable-v24/img1.png                                 | Bin 0 -> 115019 bytes
 app/src/main/res/drawable-v24/img2.png                                 | Bin 0 -> 80392 bytes
 app/src/main/res/drawable-v24/img3.png                                 | Bin 0 -> 128907 bytes
 app/src/main/res/drawable-v24/indicator_default.xml                    |  23 +++++++++++++++++++++++
 app/src/main/res/drawable-v24/indicator_selected.xml                   |  23 +++++++++++++++++++++++
 app/src/main/res/drawable-v24/indicator_selector.xml                   |  12 ++++++++++++
 app/src/main/res/drawable/ic_arrow_forward_black_24dp.xml              |   9 +++++++++
 app/src/main/res/drawable/ic_check_circle_black_24dp.xml               |   9 +++++++++
 app/src/main/res/drawable/ic_clear_black_24dp.xml                      |   9 +++++++++
 app/src/main/res/drawable/ic_dashboard_black_24dp.xml                  |   9 +++++++++
 app/src/main/res/drawable/ic_file_upload_black_24dp.xml                |   9 +++++++++
 app/src/main/res/drawable/ic_home_black_24dp.xml                       |   9 +++++++++
 app/src/main/res/drawable/ic_launcher_background.xml                   | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/drawable/ic_notifications_black_24dp.xml              |   9 +++++++++
 app/src/main/res/drawable/ic_person_black_24dp.xml                     |   9 +++++++++
 app/src/main/res/drawable/logos.png                                    | Bin 0 -> 42129 bytes
 app/src/main/res/font/acme.xml                                         |   7 +++++++
 app/src/main/res/font/antic.xml                                        |   7 +++++++
 app/src/main/res/font/berkshire_swash.xml                              |   7 +++++++
 app/src/main/res/font/chivo_black_italic.xml                           |   7 +++++++
 app/src/main/res/layout/activity_detail_result.xml                     | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/activity_intro.xml                             |  82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/activity_main.xml                              |  86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/activity_result.xml                            |  17 +++++++++++++++++
 app/src/main/res/layout/activity_splashscreen.xml                      |  47 +++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/app_layout.xml                                 |  42 ++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/fragment_account.xml                           |  19 +++++++++++++++++++
 app/src/main/res/layout/fragment_dashboard.xml                         |  16 ++++++++++++++++
 app/src/main/res/layout/fragment_home.xml                              |  19 +++++++++++++++++++
 app/src/main/res/layout/layout_error.xml                               |  53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/layout_screen.xml                              |  68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/layout/result_list.xml                                |  91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/src/main/res/menu/bottom_nav_menu.xml                              |  19 +++++++++++++++++++
 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml                     |   5 +++++
 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml               |   5 +++++
 app/src/main/res/mipmap-hdpi/ic_launcher.png                           | Bin 0 -> 2963 bytes
 app/src/main/res/mipmap-hdpi/ic_launcher_round.png                     | Bin 0 -> 4905 bytes
 app/src/main/res/mipmap-mdpi/ic_launcher.png                           | Bin 0 -> 2060 bytes
 app/src/main/res/mipmap-mdpi/ic_launcher_round.png                     | Bin 0 -> 2783 bytes
 app/src/main/res/mipmap-xhdpi/ic_launcher.png                          | Bin 0 -> 4490 bytes
 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png                    | Bin 0 -> 6895 bytes
 app/src/main/res/mipmap-xxhdpi/ic_launcher.png                         | Bin 0 -> 6387 bytes
 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png                   | Bin 0 -> 10413 bytes
 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png                        | Bin 0 -> 9128 bytes
 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png                  | Bin 0 -> 15132 bytes
 app/src/main/res/navigation/mobile_navigation.xml                      |  25 +++++++++++++++++++++++++
 app/src/main/res/values/colors.xml                                     |  17 +++++++++++++++++
 app/src/main/res/values/dimens.xml                                     |   5 +++++
 app/src/main/res/values/font_certs.xml                                 |  17 +++++++++++++++++
 app/src/main/res/values/preloaded_fonts.xml                            |   9 +++++++++
 app/src/main/res/values/strings.xml                                    |  13 +++++++++++++
 app/src/main/res/values/styles.xml                                     |  18 ++++++++++++++++++
 app/src/test/java/com/amsal/ta/ExampleUnitTest.java                    |  17 +++++++++++++++++
 build.gradle                                                           |  29 +++++++++++++++++++++++++++++
 gradle.properties                                                      |  20 ++++++++++++++++++++
 gradle/wrapper/gradle-wrapper.jar                                      | Bin 0 -> 54329 bytes
 gradle/wrapper/gradle-wrapper.properties                               |   6 ++++++
 gradlew                                                                | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gradlew.bat                                                            |  84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 settings.gradle                                                        |   2 ++
 111 files changed, 3579 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .idea/codeStyles/Project.xml
 create mode 100644 .idea/gradle.xml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/runConfigurations.xml
 create mode 100644 .idea/vcs.xml
 create mode 100644 app/.gitignore
 create mode 100644 app/build.gradle
 create mode 100644 app/proguard-rules.pro
 create mode 100644 app/src/androidTest/java/com/amsal/ta/ExampleInstrumentedTest.java
 create mode 100644 app/src/main/AndroidManifest.xml
 create mode 100644 app/src/main/java/com/amsal/ta/DetailResultActivity.java
 create mode 100644 app/src/main/java/com/amsal/ta/IntroActivity.java
 create mode 100644 app/src/main/java/com/amsal/ta/MainActivity.java
 create mode 100644 app/src/main/java/com/amsal/ta/ResultActivity.java
 create mode 100644 app/src/main/java/com/amsal/ta/SplashscreenActivity.java
 create mode 100644 app/src/main/java/com/amsal/ta/adapter/AppAdapter.java
 create mode 100644 app/src/main/java/com/amsal/ta/adapter/IntroViewPagerAdapter.java
 create mode 100644 app/src/main/java/com/amsal/ta/adapter/ResultAdapter.java
 create mode 100644 app/src/main/java/com/amsal/ta/model/AppInfo.java
 create mode 100644 app/src/main/java/com/amsal/ta/model/AppResult.java
 create mode 100644 app/src/main/java/com/amsal/ta/model/ScreenItem.java
 create mode 100644 app/src/main/java/com/amsal/ta/ui/account/AccountFragment.java
 create mode 100644 app/src/main/java/com/amsal/ta/ui/account/AccountViewModel.java
 create mode 100644 app/src/main/java/com/amsal/ta/ui/dashboard/DashboardFragment.java
 create mode 100644 app/src/main/java/com/amsal/ta/ui/dashboard/DashboardViewModel.java
 create mode 100644 app/src/main/java/com/amsal/ta/ui/home/HomeFragment.java
 create mode 100644 app/src/main/java/com/amsal/ta/ui/home/HomeViewModel.java
 create mode 100644 app/src/main/res/anim/bottom_animation.xml
 create mode 100644 app/src/main/res/anim/button_animation.xml
 create mode 100644 app/src/main/res/anim/top_animation.xml
 create mode 100644 app/src/main/res/drawable-v24/btn_gradient_style.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/btn_gradient_style.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/ic_launcher_foreground.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/ic_policy.png
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/img1.png
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/img2.png
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/img3.png
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/indicator_default.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/indicator_selected.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable-v24/indicator_selector.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/ic_arrow_forward_black_24dp.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/ic_dashboard_black_24dp.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/ic_home_black_24dp.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/ic_launcher_background.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/ic_notifications_black_24dp.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/ic_person_black_24dp.xml
 create mode 100644 app/src/main/res/drawable-v24/drawable/logos.png
 create mode 100644 app/src/main/res/drawable-v24/error.png
 create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml
 create mode 100644 app/src/main/res/drawable-v24/ic_policy.png
 create mode 100644 app/src/main/res/drawable-v24/img1.png
 create mode 100644 app/src/main/res/drawable-v24/img2.png
 create mode 100644 app/src/main/res/drawable-v24/img3.png
 create mode 100644 app/src/main/res/drawable-v24/indicator_default.xml
 create mode 100644 app/src/main/res/drawable-v24/indicator_selected.xml
 create mode 100644 app/src/main/res/drawable-v24/indicator_selector.xml
 create mode 100644 app/src/main/res/drawable/ic_arrow_forward_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_check_circle_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_clear_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_dashboard_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_file_upload_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_home_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml
 create mode 100644 app/src/main/res/drawable/ic_notifications_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/ic_person_black_24dp.xml
 create mode 100644 app/src/main/res/drawable/logos.png
 create mode 100644 app/src/main/res/font/acme.xml
 create mode 100644 app/src/main/res/font/antic.xml
 create mode 100644 app/src/main/res/font/berkshire_swash.xml
 create mode 100644 app/src/main/res/font/chivo_black_italic.xml
 create mode 100644 app/src/main/res/layout/activity_detail_result.xml
 create mode 100644 app/src/main/res/layout/activity_intro.xml
 create mode 100644 app/src/main/res/layout/activity_main.xml
 create mode 100644 app/src/main/res/layout/activity_result.xml
 create mode 100644 app/src/main/res/layout/activity_splashscreen.xml
 create mode 100644 app/src/main/res/layout/app_layout.xml
 create mode 100644 app/src/main/res/layout/fragment_account.xml
 create mode 100644 app/src/main/res/layout/fragment_dashboard.xml
 create mode 100644 app/src/main/res/layout/fragment_home.xml
 create mode 100644 app/src/main/res/layout/layout_error.xml
 create mode 100644 app/src/main/res/layout/layout_screen.xml
 create mode 100644 app/src/main/res/layout/result_list.xml
 create mode 100644 app/src/main/res/menu/bottom_nav_menu.xml
 create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
 create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
 create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
 create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
 create mode 100644 app/src/main/res/navigation/mobile_navigation.xml
 create mode 100644 app/src/main/res/values/colors.xml
 create mode 100644 app/src/main/res/values/dimens.xml
 create mode 100644 app/src/main/res/values/font_certs.xml
 create mode 100644 app/src/main/res/values/preloaded_fonts.xml
 create mode 100644 app/src/main/res/values/strings.xml
 create mode 100644 app/src/main/res/values/styles.xml
 create mode 100644 app/src/test/java/com/amsal/ta/ExampleUnitTest.java
 create mode 100644 build.gradle
 create mode 100644 gradle.properties
 create mode 100644 gradle/wrapper/gradle-wrapper.jar
 create mode 100644 gradle/wrapper/gradle-wrapper.properties
 create mode 100644 gradlew
 create mode 100644 gradlew.bat
 create mode 100644 settings.gradle

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..603b140
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..681f41a
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <codeStyleSettings language="XML">
+      <indentOptions>
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      </indentOptions>
+      <arrangement>
+        <rules>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:android</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:id</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>style</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>ANDROID_ATTRIBUTE_ORDER</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+        </rules>
+      </arrangement>
+    </codeStyleSettings>
+  </code_scheme>
+</component>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..d291b3d
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <compositeConfiguration>
+          <compositeBuild compositeDefinitionSource="SCRIPT" />
+        </compositeConfiguration>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="resolveModulePerSourceSet" value="false" />
+        <option name="testRunner" value="PLATFORM" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..7bfef59
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..2a82869
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,46 @@
+apply plugin: 'com.android.application'
+
+android {
+    compileSdkVersion 29
+    buildToolsVersion "29.0.3"
+    defaultConfig {
+        applicationId "com.amsal.ta"
+        minSdkVersion 21
+        targetSdkVersion 29
+        versionCode 1
+        versionName "1.0"
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+    compileOptions {
+        targetCompatibility = "1.8"
+        sourceCompatibility = 1.8
+    }
+}
+
+dependencies {
+    implementation fileTree(dir: 'libs', include: ['*.jar'])
+    implementation 'androidx.appcompat:appcompat:1.1.0'
+    implementation 'com.google.android.material:material:1.1.0'
+    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+    implementation 'androidx.navigation:navigation-fragment:2.2.2'
+    implementation 'androidx.navigation:navigation-ui:2.2.2'
+    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+    implementation 'androidx.recyclerview:recyclerview:1.1.0'
+    implementation 'androidx.cardview:cardview:1.0.0'
+    implementation 'de.hdodenhof:circleimageview:3.0.2'
+    implementation 'com.github.bumptech.glide:glide:4.9.0'
+    implementation 'com.loopj.android:android-async-http:1.4.9'
+    implementation 'com.squareup.okhttp3:logging-interceptor:4.2.1'
+    implementation 'com.squareup.okhttp3:okhttp:4.2.1'
+    implementation 'com.squareup.retrofit2:retrofit:2.6.1'
+    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
+}
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/app/src/androidTest/java/com/amsal/ta/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/amsal/ta/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..7a35736
--- /dev/null
+++ b/app/src/androidTest/java/com/amsal/ta/ExampleInstrumentedTest.java
@@ -0,0 +1,27 @@
+package com.amsal.ta;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+    @Test
+    public void useAppContext() {
+        // Context of the app under test.
+        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+        assertEquals("com.amsal.ta", appContext.getPackageName());
+    }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..5f1c7fe
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.amsal.ta">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+
+    <application
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_launcher"
+        android:label="@string/app_name"
+        android:roundIcon="@mipmap/ic_launcher_round"
+        android:supportsRtl="true"
+        android:theme="@style/AppTheme"
+        android:usesCleartextTraffic="true">
+        <activity android:name=".DetailResultActivity"></activity>
+        <activity android:name=".ResultActivity" />
+        <activity android:name=".IntroActivity" />
+        <activity
+            android:name=".SplashscreenActivity"
+            android:theme="@style/NoTheme">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name=".MainActivity"
+            android:label="@string/app_name"></activity>
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/DetailResultActivity.java b/app/src/main/java/com/amsal/ta/DetailResultActivity.java
new file mode 100644
index 0000000..48a67dd
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/DetailResultActivity.java
@@ -0,0 +1,52 @@
+package com.amsal.ta;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.cardview.widget.CardView;
+
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.amsal.ta.model.AppResult;
+
+public class DetailResultActivity extends AppCompatActivity {
+
+    public static final String DETAIL_APP = "detail_app";
+    private ImageView logo;
+    private TextView appName, appStatus, appMalware, appKeterangan;
+    private LinearLayout appCard;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_detail_result);
+        logo = findViewById(R.id.app_logo);
+        appName = findViewById(R.id.app_name);
+        appStatus = findViewById(R.id.status);
+        appMalware = findViewById(R.id.malware_name);
+        appCard = findViewById(R.id.status_card);
+        appKeterangan = findViewById(R.id.detail);
+
+        AppResult app = getIntent().getParcelableExtra(DETAIL_APP);
+
+        Drawable background = app.getApp().info.loadIcon(getPackageManager());
+        logo.setBackgroundDrawable(background);
+
+        appName.setText(app.getApkName());
+        appMalware.setText(app.getMalware());
+        appKeterangan.setText(app.getDetail());
+        if (app.getStatus().equals("Tidak Berbahaya")) {
+            appCard.setBackgroundColor(Color.GREEN);
+            appStatus.setText("TIDAK BERBAHAYA");
+        } else {
+            appCard.setBackgroundColor(Color.RED);
+            appStatus.setText("BERBAHAYA");
+        }
+
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/IntroActivity.java b/app/src/main/java/com/amsal/ta/IntroActivity.java
new file mode 100644
index 0000000..4d12ed2
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/IntroActivity.java
@@ -0,0 +1,215 @@
+package com.amsal.ta;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.viewpager.widget.ViewPager;
+
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.amsal.ta.adapter.IntroViewPagerAdapter;
+import com.amsal.ta.model.ScreenItem;
+import com.google.android.material.tabs.TabLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class IntroActivity extends AppCompatActivity {
+
+    private ViewPager screenPager;
+    IntroViewPagerAdapter introViewPagerAdapter ;
+    TabLayout tabIndicator;
+    Button btnNext;
+    int position = 0 ;
+    Button btnGetStarted;
+    Animation btnAnim ;
+    TextView tvSkip;
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        // make the activity on full screen
+
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                WindowManager.LayoutParams.FLAG_FULLSCREEN);
+
+
+        // when this activity is about to be launch we need to check if its openened before or not
+
+        if (restorePrefData()) {
+
+            Intent mainActivity = new Intent(getApplicationContext(),MainActivity.class );
+            startActivity(mainActivity);
+            finish();
+
+
+        }
+
+        setContentView(R.layout.activity_intro);
+
+        // hide the action bar
+
+        getSupportActionBar().hide();
+
+        // ini views
+        btnNext = findViewById(R.id.btn_next);
+        btnGetStarted = findViewById(R.id.btn_get_started);
+        tabIndicator = findViewById(R.id.tab_indicator);
+        btnAnim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.button_animation);
+        tvSkip = findViewById(R.id.tv_skip);
+
+        // fill list screen
+
+        final List<ScreenItem> mList = new ArrayList<>();
+        mList.add(new ScreenItem("Fresh Food","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, consectetur  consectetur adipiscing elit",R.drawable.img1));
+        mList.add(new ScreenItem("Fast Delivery","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, consectetur  consectetur adipiscing elit",R.drawable.img2));
+        mList.add(new ScreenItem("Easy Payment","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua, consectetur  consectetur adipiscing elit",R.drawable.img3));
+
+        // setup viewpager
+        screenPager =findViewById(R.id.screen_viewpager);
+        introViewPagerAdapter = new IntroViewPagerAdapter(this,mList);
+        screenPager.setAdapter(introViewPagerAdapter);
+
+        // setup tablayout with viewpager
+
+        tabIndicator.setupWithViewPager(screenPager);
+
+        // next button click Listner
+
+        btnNext.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                position = screenPager.getCurrentItem();
+                if (position < mList.size()) {
+
+                    position++;
+                    screenPager.setCurrentItem(position);
+
+
+                }
+
+                if (position == mList.size()-1) { // when we rech to the last screen
+
+                    // TODO : show the GETSTARTED Button and hide the indicator and the next button
+
+                    loaddLastScreen();
+
+
+                }
+
+
+
+            }
+        });
+
+        // tablayout add change listener
+
+
+        tabIndicator.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {
+            @Override
+            public void onTabSelected(TabLayout.Tab tab) {
+
+                if (tab.getPosition() == mList.size()-1) {
+
+                    loaddLastScreen();
+
+                }
+
+
+            }
+
+            @Override
+            public void onTabUnselected(TabLayout.Tab tab) {
+
+            }
+
+            @Override
+            public void onTabReselected(TabLayout.Tab tab) {
+
+            }
+        });
+
+
+
+        // Get Started button click listener
+
+        btnGetStarted.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+
+                //open main activity
+
+                Intent mainActivity = new Intent(getApplicationContext(),MainActivity.class);
+                startActivity(mainActivity);
+                // also we need to save a boolean value to storage so next time when the user run the app
+                // we could know that he is already checked the intro screen activity
+                // i'm going to use shared preferences to that process
+                savePrefsData();
+                finish();
+
+
+
+            }
+        });
+
+        // skip button click listener
+
+        tvSkip.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                screenPager.setCurrentItem(mList.size());
+            }
+        });
+
+
+
+    }
+
+    private boolean restorePrefData() {
+
+
+        SharedPreferences pref = getApplicationContext().getSharedPreferences("myPrefs",MODE_PRIVATE);
+        Boolean isIntroActivityOpnendBefore = pref.getBoolean("isIntroOpnend",false);
+        return  isIntroActivityOpnendBefore;
+
+
+
+    }
+
+    private void savePrefsData() {
+
+        SharedPreferences pref = getApplicationContext().getSharedPreferences("myPrefs",MODE_PRIVATE);
+        SharedPreferences.Editor editor = pref.edit();
+        editor.putBoolean("isIntroOpnend",true);
+        editor.commit();
+
+
+    }
+
+    // show the GETSTARTED Button and hide the indicator and the next button
+    private void loaddLastScreen() {
+
+        btnNext.setVisibility(View.INVISIBLE);
+        btnGetStarted.setVisibility(View.VISIBLE);
+        tvSkip.setVisibility(View.INVISIBLE);
+        tabIndicator.setVisibility(View.INVISIBLE);
+        // TODO : ADD an animation the getstarted button
+        // setup animation
+        btnGetStarted.setAnimation(btnAnim);
+
+
+
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/MainActivity.java b/app/src/main/java/com/amsal/ta/MainActivity.java
new file mode 100644
index 0000000..c5ca8d0
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/MainActivity.java
@@ -0,0 +1,30 @@
+package com.amsal.ta;
+
+import android.os.Bundle;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.navigation.NavController;
+import androidx.navigation.Navigation;
+import androidx.navigation.ui.AppBarConfiguration;
+import androidx.navigation.ui.NavigationUI;
+
+public class MainActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+        BottomNavigationView navView = findViewById(R.id.nav_view);
+        // Passing each menu ID as a set of Ids because each
+        // menu should be considered as top level destinations.
+        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
+                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_account)
+                .build();
+        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
+        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
+        NavigationUI.setupWithNavController(navView, navController);
+    }
+
+}
diff --git a/app/src/main/java/com/amsal/ta/ResultActivity.java b/app/src/main/java/com/amsal/ta/ResultActivity.java
new file mode 100644
index 0000000..7b47959
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ResultActivity.java
@@ -0,0 +1,205 @@
+package com.amsal.ta;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+
+import com.amsal.ta.adapter.ResultAdapter;
+import com.amsal.ta.model.AppInfo;
+import com.amsal.ta.model.AppResult;
+
+import org.json.JSONObject;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
+
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
+public class ResultActivity extends AppCompatActivity implements MyAsyncCallback {
+    public static final String EXTRA_APP = "extra_app";
+    private RecyclerView rvResult;
+    private RelativeLayout errorLayout;
+    private ImageView errorImg;
+    private Button exit;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_result);
+        errorLayout = findViewById(R.id.error_layout);
+        exit = findViewById(R.id.back_btn);
+        errorImg = findViewById(R.id.error_img);
+        ArrayList<AppInfo> apps = getIntent().getParcelableArrayListExtra(EXTRA_APP);
+        errorLayout.setVisibility(View.GONE);
+        rvResult = findViewById(R.id.rv_result);
+        rvResult.setHasFixedSize(true);
+
+        Async async = new Async(this);
+        async.execute(apps);
+
+    }
+
+    @Override
+    public void onPreExecute() {
+
+    }
+
+    @Override
+    public void onPostExecute(ArrayList<AppResult> list) {
+        if (list.size() != 0) {
+            rvResult.setLayoutManager(new LinearLayoutManager(this));
+            ResultAdapter resultAdapter = new ResultAdapter(this, list);
+            rvResult.setAdapter(resultAdapter);
+        } else {
+            if (errorLayout.getVisibility() == View.GONE) {
+                errorLayout.setVisibility(View.VISIBLE);
+                exit.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Intent moveIntent = new Intent(ResultActivity.this, IntroActivity.class);
+                        startActivity(moveIntent);
+                        finish();
+                    }
+                });
+                errorImg.setImageResource(R.drawable.error);
+            }
+        }
+
+    }
+
+    private class Async extends AsyncTask<ArrayList<AppInfo>, Void, ArrayList<AppResult>> {
+        static final String LOG_ASYNC = "DemoAsync";
+        WeakReference<MyAsyncCallback> myListener;
+        ProgressDialog mProgressDialog;
+
+        Async(MyAsyncCallback myListener) {
+            this.myListener = new WeakReference<>(myListener);
+        }
+
+        @Override
+        protected void onPreExecute() {
+            super.onPreExecute();
+            Log.d(LOG_ASYNC, "status : onPreExecute");
+            mProgressDialog = new ProgressDialog(ResultActivity.this);
+            // Set your ProgressBar Title
+            mProgressDialog.setTitle("Scanning Apps");
+            mProgressDialog.setIcon(R.drawable.ic_file_upload_black_24dp);
+            // Set your ProgressBar Message
+            mProgressDialog.setMessage("Still Scanning Your Apps, Please Wait!");
+            mProgressDialog.setIndeterminate(false);
+            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+            // Show ProgressBar
+            mProgressDialog.setCancelable(false);
+//            mProgressDialog.setCanceledOnTouchOutside(false);
+            mProgressDialog.show();
+
+            MyAsyncCallback myListener = this.myListener.get();
+            if (myListener != null) {
+                myListener.onPreExecute();
+            }
+        }
+
+        @Override
+        protected ArrayList<AppResult> doInBackground(ArrayList<AppInfo>... apps) {
+            Log.d(LOG_ASYNC, "status : doInBackground");
+            String url = "https://tad3ti03.xyz/upload/";
+            return Scan(apps[0], url);
+        }
+
+        @Override
+        protected void onPostExecute(ArrayList<AppResult> result) {
+            super.onPostExecute(result);
+            mProgressDialog.dismiss();
+            Log.d(LOG_ASYNC, "status : onPostExecute");
+            MyAsyncCallback myListener = this.myListener.get();
+            if (myListener != null) {
+                myListener.onPostExecute(result);
+            }
+        }
+    }
+
+    public static ArrayList<AppResult> Scan(ArrayList<AppInfo> apps, String url) {
+
+        String fileName;
+        ArrayList<AppResult> list = new ArrayList<>();
+
+
+        OkHttpClient fileUploadClient = new OkHttpClient.Builder().addNetworkInterceptor(chain -> {
+            Request originalRequest = chain.request();
+
+            if (originalRequest.body() == null) {
+                return chain.proceed(originalRequest);
+            }
+            Request progressRequest = originalRequest.newBuilder()
+                    .build();
+
+            return chain.proceed(progressRequest);
+
+        }).connectTimeout(30000, TimeUnit.SECONDS)
+                .writeTimeout(30000, TimeUnit.SECONDS)
+                .readTimeout(30000, TimeUnit.SECONDS)
+                .build();
+
+        for (int i = 0; i < apps.size(); i++) {
+            File apkFile = new File(apps.get(i).info.publicSourceDir);
+            if (apkFile.isFile()) {
+                fileName = apps.get(i).info.publicSourceDir;
+                RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file", fileName, RequestBody.create(apkFile, MediaType.parse("application/*"))).build();
+                Request request = new Request.Builder().url(url).post(requestBody).build();
+
+                try {
+                    Response response = fileUploadClient.newCall(request).execute();
+                    if (response.isSuccessful()) {
+                        Log.i("horas", "onResponse: BERHASIL");
+                        try {
+                            JSONObject jsonObject = new JSONObject(response.body().string());
+
+                            AppResult sucsess = new AppResult();
+                            sucsess.app = apps.get(i);
+                            sucsess.apkName = jsonObject.getString("nama_apk");
+                            sucsess.malware = jsonObject.getString("malware_name");
+                            sucsess.status = jsonObject.getString("status");
+                            sucsess.detail = jsonObject.getString("detail");
+                            list.add(sucsess);
+                            Log.d("horas", list.get(i).detail);
+                        } catch (Exception e) {
+                        }
+
+                    } else {
+                        Log.i("horas", "onResponse: GAGAL");
+                    }
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return list;
+    }
+
+}
+
+interface MyAsyncCallback {
+    void onPreExecute();
+
+    void onPostExecute(ArrayList<AppResult> list);
+}
diff --git a/app/src/main/java/com/amsal/ta/SplashscreenActivity.java b/app/src/main/java/com/amsal/ta/SplashscreenActivity.java
new file mode 100644
index 0000000..c3a1cf7
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/SplashscreenActivity.java
@@ -0,0 +1,50 @@
+package com.amsal.ta;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.WindowManager;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public class SplashscreenActivity extends AppCompatActivity {
+
+    Handler handler;
+    Animation topAnim;
+    Animation botAnim;
+    ImageView image;
+    TextView logo, slogan;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        setContentView(R.layout.activity_splashscreen);
+
+        topAnim = AnimationUtils.loadAnimation(this, R.anim.top_animation);
+        botAnim = AnimationUtils.loadAnimation(this, R.anim.bottom_animation);
+
+        image = findViewById(R.id.logo);
+        logo = findViewById(R.id.txt_apps_name);
+        slogan = findViewById(R.id.txt_apps);
+
+        image.setAnimation(topAnim);
+        logo.setAnimation(botAnim);
+        slogan.setAnimation(botAnim);
+
+
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                Intent moveIntent = new Intent(SplashscreenActivity.this, IntroActivity.class);
+                startActivity(moveIntent);
+                finish();
+            }
+        }, 4000);
+
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/adapter/AppAdapter.java b/app/src/main/java/com/amsal/ta/adapter/AppAdapter.java
new file mode 100644
index 0000000..99c93ef
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/adapter/AppAdapter.java
@@ -0,0 +1,107 @@
+package com.amsal.ta.adapter;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.amsal.ta.R;
+import com.amsal.ta.model.AppInfo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AppAdapter extends RecyclerView.Adapter<AppAdapter.GridViewHolder> {
+    private LayoutInflater layoutInflater;
+    private PackageManager packageManager;
+    private List<AppInfo> apps;
+
+
+    private OnItemClickCallback onItemClickCallback;
+
+    public AppAdapter(@NonNull Context context, List<AppInfo> apps) {
+        layoutInflater = LayoutInflater.from(context);
+        packageManager = context.getPackageManager();
+        this.apps = apps;
+    }
+
+    public void setOnItemClickCallback(OnItemClickCallback onItemClickCallback) {
+        this.onItemClickCallback = onItemClickCallback;
+    }
+
+    @NonNull
+    @Override
+    public GridViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.app_layout, viewGroup, false);
+        return new GridViewHolder(view);
+    }
+    @Override
+    public void onBindViewHolder(@NonNull final GridViewHolder holder, int position) {
+        final AppInfo current = apps.get(position);
+
+        holder.textViewTitle.setText(current.label);
+        Drawable background = current.info.loadIcon(packageManager);
+        holder.imageView.setBackgroundDrawable(background);
+
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                current.setChecked(!current.isChecked());
+                holder.check.setVisibility(current.isChecked() ? View.VISIBLE : View.GONE);
+                onItemClickCallback.onItemClicked(apps.get(holder.getAdapterPosition()));
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return apps.size();
+    }
+    public class GridViewHolder extends RecyclerView.ViewHolder {
+        ImageView imageView;
+        TextView textViewTitle;
+        private ImageView check;
+        public GridViewHolder(@NonNull View itemView) {
+            super(itemView);
+            imageView = itemView.findViewById(R.id.icon_image);
+            textViewTitle = itemView.findViewById(R.id.titleTextView);
+            check = itemView.findViewById(R.id.imageCheck);
+        }
+    }
+    public interface OnItemClickCallback {
+        void onItemClicked(AppInfo data);
+    }
+    public int getSelected() {
+        int count = 0;
+        for (int i = 0; i < apps.size(); i++) {
+            if (apps.get(i).isChecked()) {
+                count++;
+            }
+        }
+        return count;
+    }
+    public void clearSelected() {
+        for (int i = 0; i < apps.size(); i++) {
+            if (apps.get(i).isChecked()) {
+                apps.get(i).setChecked(false);
+            }
+        }
+    }
+
+    public ArrayList<AppInfo> getSelectedApk(){
+        ArrayList<AppInfo> listApps = new ArrayList<AppInfo>();
+        for (int i = 0; i < apps.size(); i++) {
+            if (apps.get(i).isChecked()) {
+                listApps.add(apps.get(i));
+            }
+        }
+        return listApps;
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/adapter/IntroViewPagerAdapter.java b/app/src/main/java/com/amsal/ta/adapter/IntroViewPagerAdapter.java
new file mode 100644
index 0000000..192a2ff
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/adapter/IntroViewPagerAdapter.java
@@ -0,0 +1,70 @@
+package com.amsal.ta.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.viewpager.widget.PagerAdapter;
+
+import com.amsal.ta.R;
+import com.amsal.ta.model.ScreenItem;
+
+import java.util.List;
+
+public class IntroViewPagerAdapter extends PagerAdapter {
+
+    Context mContext ;
+    List<ScreenItem> mListScreen;
+
+    public IntroViewPagerAdapter(Context mContext, List<ScreenItem> mListScreen) {
+        this.mContext = mContext;
+        this.mListScreen = mListScreen;
+    }
+
+
+    @NonNull
+    @Override
+    public Object instantiateItem(@NonNull ViewGroup container, int position) {
+
+        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        View layoutScreen = inflater.inflate(R.layout.layout_screen,null);
+
+        ImageView imgSlide = layoutScreen.findViewById(R.id.intro_img);
+        TextView title = layoutScreen.findViewById(R.id.intro_title);
+        TextView description = layoutScreen.findViewById(R.id.intro_description);
+
+        title.setText(mListScreen.get(position).getTitle());
+        description.setText(mListScreen.get(position).getDescription());
+        imgSlide.setImageResource(mListScreen.get(position).getScreenImg());
+
+        container.addView(layoutScreen);
+
+        return layoutScreen;
+
+
+
+
+
+    }
+
+    @Override
+    public int getCount() {
+        return mListScreen.size();
+    }
+
+    @Override
+    public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
+        return view == o;
+    }
+
+    @Override
+    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
+
+        container.removeView((View)object);
+
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/adapter/ResultAdapter.java b/app/src/main/java/com/amsal/ta/adapter/ResultAdapter.java
new file mode 100644
index 0000000..a7eee8c
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/adapter/ResultAdapter.java
@@ -0,0 +1,95 @@
+package com.amsal.ta.adapter;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.amsal.ta.DetailResultActivity;
+import com.amsal.ta.R;
+import com.amsal.ta.ResultActivity;
+import com.amsal.ta.model.AppResult;
+import com.bumptech.glide.Glide;
+
+import java.util.ArrayList;
+
+public class ResultAdapter extends RecyclerView.Adapter<ResultAdapter.CardViewViewHolder> {
+    private ArrayList<AppResult> listAppResult;
+    private PackageManager packageManager;
+    private Context context;
+    private AppAdapter.OnItemClickCallback onItemClickCallback;
+
+    public ResultAdapter(@NonNull Context context, ArrayList<AppResult> list) {
+        this.listAppResult = list;
+        packageManager = context.getPackageManager();
+        this.context = context;
+        this.listAppResult = list;
+    }
+
+    public void setOnItemClickCallback(AppAdapter.OnItemClickCallback onItemClickCallback) {
+        this.onItemClickCallback = onItemClickCallback;
+    }
+
+    @NonNull
+    @Override
+    public CardViewViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
+        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.result_list, viewGroup, false);
+        return new CardViewViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull final CardViewViewHolder holder, int position) {
+
+        AppResult result = listAppResult.get(position);
+        Drawable background = result.getApp().info.loadIcon(packageManager);
+        holder.appPhoto.setBackgroundDrawable(background);
+        if (result.getStatus().equals("Tidak Berbahaya")) {
+            holder.tvStatus.setText(result.getStatus());
+            holder.tvStatus.setTextColor(Color.GREEN);
+        } else {
+            holder.tvStatus.setTextColor(Color.RED);
+            holder.tvStatus.setText(result.getStatus());
+        }
+        holder.tvName.setText(result.getApkName());
+        holder.tvMalware.setText(result.getMalware());
+        holder.btnDetail.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(context, DetailResultActivity.class);
+                intent.putExtra(DetailResultActivity.DETAIL_APP, result);
+                context.startActivity(intent);
+            }
+        });
+    }
+
+    @Override
+    public int getItemCount() {
+        return listAppResult.size();
+    }
+
+    class CardViewViewHolder extends RecyclerView.ViewHolder {
+        ImageView appPhoto;
+        TextView tvName, tvMalware, tvStatus;
+        Button btnDetail;
+
+        CardViewViewHolder(View itemView) {
+            super(itemView);
+            appPhoto = itemView.findViewById(R.id.img_item_photo);
+            tvName = itemView.findViewById(R.id.tv_item_name);
+            tvMalware = itemView.findViewById(R.id.tv_item_malware);
+            tvStatus = itemView.findViewById(R.id.tv_item_status);
+            btnDetail = itemView.findViewById(R.id.btn_set_detail);
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/model/AppInfo.java b/app/src/main/java/com/amsal/ta/model/AppInfo.java
new file mode 100644
index 0000000..1e9b084
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/model/AppInfo.java
@@ -0,0 +1,51 @@
+package com.amsal.ta.model;
+
+import android.content.pm.ApplicationInfo;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class AppInfo implements Parcelable {
+    public ApplicationInfo info;
+    public String label;
+    private boolean isChecked = false;
+
+    public AppInfo(Parcel in) {
+        info = in.readParcelable(ApplicationInfo.class.getClassLoader());
+        label = in.readString();
+    }
+
+    public boolean isChecked() {
+        return isChecked;
+    }
+
+    public void setChecked(boolean checked) {
+        isChecked = checked;
+    }
+
+    public static final Creator<AppInfo> CREATOR = new Creator<AppInfo>() {
+        @Override
+        public AppInfo createFromParcel(Parcel in) {
+            return new AppInfo(in);
+        }
+
+        @Override
+        public AppInfo[] newArray(int size) {
+            return new AppInfo[size];
+        }
+    };
+
+    public AppInfo() {
+
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeParcelable(info, flags);
+        dest.writeString(label);
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/model/AppResult.java b/app/src/main/java/com/amsal/ta/model/AppResult.java
new file mode 100644
index 0000000..7f32698
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/model/AppResult.java
@@ -0,0 +1,94 @@
+package com.amsal.ta.model;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class AppResult implements Parcelable {
+    public AppInfo app;
+    public String apkName;
+    public String status;
+    public String malware;
+    public String detail;
+
+    public String getDetail() {
+        return detail;
+    }
+
+    public void setDetail(String detail) {
+        this.detail = detail;
+    }
+
+    public AppInfo getApp() {
+        return app;
+    }
+
+    public void setApp(AppInfo app) {
+        this.app = app;
+    }
+
+    public String getApkName() {
+        return apkName;
+    }
+
+    public void setApkName(String apkName) {
+        this.apkName = apkName;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getMalware() {
+        return malware;
+    }
+
+    public void setMalware(String malware) {
+        this.malware = malware;
+    }
+
+    public static Creator<AppResult> getCREATOR() {
+        return CREATOR;
+    }
+
+    public AppResult(Parcel in) {
+        app = in.readParcelable(AppInfo.class.getClassLoader());
+        apkName = in.readString();
+        status = in.readString();
+        malware = in.readString();
+        detail = in.readString();
+    }
+
+    public static final Creator<AppResult> CREATOR = new Creator<AppResult>() {
+        @Override
+        public AppResult createFromParcel(Parcel in) {
+            return new AppResult(in);
+        }
+
+        @Override
+        public AppResult[] newArray(int size) {
+            return new AppResult[size];
+        }
+    };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeParcelable(app, flags);
+        dest.writeString(apkName);
+        dest.writeString(status);
+        dest.writeString(malware);
+        dest.writeString(detail);
+    }
+
+    public AppResult() {
+
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/model/ScreenItem.java b/app/src/main/java/com/amsal/ta/model/ScreenItem.java
new file mode 100644
index 0000000..c5a4cef
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/model/ScreenItem.java
@@ -0,0 +1,37 @@
+package com.amsal.ta.model;
+
+public class ScreenItem {
+
+    String Title,Description;
+    int ScreenImg;
+
+    public ScreenItem(String title, String description, int screenImg) {
+        Title = title;
+        Description = description;
+        ScreenImg = screenImg;
+    }
+
+    public void setTitle(String title) {
+        Title = title;
+    }
+
+    public void setDescription(String description) {
+        Description = description;
+    }
+
+    public void setScreenImg(int screenImg) {
+        ScreenImg = screenImg;
+    }
+
+    public String getTitle() {
+        return Title;
+    }
+
+    public String getDescription() {
+        return Description;
+    }
+
+    public int getScreenImg() {
+        return ScreenImg;
+    }
+}
diff --git a/app/src/main/java/com/amsal/ta/ui/account/AccountFragment.java b/app/src/main/java/com/amsal/ta/ui/account/AccountFragment.java
new file mode 100644
index 0000000..243f59c
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ui/account/AccountFragment.java
@@ -0,0 +1,35 @@
+package com.amsal.ta.ui.account;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import com.amsal.ta.R;
+
+public class AccountFragment extends Fragment {
+
+    private AccountViewModel notificationsViewModel;
+
+    public View onCreateView(@NonNull LayoutInflater inflater,
+                             ViewGroup container, Bundle savedInstanceState) {
+        notificationsViewModel =
+                ViewModelProviders.of(this).get(AccountViewModel.class);
+        View root = inflater.inflate(R.layout.fragment_account, container, false);
+        final TextView textView = root.findViewById(R.id.text_account);
+        notificationsViewModel.getText().observe(this, new Observer<String>() {
+            @Override
+            public void onChanged(@Nullable String s) {
+                textView.setText(s);
+            }
+        });
+        return root;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/ui/account/AccountViewModel.java b/app/src/main/java/com/amsal/ta/ui/account/AccountViewModel.java
new file mode 100644
index 0000000..069e8ca
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ui/account/AccountViewModel.java
@@ -0,0 +1,19 @@
+package com.amsal.ta.ui.account;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+
+public class AccountViewModel extends ViewModel {
+
+    private MutableLiveData<String> mText;
+
+    public AccountViewModel() {
+        mText = new MutableLiveData<>();
+        mText.setValue("This is notifications fragment");
+    }
+
+    public LiveData<String> getText() {
+        return mText;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/ui/dashboard/DashboardFragment.java b/app/src/main/java/com/amsal/ta/ui/dashboard/DashboardFragment.java
new file mode 100644
index 0000000..571df2f
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ui/dashboard/DashboardFragment.java
@@ -0,0 +1,307 @@
+package com.amsal.ta.ui.dashboard;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.os.Parcelable;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.amsal.ta.R;
+import com.amsal.ta.ResultActivity;
+import com.amsal.ta.adapter.AppAdapter;
+import com.amsal.ta.model.AppInfo;
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
+
+import org.jetbrains.annotations.NotNull;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import cz.msebera.android.httpclient.Header;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+
+public class DashboardFragment extends Fragment {
+
+    RecyclerView gridView;
+    private ProgressBar progressBar;
+    private ConstraintLayout scan;
+    boolean mIncludeSystemApps;
+    private Button btnScan;
+    private ImageView clear;
+    private BottomNavigationView bottomNavigationView;
+
+    public View onCreateView(@NonNull LayoutInflater inflater,
+                             ViewGroup container, Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_dashboard, container, false);
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+
+        scan = getActivity().findViewById(R.id.scan_layout);
+        gridView = getView().findViewById(R.id.griview);
+        gridView.setHasFixedSize(true);
+        btnScan = getActivity().findViewById(R.id.btn_scan);
+        bottomNavigationView = getActivity().findViewById(R.id.nav_view);
+        clear = getActivity().findViewById(R.id.clear);
+        progressBar = getActivity().findViewById(R.id.progressBar);
+        progressBar.setVisibility(View.INVISIBLE);
+
+
+        List<AppInfo> apps = new ArrayList<>();
+        PackageManager packageManager = getActivity().getPackageManager();
+        List<ApplicationInfo> infos = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
+
+        for (ApplicationInfo info : infos) {
+            if (!mIncludeSystemApps && (info.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
+                continue;
+            }
+            AppInfo app = new AppInfo();
+            app.info = info;
+            app.label = (String) info.loadLabel(packageManager);
+            apps.add(app);
+        }
+
+        //sort the data
+
+        Collections.sort(apps, new DNComparator());
+        gridView.setLayoutManager(new GridLayoutManager(getContext(), 4));
+        final AppAdapter adapter = new AppAdapter(getActivity(), apps);
+        gridView.setAdapter(adapter);
+
+        adapter.setOnItemClickCallback(new AppAdapter.OnItemClickCallback() {
+            @Override
+            public void onItemClicked(AppInfo data) {
+                int count = adapter.getSelected();
+                if (count > 0) {
+                    bottomNavigationView.setVisibility(View.INVISIBLE);
+                    scan.setVisibility(View.VISIBLE);
+                    btnScan.setText("SCAN(" + count + ")");
+                } else {
+                    scan.setVisibility(View.INVISIBLE);
+                    bottomNavigationView.setVisibility(View.VISIBLE);
+                }
+//                Toast.makeText(getActivity(), data.label, Toast.LENGTH_LONG).show();
+            }
+        });
+
+        clear.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                adapter.clearSelected();
+                gridView.setAdapter(adapter);
+                scan.setVisibility(View.INVISIBLE);
+                bottomNavigationView.setVisibility(View.VISIBLE);
+            }
+        });
+
+        btnScan.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent resultIntent = new Intent(getContext(), ResultActivity.class);
+                resultIntent.putParcelableArrayListExtra(ResultActivity.EXTRA_APP, adapter.getSelectedApk());
+                startActivity(resultIntent);
+            }
+        });
+
+    }
+
+    private class DNComparator implements Comparator<AppInfo> {
+
+        @Override
+        public int compare(AppInfo aa, AppInfo ab) {
+            CharSequence sa = aa.label;
+            CharSequence sb = ab.label;
+            if (sa == null) {
+                sa = aa.info.packageName;
+            }
+            if (sb == null) {
+                sb = ab.info.packageName;
+            }
+            return Collator.getInstance().compare(sa.toString(), sb.toString());
+        }
+    }
+
+//    private void scanApk(List<AppInfo> apps){
+//        progressBar.setVisibility(View.VISIBLE);
+//
+//        AsyncHttpClient client = new AsyncHttpClient();
+//        String url = "https://tugasakhir03.herokuapp.com/upload/";
+//
+//        RequestParams params = new RequestParams();
+//        try {
+//            for(int i = 0 ; i < apps.size(); i++){
+//                File apkFile = new File(apps.get(i).info.publicSourceDir);
+//                String packageName = apps.get(i).info.packageName;
+//                if (apkFile.isFile()) {
+////                    installedApkFilePaths.put(packageName, apkFile.getAbsolutePath());
+////                    Toast.makeText(getActivity(), apkFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
+//                      params.put("file", apkFile.getAbsoluteFile());
+//                      Log.d("horas" ,apkFile.getAbsoluteFile().getName());
+//                }
+//            }
+////            params.put("file", myFile);
+//        } catch(Exception e) {
+//            Log.d("horas" , "gagal");
+//        }
+//        client.put(getActivity(), url, params, new AsyncHttpResponseHandler() {
+//            @Override
+//            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
+//                Log.d("horas" , "mantap");
+//                progressBar.setVisibility(View.INVISIBLE);
+//            }
+//
+//            @Override
+//            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
+//                Log.d("horas" , "ancor");
+//                Log.e("horas    ", "onFailure: ERROR > " + error.getMessage());
+//            }
+//
+//        });
+
+
+//    }
+
+//    private void scanApk(List<AppInfo> apps) {
+//        ArrayList<JSONObject> resultApk = new ArrayList<JSONObject>();
+//        ArrayList<String> hasil = new ArrayList<String>();
+//        List<AppInfo> status = new ArrayList<AppInfo>();
+//        String url = "https://tugasakhir03.herokuapp.com/upload/";
+////        OkHttpClient fileUploadClient = new OkHttpClient.Builder().addNetworkInterceptor(chain -> {
+////            Request originalRequest = chain.request();
+////
+////            if (originalRequest.body() == null) {
+////                return chain.proceed(originalRequest);
+////            }
+////            Request progressRequest = originalRequest.newBuilder()
+////                    .build();
+////
+////            return chain.proceed(progressRequest);
+////
+////        }).build();
+////
+////        for (int i = 0; i < apps.size(); i++) {
+////            File apkFile = new File(apps.get(i).info.publicSourceDir);
+////            String packageName = apps.get(i).info.packageName;
+////            if (apkFile.isFile()) {
+////                fileName = apps.get(i).info.publicSourceDir;
+////                RequestBody requestBody = new MultipartBody.Builder()
+////                        .setType(MultipartBody.FORM)
+////                        .addFormDataPart("file", fileName, RequestBody.create(apkFile, MediaType.parse("application/*")))
+////                        .build();
+////                Log.d("horas", apkFile.getAbsoluteFile().getName());
+////
+////                Request request = new Request.Builder()
+////                        .url(url)
+//////                .header("Prediction-Key", "42b03f551d0a439785a7f601b92a18fb")
+//////                .header("Content-Type", "application/octet-stream")
+////                        .post(requestBody)
+////                        .build();
+////
+////                fileUploadClient.newCall(request).enqueue(new Callback() {
+////                    @Override
+////                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
+////                        Log.e("horas", "onFailure: ERROR > " + e.getMessage());
+////                        return;
+//////                loading.dismiss();
+////                    }
+////
+////                    @Override
+////                    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
+////                        if (response.isSuccessful()) {
+////                            Log.i("horas", "onResponse: BERHASIL");
+////                            try {
+////                                JSONObject jsonObject = new JSONObject(response.body().string());
+////                                String status = jsonObject.getString("status");
+////                                String malware_name = jsonObject.getString("malware_name");
+//////                        hasil.add(status);
+//////                        hasil.add(malware_name);
+//////                        hasil.add("Berhasil");
+//////                        Intent uploadIntent = new Intent(UploadActivity.this, UploadResultActivity.class);
+//////                        Toast.makeText(getApplicationContext() , jsonObject.toString(), Toast.LENGTH_LONG).show();
+//////                        for (int i = 0; i < jsonObject.getJSONArray("status").length(); i++) {
+//////                            probability = jsonObject.getJSONArray("predictions").getJSONObject(0).getString("probability");
+//////                            tagName = jsonObject.getJSONArray("predictions").getJSONObject(0).getString("tagName");
+//////                            Log.i("debug", "responseBody: " + tagName + " = " + probability);
+//////                        }
+//////                        uploadIntent.putExtra("AppInfo" , app);
+////                                Log.i("horas", status);
+//////                        loading.dismiss();
+//////                        getDataHamaResources(tagName);
+//////                        runOnUiThread(() -> getDataTanahResources(tagName));
+//////                        runOnUiThread(() -> showToast(tagName));
+////                            } catch (JSONException | IOException e) {
+////                                e.printStackTrace();
+////                            }
+////                        } else {
+////                            Log.i("horas", "onResponse: GAGAL");
+//////                    loading.dismiss();
+////                        }
+////                    }
+////                });
+////            }else{
+////
+////            }
+////        }
+//
+//        JSONObject json = new JSONObject();
+//        JSONArray array = new JSONArray();
+//        JSONObject item = new JSONObject();
+//
+//        //ini sementara, nanti akan dipindahkan jika server sudah oke
+//        try {
+//            json.put("nama_apk", "horas");
+//
+//            item.put("status", "Tidak Berbahaya");
+//            item.put("malware_name", "-");
+//
+//            array.put(item);
+//
+//            json.put("response", array);
+//            Log.d("horas", json.getJSONArray("response").getJSONObject(0).getString("status"));
+//        }catch (Exception e){}
+//
+//        resultApk.add(json);
+//        status.add(apps.get(0));
+//
+//
+//    }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/ui/dashboard/DashboardViewModel.java b/app/src/main/java/com/amsal/ta/ui/dashboard/DashboardViewModel.java
new file mode 100644
index 0000000..d477cfe
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ui/dashboard/DashboardViewModel.java
@@ -0,0 +1,19 @@
+package com.amsal.ta.ui.dashboard;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+
+public class DashboardViewModel extends ViewModel {
+
+    private MutableLiveData<String> mText;
+
+    public DashboardViewModel() {
+        mText = new MutableLiveData<>();
+        mText.setValue("This is dashboard fragment");
+    }
+
+    public LiveData<String> getText() {
+        return mText;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/ui/home/HomeFragment.java b/app/src/main/java/com/amsal/ta/ui/home/HomeFragment.java
new file mode 100644
index 0000000..aa0aa60
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ui/home/HomeFragment.java
@@ -0,0 +1,35 @@
+package com.amsal.ta.ui.home;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
+
+import com.amsal.ta.R;
+
+public class HomeFragment extends Fragment {
+
+    private HomeViewModel homeViewModel;
+
+    public View onCreateView(@NonNull LayoutInflater inflater,
+                             ViewGroup container, Bundle savedInstanceState) {
+        homeViewModel =
+                ViewModelProviders.of(this).get(HomeViewModel.class);
+        View root = inflater.inflate(R.layout.fragment_home, container, false);
+        final TextView textView = root.findViewById(R.id.text_home);
+        homeViewModel.getText().observe(this, new Observer<String>() {
+            @Override
+            public void onChanged(@Nullable String s) {
+                textView.setText(s);
+            }
+        });
+        return root;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/amsal/ta/ui/home/HomeViewModel.java b/app/src/main/java/com/amsal/ta/ui/home/HomeViewModel.java
new file mode 100644
index 0000000..0881c79
--- /dev/null
+++ b/app/src/main/java/com/amsal/ta/ui/home/HomeViewModel.java
@@ -0,0 +1,19 @@
+package com.amsal.ta.ui.home;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+
+public class HomeViewModel extends ViewModel {
+
+    private MutableLiveData<String> mText;
+
+    public HomeViewModel() {
+        mText = new MutableLiveData<>();
+        mText.setValue("This is home fragment");
+    }
+
+    public LiveData<String> getText() {
+        return mText;
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/res/anim/bottom_animation.xml b/app/src/main/res/anim/bottom_animation.xml
new file mode 100644
index 0000000..6621fa7
--- /dev/null
+++ b/app/src/main/res/anim/bottom_animation.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <translate
+        android:fromXDelta="0%"
+        android:fromYDelta="100%"
+        android:duration="1500"/>
+
+    <alpha
+        android:fromAlpha="0.1"
+        android:toAlpha="1.0"
+        android:duration="1500"/>
+
+</set>
\ No newline at end of file
diff --git a/app/src/main/res/anim/button_animation.xml b/app/src/main/res/anim/button_animation.xml
new file mode 100644
index 0000000..4d9e84d
--- /dev/null
+++ b/app/src/main/res/anim/button_animation.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <alpha
+        android:fromAlpha="0.0"
+        android:toAlpha="1.0"
+        android:duration="500" />
+
+    <translate
+        android:fromYDelta="-100%"
+        android:toYDelta="0%"
+        android:duration="700" />
+
+
+
+</set>
\ No newline at end of file
diff --git a/app/src/main/res/anim/top_animation.xml b/app/src/main/res/anim/top_animation.xml
new file mode 100644
index 0000000..b8c7211
--- /dev/null
+++ b/app/src/main/res/anim/top_animation.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <translate
+        android:fromXDelta="0%"
+        android:fromYDelta="-50%"
+        android:duration="2000"/>
+
+    <alpha
+        android:fromAlpha="0.1"
+        android:toAlpha="1.0"
+        android:duration="1500"/>
+
+</set>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/btn_gradient_style.xml b/app/src/main/res/drawable-v24/btn_gradient_style.xml
new file mode 100644
index 0000000..17da166
--- /dev/null
+++ b/app/src/main/res/drawable-v24/btn_gradient_style.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="6dp"></corners>
+
+
+    <gradient android:startColor="@color/gradient_start_color"
+        android:endColor="@color/gradient_end_color" />
+
+
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/drawable-v24/btn_gradient_style.xml b/app/src/main/res/drawable-v24/drawable-v24/btn_gradient_style.xml
new file mode 100644
index 0000000..17da166
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable-v24/btn_gradient_style.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="6dp"></corners>
+
+
+    <gradient android:startColor="@color/gradient_start_color"
+        android:endColor="@color/gradient_end_color" />
+
+
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..1f6bb29
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path
+        android:fillType="evenOdd"
+        android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
+        android:strokeWidth="1"
+        android:strokeColor="#00000000">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                android:endX="78.5885"
+                android:endY="90.9159"
+                android:startX="48.7653"
+                android:startY="61.0927"
+                android:type="linear">
+                <item
+                    android:color="#44000000"
+                    android:offset="0.0" />
+                <item
+                    android:color="#00000000"
+                    android:offset="1.0" />
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
+        android:strokeWidth="1"
+        android:strokeColor="#00000000" />
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable-v24/ic_policy.png b/app/src/main/res/drawable-v24/drawable-v24/ic_policy.png
new file mode 100644
index 0000000..9de56c1
Binary files /dev/null and b/app/src/main/res/drawable-v24/drawable-v24/ic_policy.png differ
diff --git a/app/src/main/res/drawable-v24/drawable-v24/img1.png b/app/src/main/res/drawable-v24/drawable-v24/img1.png
new file mode 100644
index 0000000..174a7b0
Binary files /dev/null and b/app/src/main/res/drawable-v24/drawable-v24/img1.png differ
diff --git a/app/src/main/res/drawable-v24/drawable-v24/img2.png b/app/src/main/res/drawable-v24/drawable-v24/img2.png
new file mode 100644
index 0000000..3be48f4
Binary files /dev/null and b/app/src/main/res/drawable-v24/drawable-v24/img2.png differ
diff --git a/app/src/main/res/drawable-v24/drawable-v24/img3.png b/app/src/main/res/drawable-v24/drawable-v24/img3.png
new file mode 100644
index 0000000..8d613fd
Binary files /dev/null and b/app/src/main/res/drawable-v24/drawable-v24/img3.png differ
diff --git a/app/src/main/res/drawable-v24/drawable-v24/indicator_default.xml b/app/src/main/res/drawable-v24/drawable-v24/indicator_default.xml
new file mode 100644
index 0000000..44fc6f8
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable-v24/indicator_default.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item>
+
+        <shape android:shape="ring"
+                android:innerRadius="0dp"
+                android:thickness="4dp"
+                android:useLevel="false">
+
+            <solid android:color="@color/tab_indicator_gray" />
+
+
+
+        </shape>
+
+
+
+    </item>
+
+
+
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/drawable-v24/indicator_selected.xml b/app/src/main/res/drawable-v24/drawable-v24/indicator_selected.xml
new file mode 100644
index 0000000..479d1c0
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable-v24/indicator_selected.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item>
+
+        <shape android:shape="ring"
+            android:innerRadius="3dp"
+            android:thickness="2dp"
+            android:useLevel="false">
+
+            <solid android:color="@color/gradient_start_color" />
+
+
+
+        </shape>
+
+
+
+    </item>
+
+
+
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/drawable-v24/indicator_selector.xml b/app/src/main/res/drawable-v24/drawable-v24/indicator_selector.xml
new file mode 100644
index 0000000..e738fca
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable-v24/indicator_selector.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+    <item android:drawable="@drawable/indicator_selected"
+            android:state_selected="true" />
+
+    <item android:drawable="@drawable/indicator_default" />
+
+
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/drawable/ic_arrow_forward_black_24dp.xml b/app/src/main/res/drawable-v24/drawable/ic_arrow_forward_black_24dp.xml
new file mode 100644
index 0000000..cf9e208
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable/ic_arrow_forward_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/>
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable/ic_dashboard_black_24dp.xml b/app/src/main/res/drawable-v24/drawable/ic_dashboard_black_24dp.xml
new file mode 100644
index 0000000..46fc8de
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable/ic_dashboard_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" />
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable/ic_home_black_24dp.xml b/app/src/main/res/drawable-v24/drawable/ic_home_black_24dp.xml
new file mode 100644
index 0000000..f8bb0b5
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable/ic_home_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable/ic_launcher_background.xml b/app/src/main/res/drawable-v24/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..0d025f9
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path
+        android:fillColor="#008577"
+        android:pathData="M0,0h108v108h-108z" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M9,0L9,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,0L19,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,0L29,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,0L39,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,0L49,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,0L59,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,0L69,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,0L79,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M89,0L89,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M99,0L99,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,9L108,9"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,19L108,19"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,29L108,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,39L108,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,49L108,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,59L108,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,69L108,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,79L108,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,89L108,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,99L108,99"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,29L89,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,39L89,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,49L89,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,59L89,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,69L89,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,79L89,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,19L29,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,19L39,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,19L49,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,19L59,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,19L69,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,19L79,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable-v24/drawable/ic_notifications_black_24dp.xml
new file mode 100644
index 0000000..78b75c3
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable/ic_notifications_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable/ic_person_black_24dp.xml b/app/src/main/res/drawable-v24/drawable/ic_person_black_24dp.xml
new file mode 100644
index 0000000..b2cb337
--- /dev/null
+++ b/app/src/main/res/drawable-v24/drawable/ic_person_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/app/src/main/res/drawable-v24/drawable/logos.png b/app/src/main/res/drawable-v24/drawable/logos.png
new file mode 100644
index 0000000..3c0eab9
Binary files /dev/null and b/app/src/main/res/drawable-v24/drawable/logos.png differ
diff --git a/app/src/main/res/drawable-v24/error.png b/app/src/main/res/drawable-v24/error.png
new file mode 100644
index 0000000..b37a9b4
Binary files /dev/null and b/app/src/main/res/drawable-v24/error.png differ
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..1f6bb29
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path
+        android:fillType="evenOdd"
+        android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
+        android:strokeWidth="1"
+        android:strokeColor="#00000000">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                android:endX="78.5885"
+                android:endY="90.9159"
+                android:startX="48.7653"
+                android:startY="61.0927"
+                android:type="linear">
+                <item
+                    android:color="#44000000"
+                    android:offset="0.0" />
+                <item
+                    android:color="#00000000"
+                    android:offset="1.0" />
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path
+        android:fillColor="#FFFFFF"
+        android:fillType="nonZero"
+        android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
+        android:strokeWidth="1"
+        android:strokeColor="#00000000" />
+</vector>
diff --git a/app/src/main/res/drawable-v24/ic_policy.png b/app/src/main/res/drawable-v24/ic_policy.png
new file mode 100644
index 0000000..9de56c1
Binary files /dev/null and b/app/src/main/res/drawable-v24/ic_policy.png differ
diff --git a/app/src/main/res/drawable-v24/img1.png b/app/src/main/res/drawable-v24/img1.png
new file mode 100644
index 0000000..174a7b0
Binary files /dev/null and b/app/src/main/res/drawable-v24/img1.png differ
diff --git a/app/src/main/res/drawable-v24/img2.png b/app/src/main/res/drawable-v24/img2.png
new file mode 100644
index 0000000..3be48f4
Binary files /dev/null and b/app/src/main/res/drawable-v24/img2.png differ
diff --git a/app/src/main/res/drawable-v24/img3.png b/app/src/main/res/drawable-v24/img3.png
new file mode 100644
index 0000000..8d613fd
Binary files /dev/null and b/app/src/main/res/drawable-v24/img3.png differ
diff --git a/app/src/main/res/drawable-v24/indicator_default.xml b/app/src/main/res/drawable-v24/indicator_default.xml
new file mode 100644
index 0000000..44fc6f8
--- /dev/null
+++ b/app/src/main/res/drawable-v24/indicator_default.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item>
+
+        <shape android:shape="ring"
+                android:innerRadius="0dp"
+                android:thickness="4dp"
+                android:useLevel="false">
+
+            <solid android:color="@color/tab_indicator_gray" />
+
+
+
+        </shape>
+
+
+
+    </item>
+
+
+
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/indicator_selected.xml b/app/src/main/res/drawable-v24/indicator_selected.xml
new file mode 100644
index 0000000..479d1c0
--- /dev/null
+++ b/app/src/main/res/drawable-v24/indicator_selected.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item>
+
+        <shape android:shape="ring"
+            android:innerRadius="3dp"
+            android:thickness="2dp"
+            android:useLevel="false">
+
+            <solid android:color="@color/gradient_start_color" />
+
+
+
+        </shape>
+
+
+
+    </item>
+
+
+
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/indicator_selector.xml b/app/src/main/res/drawable-v24/indicator_selector.xml
new file mode 100644
index 0000000..e738fca
--- /dev/null
+++ b/app/src/main/res/drawable-v24/indicator_selector.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+    <item android:drawable="@drawable/indicator_selected"
+            android:state_selected="true" />
+
+    <item android:drawable="@drawable/indicator_default" />
+
+
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_arrow_forward_black_24dp.xml b/app/src/main/res/drawable/ic_arrow_forward_black_24dp.xml
new file mode 100644
index 0000000..cf9e208
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_forward_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_check_circle_black_24dp.xml b/app/src/main/res/drawable/ic_check_circle_black_24dp.xml
new file mode 100644
index 0000000..d44c9a2
--- /dev/null
+++ b/app/src/main/res/drawable/ic_check_circle_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="@color/colorPrimary"
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_clear_black_24dp.xml b/app/src/main/res/drawable/ic_clear_black_24dp.xml
new file mode 100644
index 0000000..ede4b71
--- /dev/null
+++ b/app/src/main/res/drawable/ic_clear_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml
new file mode 100644
index 0000000..46fc8de
--- /dev/null
+++ b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_file_upload_black_24dp.xml b/app/src/main/res/drawable/ic_file_upload_black_24dp.xml
new file mode 100644
index 0000000..d633972
--- /dev/null
+++ b/app/src/main/res/drawable/ic_file_upload_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M9,16h6v-6h4l-7,-7 -7,7h4zM5,18h14v2L5,20z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_home_black_24dp.xml b/app/src/main/res/drawable/ic_home_black_24dp.xml
new file mode 100644
index 0000000..f8bb0b5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_home_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..0d025f9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+    <path
+        android:fillColor="#008577"
+        android:pathData="M0,0h108v108h-108z" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M9,0L9,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,0L19,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,0L29,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,0L39,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,0L49,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,0L59,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,0L69,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,0L79,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M89,0L89,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M99,0L99,108"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,9L108,9"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,19L108,19"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,29L108,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,39L108,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,49L108,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,59L108,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,69L108,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,79L108,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,89L108,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M0,99L108,99"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,29L89,29"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,39L89,39"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,49L89,49"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,59L89,59"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,69L89,69"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M19,79L89,79"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M29,19L29,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M39,19L39,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M49,19L49,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M59,19L59,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M69,19L69,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+    <path
+        android:fillColor="#00000000"
+        android:pathData="M79,19L79,89"
+        android:strokeWidth="0.8"
+        android:strokeColor="#33FFFFFF" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
new file mode 100644
index 0000000..78b75c3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
+</vector>
diff --git a/app/src/main/res/drawable/ic_person_black_24dp.xml b/app/src/main/res/drawable/ic_person_black_24dp.xml
new file mode 100644
index 0000000..b2cb337
--- /dev/null
+++ b/app/src/main/res/drawable/ic_person_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/app/src/main/res/drawable/logos.png b/app/src/main/res/drawable/logos.png
new file mode 100644
index 0000000..3c0eab9
Binary files /dev/null and b/app/src/main/res/drawable/logos.png differ
diff --git a/app/src/main/res/font/acme.xml b/app/src/main/res/font/acme.xml
new file mode 100644
index 0000000..b8c586d
--- /dev/null
+++ b/app/src/main/res/font/acme.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
+        app:fontProviderAuthority="com.google.android.gms.fonts"
+        app:fontProviderPackage="com.google.android.gms"
+        app:fontProviderQuery="Acme"
+        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
+</font-family>
diff --git a/app/src/main/res/font/antic.xml b/app/src/main/res/font/antic.xml
new file mode 100644
index 0000000..20c218f
--- /dev/null
+++ b/app/src/main/res/font/antic.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
+        app:fontProviderAuthority="com.google.android.gms.fonts"
+        app:fontProviderPackage="com.google.android.gms"
+        app:fontProviderQuery="Antic"
+        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
+</font-family>
diff --git a/app/src/main/res/font/berkshire_swash.xml b/app/src/main/res/font/berkshire_swash.xml
new file mode 100644
index 0000000..b2a4424
--- /dev/null
+++ b/app/src/main/res/font/berkshire_swash.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
+        app:fontProviderAuthority="com.google.android.gms.fonts"
+        app:fontProviderPackage="com.google.android.gms"
+        app:fontProviderQuery="Berkshire Swash"
+        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
+</font-family>
diff --git a/app/src/main/res/font/chivo_black_italic.xml b/app/src/main/res/font/chivo_black_italic.xml
new file mode 100644
index 0000000..53c7c2f
--- /dev/null
+++ b/app/src/main/res/font/chivo_black_italic.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
+        app:fontProviderAuthority="com.google.android.gms.fonts"
+        app:fontProviderPackage="com.google.android.gms"
+        app:fontProviderQuery="name=Chivo&amp;weight=900&amp;italic=1"
+        app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
+</font-family>
diff --git a/app/src/main/res/layout/activity_detail_result.xml b/app/src/main/res/layout/activity_detail_result.xml
new file mode 100644
index 0000000..0c395bd
--- /dev/null
+++ b/app/src/main/res/layout/activity_detail_result.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="405dp">
+        <LinearLayout
+            android:background="@color/design_default_color_background"
+            android:layout_width="match_parent"
+            android:layout_height="350dp"
+            android:orientation="vertical">
+            <ImageView
+                android:id="@+id/app_logo"
+                android:layout_marginTop="45dp"
+                android:layout_gravity="center_horizontal"
+                android:layout_width="150dp"
+                android:layout_height="150dp"/>
+            <TextView
+                android:id="@+id/app_name"
+                android:layout_marginTop="10dp"
+                android:layout_gravity="center_horizontal"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Application name"
+                android:textColor="@color/colorPrimaryDark"
+                android:textStyle="bold"
+                android:textSize="21sp"/>
+        </LinearLayout>
+
+        <androidx.cardview.widget.CardView
+            android:layout_width="358dp"
+            android:layout_height="104dp"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="275dp">
+
+            <LinearLayout
+                android:id="@+id/status_card"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="horizontal"
+                android:weightSum="2">
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="2"
+                    android:gravity="center"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:id="@+id/status"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="#FFFFFF"
+                        android:text="STATUS"
+                        android:textSize="20sp" />
+
+                    <TextView
+                        android:id="@+id/malware_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:paddingTop="10dp"
+                        android:text="Malware Name"
+                        android:textColor="#FFFFFF"
+                        android:textSize="20sp"
+                        android:textStyle="bold" />
+
+                </LinearLayout>
+
+            </LinearLayout>
+        </androidx.cardview.widget.CardView>
+    </RelativeLayout>
+    <TextView
+        android:textStyle="bold"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingLeft="20dp"
+        android:text="Keterangan Malware"/>
+
+    <LinearLayout
+        android:layout_width="360dp"
+        android:layout_height="250dp"
+        android:orientation="vertical"
+        android:layout_gravity="center"
+        android:layout_marginTop="25dp">
+
+        <TextView
+            android:id="@+id/detail"
+            android:layout_gravity="center_vertical"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingLeft="20dp"
+            android:text="Lorem Ipsum"/>
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_intro.xml b/app/src/main/res/layout/activity_intro.xml
new file mode 100644
index 0000000..75473ba
--- /dev/null
+++ b/app/src/main/res/layout/activity_intro.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".IntroActivity">
+
+    <androidx.viewpager.widget.ViewPager
+        android:id="@+id/screen_viewpager"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_marginBottom="8dp"
+        app:layout_constraintBottom_toTopOf="@+id/tab_indicator"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <Button
+        android:id="@+id/btn_next"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="32dp"
+        android:layout_marginRight="32dp"
+        android:layout_marginBottom="16dp"
+        android:background="#fff"
+        android:drawableRight="@drawable/ic_arrow_forward_black_24dp"
+        android:drawableTint="@color/gradient_start_color"
+        android:text="Next"
+        android:textColor="@color/gradient_start_color"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent" />
+
+    <com.google.android.material.tabs.TabLayout
+        android:id="@+id/tab_indicator"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="32dp"
+        android:layout_marginLeft="32dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:layout_marginBottom="16dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toStartOf="@+id/btn_next"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintStart_toStartOf="parent"
+        app:tabBackground="@drawable/indicator_selector">
+
+    </com.google.android.material.tabs.TabLayout>
+
+    <Button
+        android:visibility="invisible"
+        android:id="@+id/btn_get_started"
+        android:layout_width="132dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:layout_marginBottom="64dp"
+        android:background="@drawable/btn_gradient_style"
+        android:text="Get Started"
+        android:textColor="#fff"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent" />
+
+    <TextView
+        android:textSize="16sp"
+        android:textStyle="bold"
+        android:textColor="#2d2d2d"
+        android:id="@+id/tv_skip"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="24dp"
+        android:layout_marginEnd="24dp"
+        android:layout_marginRight="24dp"
+        android:text="Skip"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..a3eed0c
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <ProgressBar
+        android:id="@+id/progressBar"
+        style="?android:attr/progressBarStyle"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/scan_layout"
+        android:layout_width="410dp"
+        android:layout_height="55dp"
+        android:background="?android:attr/windowBackground"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent">
+
+
+        <ImageView
+            android:id="@+id/clear"
+            android:layout_width="37dp"
+            android:layout_height="38dp"
+            android:layout_marginStart="64dp"
+            android:src="@drawable/ic_clear_black_24dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.47" />
+
+        <Button
+            android:id="@+id/btn_scan"
+            android:layout_width="133dp"
+            android:layout_height="37dp"
+            android:background="@drawable/btn_gradient_style"
+            android:text="Scan"
+            android:textColor="#fff"
+            android:visibility="visible"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+    <com.google.android.material.bottomnavigation.BottomNavigationView
+        android:id="@+id/nav_view"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="0dp"
+        android:layout_marginEnd="0dp"
+        android:background="?android:attr/windowBackground"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        android:visibility="visible"
+        app:menu="@menu/bottom_nav_menu" />
+
+    <fragment
+        android:id="@+id/nav_host_fragment"
+        android:name="androidx.navigation.fragment.NavHostFragment"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        app:defaultNavHost="true"
+        app:layout_constraintBottom_toTopOf="@+id/nav_view"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0"
+        app:navGraph="@navigation/mobile_navigation" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_result.xml b/app/src/main/res/layout/activity_result.xml
new file mode 100644
index 0000000..070ed28
--- /dev/null
+++ b/app/src/main/res/layout/activity_result.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ResultActivity">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/rv_result"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:listitem="@layout/result_list" />
+
+    <include layout="@layout/layout_error" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_splashscreen.xml b/app/src/main/res/layout/activity_splashscreen.xml
new file mode 100644
index 0000000..d57a7a2
--- /dev/null
+++ b/app/src/main/res/layout/activity_splashscreen.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".SplashscreenActivity">
+
+    <ImageView
+        android:id="@+id/logo"
+        android:layout_width="0dp"
+        android:layout_height="271dp"
+        android:layout_marginTop="150dp"
+        android:src="@drawable/logos"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.565"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/txt_apps_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="36dp"
+        android:fontFamily="@font/chivo_black_italic"
+        android:text="NamaApps"
+        android:textAlignment="center"
+        android:textSize="55sp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/logo" />
+
+    <TextView
+        android:id="@+id/txt_apps"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="12dp"
+        android:fontFamily="@font/antic"
+        android:text="Malware Detector Apps"
+        android:textAlignment="center"
+        android:textSize="18sp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/txt_apps_name" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/app_layout.xml b/app/src/main/res/layout/app_layout.xml
new file mode 100644
index 0000000..ece59c3
--- /dev/null
+++ b/app/src/main/res/layout/app_layout.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="8dp"
+    android:layout_marginBottom="10dp"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/icon_image"
+        android:layout_width="60dp"
+        android:layout_height="60dp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/imageCheck"
+        android:layout_width="20dp"
+        android:layout_height="20dp"
+        android:src="@drawable/ic_check_circle_black_24dp"
+        android:visibility="gone"
+        app:layout_constraintEnd_toEndOf="@+id/icon_image"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/titleTextView"
+        android:layout_width="100dp"
+        android:layout_height="20dp"
+        android:layout_marginTop="4dp"
+        android:gravity="center"
+        android:textSize="8sp"
+        android:textStyle="bold"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/icon_image" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_account.xml b/app/src/main/res/layout/fragment_account.xml
new file mode 100644
index 0000000..20ebff8
--- /dev/null
+++ b/app/src/main/res/layout/fragment_account.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/text_account"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="8dp"
+        android:layout_marginEnd="8dp"
+        android:textAlignment="center"
+        android:textSize="20sp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml
new file mode 100644
index 0000000..55af52f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_dashboard.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/griview"
+        android:numColumns="auto_fit"
+        android:gravity="center"
+        android:columnWidth="100dp"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 0000000..fba9341
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/text_home"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginTop="8dp"
+        android:layout_marginEnd="8dp"
+        android:textAlignment="center"
+        android:textSize="20sp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_error.xml b/app/src/main/res/layout/layout_error.xml
new file mode 100644
index 0000000..ec12ed6
--- /dev/null
+++ b/app/src/main/res/layout/layout_error.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/error_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:visibility="gone">
+
+    <ImageView
+        android:id="@+id/error_img"
+        android:layout_width="407dp"
+        android:layout_height="311dp"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="64dp"
+        tools:srcCompat="@drawable/error" />
+
+    <TextView
+        android:id="@+id/error_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/error_img"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="4dp"
+        android:fontFamily="sans-serif-light"
+        android:text="Upps ! Something wrong here :("
+        android:textSize="25dp"
+        android:textStyle="bold" />
+
+    <TextView
+        android:id="@+id/error_desc"
+        android:layout_width="383dp"
+        android:layout_height="40dp"
+        android:layout_marginTop="8dp"
+        android:layout_below="@+id/error_title"
+        android:layout_centerHorizontal="true"
+        android:text="Sometimes there are applications that cannot be scanned, such as Games and default applications."
+        android:textAlignment="center"/>
+
+    <Button
+        android:id="@+id/back_btn"
+        android:layout_width="110dp"
+        android:layout_height="38dp"
+        android:layout_marginTop="19dp"
+        android:background="@color/cardview_dark_background"
+        android:layout_below="@+id/error_desc"
+        android:layout_centerHorizontal="true"
+        android:text="Back"
+        android:textColor="#FFFFFF"/>
+
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_screen.xml b/app/src/main/res/layout/layout_screen.xml
new file mode 100644
index 0000000..0806a41
--- /dev/null
+++ b/app/src/main/res/layout/layout_screen.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <androidx.constraintlayout.widget.Guideline
+        android:id="@+id/guideline"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        app:layout_constraintGuide_percent="0.56882256" />
+
+    <TextView
+        android:id="@+id/intro_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginEnd="16dp"
+        android:layout_marginRight="16dp"
+        android:layout_marginBottom="8dp"
+        android:text="TextView"
+        android:textColor="@color/intro_title_color"
+        android:textSize="32dp"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toTopOf="@+id/guideline"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/guideline" />
+
+    <TextView
+        android:lineSpacingExtra="16dp"
+        android:id="@+id/intro_description"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="32dp"
+        android:layout_marginLeft="32dp"
+        android:layout_marginTop="8dp"
+        android:layout_marginEnd="32dp"
+        android:layout_marginRight="32dp"
+        android:layout_marginBottom="8dp"
+        android:text="TextView"
+        android:textAlignment="center"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/intro_title"
+        app:layout_constraintVertical_bias="0.13" />
+
+    <ImageView
+        android:id="@+id/intro_img"
+        android:layout_width="wrap_content"
+        android:layout_height="222dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:layout_marginBottom="32dp"
+        app:layout_constraintBottom_toTopOf="@+id/intro_title"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        tools:srcCompat="@tools:sample/avatars" />
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/result_list.xml b/app/src/main/res/layout/result_list.xml
new file mode 100644
index 0000000..a49dc12
--- /dev/null
+++ b/app/src/main/res/layout/result_list.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/card_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:layout_marginLeft="8dp"
+    android:layout_marginTop="4dp"
+    android:layout_marginRight="8dp"
+    android:layout_marginBottom="4dp"
+    card_view:cardCornerRadius="4dp">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:padding="8dp">
+
+        <ImageView
+            android:id="@+id/img_item_photo"
+            android:layout_width="75dp"
+            android:layout_height="75dp"
+            android:layout_alignParentTop="true"
+            android:layout_marginTop="14dp"
+            android:layout_marginBottom="4dp"
+            android:scaleType="centerCrop"
+            tools:src="@color/colorAccent" />
+
+        <TextView
+            android:id="@+id/tv_item_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="31dp"
+            android:layout_marginLeft="31dp"
+            android:layout_marginTop="16dp"
+            android:layout_marginRight="16dp"
+            android:layout_marginBottom="8dp"
+            android:layout_toEndOf="@id/img_item_photo"
+            android:layout_toRightOf="@id/img_item_photo"
+            android:textSize="16sp"
+            android:textStyle="bold"
+            tools:text="@string/apps_name" />
+
+        <TextView
+            android:id="@+id/tv_item_status"
+            android:layout_width="195dp"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/tv_item_name"
+            android:layout_marginStart="36dp"
+            android:layout_marginLeft="36dp"
+            android:layout_marginTop="5dp"
+            android:layout_marginRight="16dp"
+            android:layout_toEndOf="@id/img_item_photo"
+            android:layout_toRightOf="@id/img_item_photo"
+            android:ellipsize="end"
+            android:maxLines="5"
+            android:textAlignment="center"
+            android:textStyle="bold"
+            tools:text="@string/app_status" />
+
+        <TextView
+            android:id="@+id/tv_item_malware"
+            android:layout_width="196dp"
+            android:layout_height="18dp"
+            android:layout_below="@+id/tv_item_status"
+            android:layout_marginStart="36dp"
+            android:layout_marginLeft="36dp"
+            android:layout_marginTop="4dp"
+            android:layout_marginRight="16dp"
+            android:layout_toEndOf="@id/img_item_photo"
+            android:layout_toRightOf="@id/img_item_photo"
+            android:ellipsize="end"
+            android:maxLines="5"
+            android:textAlignment="center"
+            tools:text="@string/app_malware" />
+
+
+        <Button
+            android:id="@+id/btn_set_detail"
+            style="@style/Widget.AppCompat.Button.Colored"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/tv_item_malware"
+            android:layout_marginStart="0dp"
+            android:layout_marginTop="6dp"
+            android:layout_toEndOf="@+id/img_item_photo"
+            android:text="@string/detail"
+            android:textSize="12sp" />
+    </RelativeLayout>
+</androidx.cardview.widget.CardView>
diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml
new file mode 100644
index 0000000..8417d1b
--- /dev/null
+++ b/app/src/main/res/menu/bottom_nav_menu.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item
+        android:id="@+id/navigation_home"
+        android:icon="@drawable/ic_home_black_24dp"
+        android:title="@string/title_home" />
+
+    <item
+        android:id="@+id/navigation_dashboard"
+        android:icon="@drawable/ic_policy"
+        android:title="@string/title_scan" />
+
+    <item
+        android:id="@+id/navigation_account"
+        android:icon="@drawable/ic_person_black_24dp"
+        android:title="@string/title_account" />
+
+</menu>
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background" />
+    <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background" />
+    <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..898f3ed
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..dffca36
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..64ba76f
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..dae5e08
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..e5ed465
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..14ed0af
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..b0907ca
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..d8ae031
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..2c18de9
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..beed3cd
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
new file mode 100644
index 0000000..d7f3dcf
--- /dev/null
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/mobile_navigation"
+    app:startDestination="@+id/navigation_dashboard">
+
+    <fragment
+        android:id="@+id/navigation_home"
+        android:name="com.amsal.ta.ui.home.HomeFragment"
+        android:label="@string/title_home"
+        tools:layout="@layout/fragment_home" />
+
+    <fragment
+        android:id="@+id/navigation_dashboard"
+        android:name="com.amsal.ta.ui.dashboard.DashboardFragment"
+        android:label="@string/title_dashboard"
+        tools:layout="@layout/fragment_dashboard" />
+
+    <fragment
+        android:id="@+id/navigation_account"
+        android:name="com.amsal.ta.ui.account.AccountFragment"
+        android:label="@string/title_account"
+        tools:layout="@layout/fragment_account" />
+</navigation>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..3571589
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="colorPrimary">#03A9F4</color>
+    <color name="colorPrimaryDark">#0288D1</color>
+    <color name="colorAccent">#FF9800</color>
+
+    <!--btn color-->
+
+    <color name="gradient_start_color">#4c84ff</color>
+    <color name="gradient_end_color">#18a3fe</color>
+
+    <color name="tab_indicator_gray">#c0c0c0</color>
+    <color name="intro_title_color">#000000</color>
+    <color name="intro_description_color">#656565</color>
+
+
+</resources>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..47c8224
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<resources>
+    <!-- Default screen margins, per the Android Design guidelines. -->
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+</resources>
diff --git a/app/src/main/res/values/font_certs.xml b/app/src/main/res/values/font_certs.xml
new file mode 100644
index 0000000..d2226ac
--- /dev/null
+++ b/app/src/main/res/values/font_certs.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <array name="com_google_android_gms_fonts_certs">
+        <item>@array/com_google_android_gms_fonts_certs_dev</item>
+        <item>@array/com_google_android_gms_fonts_certs_prod</item>
+    </array>
+    <string-array name="com_google_android_gms_fonts_certs_dev">
+        <item>
+            MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
+        </item>
+    </string-array>
+    <string-array name="com_google_android_gms_fonts_certs_prod">
+        <item>
+            MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK
+        </item>
+    </string-array>
+</resources>
diff --git a/app/src/main/res/values/preloaded_fonts.xml b/app/src/main/res/values/preloaded_fonts.xml
new file mode 100644
index 0000000..e1a2109
--- /dev/null
+++ b/app/src/main/res/values/preloaded_fonts.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <array name="preloaded_fonts" translatable="false">
+        <item>@font/acme</item>
+        <item>@font/antic</item>
+        <item>@font/berkshire_swash</item>
+        <item>@font/chivo_black_italic</item>
+    </array>
+</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..2047c9d
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,13 @@
+<resources>
+    <string name="app_name">TugasAkhir</string>
+    <string name="title_activity_main">MainActivity</string>
+    <string name="title_home">Home</string>
+    <string name="title_dashboard">Dashboard</string>
+    <string name="title_notifications">Notifications</string>
+    <string name="title_account">Account</string>
+    <string name="title_scan">Scan</string>
+    <string name="apps_name">Aplication Name</string>
+    <string name="app_status">Application Status</string>
+    <string name="app_malware">Malware Name</string>
+    <string name="detail">Detail</string>
+</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..bec8f4e
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,18 @@
+<resources>
+
+    <!-- Base application theme. -->
+    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+        <!-- Customize your theme here. -->
+        <item name="colorPrimary">@color/colorPrimary</item>
+        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+        <item name="colorAccent">@color/colorAccent</item>
+    </style>
+
+    <style name="NoTheme" parent="Theme.AppCompat.Light.NoActionBar">
+        <!-- Customize your theme here. -->
+        <item name="colorPrimary">@color/colorPrimary</item>
+        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+        <item name="colorAccent">@color/colorAccent</item>
+    </style>
+
+</resources>
diff --git a/app/src/test/java/com/amsal/ta/ExampleUnitTest.java b/app/src/test/java/com/amsal/ta/ExampleUnitTest.java
new file mode 100644
index 0000000..b9ffc66
--- /dev/null
+++ b/app/src/test/java/com/amsal/ta/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.amsal.ta;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+    @Test
+    public void addition_isCorrect() {
+        assertEquals(4, 2 + 2);
+    }
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..2767571
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,29 @@
+ext {
+    var = "1.8"
+}// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    repositories {
+        google()
+        jcenter()
+        
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.5.3'
+        
+        // NOTE: Do not place your application dependencies here; they belong
+        // in the individual module build.gradle files
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+        
+    }
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..199d16e
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,20 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..f6b961f
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..89ded30
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Apr 29 14:44:49 ICT 2020
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..fa77947
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+include ':app'
+rootProject.name='TA'
--
libgit2 0.27.1