diff --git a/.gradle/5.1.1/executionHistory/executionHistory.bin b/.gradle/5.1.1/executionHistory/executionHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..716216759bc19b631bb718026f846051a5c0d5ee
Binary files /dev/null and b/.gradle/5.1.1/executionHistory/executionHistory.bin differ
diff --git a/.gradle/5.1.1/executionHistory/executionHistory.lock b/.gradle/5.1.1/executionHistory/executionHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..b7df5673b5e9991869a066e0b302c56e2895491e
Binary files /dev/null and b/.gradle/5.1.1/executionHistory/executionHistory.lock differ
diff --git a/.gradle/5.1.1/fileChanges/last-build.bin b/.gradle/5.1.1/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
Binary files /dev/null and b/.gradle/5.1.1/fileChanges/last-build.bin differ
diff --git a/.gradle/5.1.1/fileContent/fileContent.lock b/.gradle/5.1.1/fileContent/fileContent.lock
new file mode 100644
index 0000000000000000000000000000000000000000..0226ef693eec5d64e4b3f7d3e76f5cbd597533a3
Binary files /dev/null and b/.gradle/5.1.1/fileContent/fileContent.lock differ
diff --git a/.gradle/5.1.1/fileHashes/fileHashes.bin b/.gradle/5.1.1/fileHashes/fileHashes.bin
new file mode 100644
index 0000000000000000000000000000000000000000..bceba7b86fe88165c2df6ea4056e34db1b7611b5
Binary files /dev/null and b/.gradle/5.1.1/fileHashes/fileHashes.bin differ
diff --git a/.gradle/5.1.1/fileHashes/fileHashes.lock b/.gradle/5.1.1/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..44bfb734a5ab068a68bf58ac72244d37a27625ab
Binary files /dev/null and b/.gradle/5.1.1/fileHashes/fileHashes.lock differ
diff --git a/.gradle/5.1.1/fileHashes/resourceHashesCache.bin b/.gradle/5.1.1/fileHashes/resourceHashesCache.bin
new file mode 100644
index 0000000000000000000000000000000000000000..7fab46a35b38bfe377714770e7fc10d2fbeae0e2
Binary files /dev/null and b/.gradle/5.1.1/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/5.1.1/gc.properties b/.gradle/5.1.1/gc.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/.gradle/5.1.1/javaCompile/classAnalysis.bin b/.gradle/5.1.1/javaCompile/classAnalysis.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f06c12a24291556ac766cda831497ed754502812
Binary files /dev/null and b/.gradle/5.1.1/javaCompile/classAnalysis.bin differ
diff --git a/.gradle/5.1.1/javaCompile/javaCompile.lock b/.gradle/5.1.1/javaCompile/javaCompile.lock
new file mode 100644
index 0000000000000000000000000000000000000000..2bb9c682d806159e7dc274388a691f26dce3c4fb
Binary files /dev/null and b/.gradle/5.1.1/javaCompile/javaCompile.lock differ
diff --git a/.gradle/5.1.1/javaCompile/taskHistory.bin b/.gradle/5.1.1/javaCompile/taskHistory.bin
new file mode 100644
index 0000000000000000000000000000000000000000..019ea36fb671f06c010e878911b5ec5f9d4ba8e0
Binary files /dev/null and b/.gradle/5.1.1/javaCompile/taskHistory.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000000000000000000000000000000000000..6d84db3dc654193e723da2107a19219bc2a5201f
Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c02b058652a19efb22a5b8a5641ba313ebbbfa8d
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Fri Apr 19 19:30:17 BST 2019
+gradle.version=5.1.1
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
new file mode 100644
index 0000000000000000000000000000000000000000..3917ca7ce1ea5c67ab6f957372ed0e430d304f70
Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/.gradle/vcsWorkingDirs/gc.properties b/.gradle/vcsWorkingDirs/gc.properties
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5435ed16710d7a6669cc9faf3736550c71dfe6b2
--- /dev/null
+++ b/.idea/assetWizardSettings.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="WizardSettings">
+    <option name="children">
+      <map>
+        <entry key="imageWizard">
+          <value>
+            <PersistentState>
+              <option name="children">
+                <map>
+                  <entry key="imageAssetPanel">
+                    <value>
+                      <PersistentState>
+                        <option name="children">
+                          <map>
+                            <entry key="actionbar">
+                              <value>
+                                <PersistentState>
+                                  <option name="children">
+                                    <map>
+                                      <entry key="clipArt">
+                                        <value>
+                                          <PersistentState>
+                                            <option name="values">
+                                              <map>
+                                                <entry key="color" value="000000" />
+                                              </map>
+                                            </option>
+                                          </PersistentState>
+                                        </value>
+                                      </entry>
+                                    </map>
+                                  </option>
+                                  <option name="values">
+                                    <map>
+                                      <entry key="theme" value="HOLO_DARK" />
+                                      <entry key="themeColor" value="ffffff" />
+                                    </map>
+                                  </option>
+                                </PersistentState>
+                              </value>
+                            </entry>
+                            <entry key="launcher">
+                              <value>
+                                <PersistentState>
+                                  <option name="children">
+                                    <map>
+                                      <entry key="foregroundImage">
+                                        <value>
+                                          <PersistentState>
+                                            <option name="values">
+                                              <map>
+                                                <entry key="color" value="000000" />
+                                                <entry key="scalingPercent" value="55" />
+                                              </map>
+                                            </option>
+                                          </PersistentState>
+                                        </value>
+                                      </entry>
+                                    </map>
+                                  </option>
+                                  <option name="values">
+                                    <map>
+                                      <entry key="backgroundAssetType" value="COLOR" />
+                                      <entry key="backgroundColor" value="ffffff" />
+                                      <entry key="foregroundImage" value="C:\Users\james\Documents\COM2027\logo\4k logo (icon).png" />
+                                    </map>
+                                  </option>
+                                </PersistentState>
+                              </value>
+                            </entry>
+                            <entry key="launcherLegacy">
+                              <value>
+                                <PersistentState>
+                                  <option name="children">
+                                    <map>
+                                      <entry key="clipArt">
+                                        <value>
+                                          <PersistentState>
+                                            <option name="values">
+                                              <map>
+                                                <entry key="color" value="000000" />
+                                              </map>
+                                            </option>
+                                          </PersistentState>
+                                        </value>
+                                      </entry>
+                                    </map>
+                                  </option>
+                                </PersistentState>
+                              </value>
+                            </entry>
+                            <entry key="notification">
+                              <value>
+                                <PersistentState>
+                                  <option name="children">
+                                    <map>
+                                      <entry key="clipArt">
+                                        <value>
+                                          <PersistentState>
+                                            <option name="values">
+                                              <map>
+                                                <entry key="color" value="000000" />
+                                              </map>
+                                            </option>
+                                          </PersistentState>
+                                        </value>
+                                      </entry>
+                                    </map>
+                                  </option>
+                                </PersistentState>
+                              </value>
+                            </entry>
+                          </map>
+                        </option>
+                      </PersistentState>
+                    </value>
+                  </entry>
+                </map>
+              </option>
+            </PersistentState>
+          </value>
+        </entry>
+        <entry key="vectorWizard">
+          <value>
+            <PersistentState>
+              <option name="children">
+                <map>
+                  <entry key="vectorAssetStep">
+                    <value>
+                      <PersistentState>
+                        <option name="children">
+                          <map>
+                            <entry key="clipartAsset">
+                              <value>
+                                <PersistentState>
+                                  <option name="values">
+                                    <map>
+                                      <entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/action/ic_home_black_24dp.xml" />
+                                    </map>
+                                  </option>
+                                </PersistentState>
+                              </value>
+                            </entry>
+                          </map>
+                        </option>
+                        <option name="values">
+                          <map>
+                            <entry key="color" value="ffffff" />
+                            <entry key="outputName" value="ic_home_black_24dp" />
+                            <entry key="sourceFile" value="C:\Users\james" />
+                          </map>
+                        </option>
+                      </PersistentState>
+                    </value>
+                  </entry>
+                </map>
+              </option>
+            </PersistentState>
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
new file mode 100644
index 0000000000000000000000000000000000000000..4ef3ec9ad431fb3af0a5809f24f57630142f9725
Binary files /dev/null and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
new file mode 100644
index 0000000000000000000000000000000000000000..1b3919cc3cea16bd2677f4ef0956bc71f041a8cd
Binary files /dev/null and b/.idea/caches/gradle_models.ser differ
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..15a15b218a29e09c9190992732698d646e4d659a
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
+</project>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000000000000000000000000000000000000..47bd81ff324e223261acf802991656d9876f7d31
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+          </set>
+        </option>
+        <option name="resolveModulePerSourceSet" value="false" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml b/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bf16fff60d774b6b4019ee648078982839abec21
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.core:common:1.1.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/ae9b923fc99c1fc5a7a9b6cedc6df8b2b8529c54/common-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a26d333d9319c59db6312efada2e31018c48d858
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.core:runtime:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f1ddab27c57a116ccd67f397b1d0cbb3/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f1ddab27c57a116ccd67f397b1d0cbb3/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/runtime/1.1.1/25df553df10af32bede9dd768a2d15299543d84/runtime-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..27b1867567b7eaf1a581ecad416d6477fe0125ab
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:common:1.1.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/bcdaa509a856d1430e736b102f899aa9870a8f83/common-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e593d930a8de964c91a4331ae87dbd14d94c7921
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7aed3e4b6b51da3ba4e1a6583590d815/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7aed3e4b6b51da3ba4e1a6583590d815/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/livedata/1.1.1/bf27acaa4953c98cd519756ed7b7caacf94407d4/livedata-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..666a5d2de9b6141899a585b94ff172eb38f57ac8
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2edd907cb4b02bdc1e1b3fcd1336d10c/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2edd907cb4b02bdc1e1b3fcd1336d10c/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/livedata-core/1.1.1/c38818e006ea7a408c05e3090364332d46494ef/livedata-core-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bbab9329bd8b3c3d65b445d8fd68d2745bf37101
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/1638308ae1b7b952095c1ae09bf3bf10/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/1638308ae1b7b952095c1ae09bf3bf10/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/runtime/1.1.1/8e4214221b3797b863dc9998d16abb4af043e784/runtime-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..20abdd965c34eb3e599c4eb8b45710c99cdb98e9
--- /dev/null
+++ b/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e7cdd667d9edc3c7722b88c42064610b/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e7cdd667d9edc3c7722b88c42064610b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/viewmodel/1.1.1/d1cc8e805317f171be63c68341f499acda7e42d6/viewmodel-1.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ce6e1584b7c9829d6b5b8f3839b7fb5d63401bb8
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c61ea99d8f012ff840857f410830b507/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c61ea99d8f012ff840857f410830b507/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18dfe9cc4fe9ed0744d081dbdccd63fcc020e213
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:appcompat-v7:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3130850cf28d7ef9f18dfa871489eb27/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3130850cf28d7ef9f18dfa871489eb27/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3130850cf28d7ef9f18dfa871489eb27/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9fb6e944fa60ec8f849c9bc8bb4e98b29b77e24b
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eaaea6236999500633d2a24a2823e6e8/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eaaea6236999500633d2a24a2823e6e8/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fd0496dcb8dab709e48b8a39859cd33f603c0fa6
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:cardview-v7:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e04a97ff00d28f77d05dfe58715e5d18/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e04a97ff00d28f77d05dfe58715e5d18/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml b/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..80e4d731eb624b41090c61619f91ad20b99ee390
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:collections:28.0.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fba8a3992a0b1f48a4bd75905f7bb7162274bc29
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/811bcc1c7426cdc327bb39a75e05eb73/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/811bcc1c7426cdc327bb39a75e05eb73/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c0adf88faeab6653f78ca993214c9e72d7c959d7
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.constraint/constraint-layout-solver/1.1.3/bde0667d7414c16ed62d3cfe993cff7f9d732373/constraint-layout-solver-1.1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b91dc37d4c112746ca079e8d726507a93a51b66
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/43c60b53a800ff5e086998cb5419e5a7/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/43c60b53a800ff5e086998cb5419e5a7/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/43c60b53a800ff5e086998cb5419e5a7/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e1ade3047f5faa5d59aef239f76e033d8446ab74
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:cursoradapter:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c43ccea522d81501f7b1db5dc342e39f/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/c43ccea522d81501f7b1db5dc342e39f/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..522130d07f68cff5bb6fa203520e19438a92a4d3
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:customview:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e9b0bbd41e5e73d108c616e2237f42e0/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e9b0bbd41e5e73d108c616e2237f42e0/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b9528bafb31bce99f177e97d4afcbf289a18700
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:design:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7ec8c50647f66cd4b0b79800196df1c8/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7ec8c50647f66cd4b0b79800196df1c8/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7ec8c50647f66cd4b0b79800196df1c8/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0fd27651962f9a509a65f8e09dd85735b233371e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:documentfile:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/792506c3a81b5c0d545da77055930ed3/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/792506c3a81b5c0d545da77055930ed3/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dd782639d9a22a1516e88a6661862241f14c7dda
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:drawerlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/1060649a970b090f41a1ffc452b7a760/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/1060649a970b090f41a1ffc452b7a760/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/1060649a970b090f41a1ffc452b7a760/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..10dede2368c2913434101ab5fad18e2b4afa913e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:interpolator:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/bd6fd2664373fb8537729aa265fa11c4/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/bd6fd2664373fb8537729aa265fa11c4/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..163f2f7283fa286bcb8cae6900b20f91845d74bf
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:loader:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/569da9078a77e13932e6056678d1464d/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/569da9078a77e13932e6056678d1464d/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2522ba7f0073f2c12174d9b15e52df46c6d5be6e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/37e7db454c64300ce74930ef92870548/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/37e7db454c64300ce74930ef92870548/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5e2993ee46983dba6b3c14c033daaf71b20a322f
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:print:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b1cfd33c244e7c5f1258f37fe5c19f1a/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b1cfd33c244e7c5f1258f37fe5c19f1a/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b1cfd33c244e7c5f1258f37fe5c19f1a/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f723dc4048a6fa9ce10310e7aae3acc7e3e6a5ed
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6a5d153332a925eb6daa5f1f5b7adba9/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6a5d153332a925eb6daa5f1f5b7adba9/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6a5d153332a925eb6daa5f1f5b7adba9/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..01023406491ec996a4b24841c3dbb08736677f6b
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2206e972fccf147045366113cfab7eb1/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2206e972fccf147045366113cfab7eb1/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml b/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0fdecce0d635b1b13ead093f15f6c59196f199f0
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-annotations:28.0.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c962a4a47c1ca240aaa5664d5bdd06a46d762b44
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-compat:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/edc2e73e68502b20c48a430c436619cf/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/edc2e73e68502b20c48a430c436619cf/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/edc2e73e68502b20c48a430c436619cf/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d1f67d227a93225da995e1b114cef13a2f2f24fa
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-ui:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f7e9d651f343ec427b4eee4f699be4b6/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f7e9d651f343ec427b4eee4f699be4b6/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5f6e61c96d210233b828bb30612e28d10610715c
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-utils:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/335e28948a0724c82a99dc690d752303/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/335e28948a0724c82a99dc690d752303/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..959c5d6abb37dcadac26ff7ed07208e97157d544
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-fragment:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/41b1c1de26ff8b63a410082f430bd0ae/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/41b1c1de26ff8b63a410082f430bd0ae/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/41b1c1de26ff8b63a410082f430bd0ae/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f8863c1b3981ac55bb5648fd224e5fad5e937759
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-media-compat:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/dd8a7f010ada3a841bc30bf9cf665c04/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/dd8a7f010ada3a841bc30bf9cf665c04/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/dd8a7f010ada3a841bc30bf9cf665c04/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9eeb2a5bc550d9b63030161416c6f73f12fa2801
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-v4:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/82c850389c5b901c14f5723531a55e5b/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/82c850389c5b901c14f5723531a55e5b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..502c6ec3086a2ea09c33b780e00b7ec9ba182e20
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6213bbad4d9c9dad1bbec66fc95d62fe/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/6213bbad4d9c9dad1bbec66fc95d62fe/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..412b78a8ee71012c12267a87c88c1f9016fa27c4
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b79081fd0b77bb0dbb114fc9e6760219/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b79081fd0b77bb0dbb114fc9e6760219/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/b79081fd0b77bb0dbb114fc9e6760219/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4a40f206a5e6fb5e78bb7bf31c463a3384da90ed
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/576971d67ac0a462319e6e550bbc7b91/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/576971d67ac0a462319e6e550bbc7b91/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test.espresso/espresso-core/3.0.2/433f4f601a3f3835691d80838dd7ff9414931b05/espresso-core-3.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4724615d1197bf6192354dd0409b0bc7b2f884ae
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/207aa2aeb2dccf412f1b582565bb8546/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/207aa2aeb2dccf412f1b582565bb8546/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test.espresso/espresso-idling-resource/3.0.2/6071e2b310c16836ba475a94df377e2f75928546/espresso-idling-resource-3.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4b99e6c619b178537c8f2224fff3246ac084f1f8
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:monitor:1.0.2@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3b32b873677760a961de10124979d034/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/3b32b873677760a961de10124979d034/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test/monitor/1.0.2/5764301056100b445e9ba31df7d1b554a55450f6/monitor-1.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..96551266d1217a309be7783ba64f90ae561aaa0f
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:runner:1.0.2@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/edab8227e2a32eca6df7d0fdf275c1f9/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/edab8227e2a32eca6df7d0fdf275c1f9/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support.test/runner/1.0.2/b2ce2342744a66e935dbc4a298259709a4c1f042/runner-1.0.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..25c772911bffb4ef6b0c32523231c278d1cf4961
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml
@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:transition:28.0.0@aar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2317561b61aed41fdf6657e89c4929f2/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2317561b61aed41fdf6657e89c4929f2/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/2317561b61aed41fdf6657e89c4929f2/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f16be7281c11b56c3f389ea0684055bf452da40
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:versionedparcelable:28.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/5a83b1431a469844d2a7cf14ad6994dd/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/5a83b1431a469844d2a7cf14ad6994dd/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2a4756d1ce8f6cd26a30867b948fc00306c98b8e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:viewpager:28.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/4d5094019d9dd47babd8bc940c57af37/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/4d5094019d9dd47babd8bc940c57af37/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_ads_identifier_16_0_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_ads_identifier_16_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..07d6ae2e11f213c951a5c5c27a0972ef241df8d1
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_ads_identifier_16_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-ads-identifier:16.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/31bfc4f7eec15155bd06cb544d316c19/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/31bfc4f7eec15155bd06cb544d316c19/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_base_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_base_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..85e4f2459f1ad8b96a959992174b206a18d93c31
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_base_16_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-base:16.0.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/aff18a80f59f46f223f8cd8352488f69/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/aff18a80f59f46f223f8cd8352488f69/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_16_2_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_16_2_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eadc434511f1a977a619c0d0768dd9c598577953
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_16_2_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-basement:16.2.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8dc35d56addedabee372c48b93f50b5c/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8dc35d56addedabee372c48b93f50b5c/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-basement/16.2.0/3e3589bff6719404b47afecaa49d192cfa3f5791/play-services-basement-16.2.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_flags_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_flags_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..75704153eea588a1ee1867806c05c4ba7f3fb045
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_flags_16_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-flags:16.0.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e96876a095a350434bdd42ffd8629e2d/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e96876a095a350434bdd42ffd8629e2d/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_location_16_0_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_location_16_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..30f228ab91e963f4ec2116d7efc375e1fc610bfc
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_location_16_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-location:16.0.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/71d2c02279f04e623c682e5948efb4cf/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/71d2c02279f04e623c682e5948efb4cf/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_maps_16_1_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_maps_16_1_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3b5f3d301ad7bd1d6075bd4404ab8a06ba541fd4
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_maps_16_1_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-maps:16.1.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/5c3d4a4bb43d218ea8979263a5cb2f80/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/5c3d4a4bb43d218ea8979263a5cb2f80/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-maps/16.1.0/68568da8e0d63d5d6fc4b6dfe9e01edc038e6a43/play-services-maps-16.1.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..57a0d392f2fc68f0d5cea979ac3a5f574a155f1c
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-measurement:16.4.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/61c282e29f80d22e7c8e6e2bae65c5a5/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/61c282e29f80d22e7c8e6e2bae65c5a5/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement/16.4.0/6ffd880f8d48b22cade5f0a40bc63ec6bbd71818/play-services-measurement-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_api_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_api_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3408d8811f5612dacc2df80b49801c3a0267580a
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_api_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-measurement-api:16.4.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/5f59927a1ad6c3a75ccba740d1daf9a5/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/5f59927a1ad6c3a75ccba740d1daf9a5/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-api/16.4.0/e3d686c60b90e01a909c923347c0e7aff8023b99/play-services-measurement-api-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_base_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_base_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fef1ae6a2b05a24d7a1381eb5269471bf7e19e37
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_base_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-measurement-base:16.4.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0ee30746c63eb2186a6251b4fc9119f8/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0ee30746c63eb2186a6251b4fc9119f8/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-base/16.4.0/8ff2fadcad61bc126ae562e28dedf98219fdc30d/play-services-measurement-base-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_impl_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_impl_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..13d17b955fe63fd8ada5685f817895188e3c9abf
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_impl_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-measurement-impl:16.4.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8ebe24e2b67b22e6734fa48156d5a301/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/8ebe24e2b67b22e6734fa48156d5a301/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-impl/16.4.0/98fea79e4a77817f0ce14dd933ef096cd7d79b20/play-services-measurement-impl-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_sdk_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_sdk_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..165bca097d6abb7977fbc373a1d9032b07e0a116
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_sdk_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-measurement-sdk:16.4.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e5742b302aa803638589a3b903fcbe48/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e5742b302aa803638589a3b903fcbe48/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-sdk/16.4.0/88561e7c3615c80f0579c3ac4ee9d8ae8bd7df61/play-services-measurement-sdk-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_sdk_api_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_sdk_api_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..56c8102415d4d08327ffc8e1ebb8fb678d1ab97d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_measurement_sdk_api_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-measurement-sdk-api:16.4.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/d828696aa497d1650024fec778ab5150/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/d828696aa497d1650024fec778ab5150/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.android.gms/play-services-measurement-sdk-api/16.4.0/b0889362b29c0c1a24c5af14e126d069e86c2644/play-services-measurement-sdk-api-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_16_0_0_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_16_0_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..75cdc428e9903432ad091577d8df0f348f9ff664
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_16_0_0_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-places-placereport:16.0.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/544edd79b93032c2db7502405d1379ad/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/544edd79b93032c2db7502405d1379ad/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fe0d2af215a3dbfda2244b79f21652a17ffa5283
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_stats_16_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-stats:16.0.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/38703f9776ba9f10dd3efdde11d08328/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/38703f9776ba9f10dd3efdde11d08328/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..936ab5b22da0ec88f65cd48ce899a65e19c3d3c2
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_16_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.android.gms:play-services-tasks:16.0.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/d9a65cf708e7da39e775b6754574fb8d/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/d9a65cf708e7da39e775b6754574fb8d/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_auto_value_auto_value_annotations_1_6_jar.xml b/.idea/libraries/Gradle__com_google_auto_value_auto_value_annotations_1_6_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e435b1b98685dd3113ff1d7f46b0f729d430ea2d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_auto_value_auto_value_annotations_1_6_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.auto.value:auto-value-annotations:1.6@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value-annotations/1.6/da725083ee79fdcd86d9f3d8a76e38174a01892a/auto-value-annotations-1.6.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value-annotations/1.6/5a95aac7aa9d66baa4e5753a9079769ad76944dd/auto-value-annotations-1.6-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..947e2512f67ce099395001ceba1f3f026a2376fb
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_16_4_0_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_16_4_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d581158e67d972e61cb4af2df147165915be0737
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_analytics_16_4_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-analytics:16.4.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/05aaad10cf023846f4e479b7d0d9e83a/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/05aaad10cf023846f4e479b7d0d9e83a/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-analytics/16.4.0/b884044d2f8732260837f470f4ed231a876cb2e3/firebase-analytics-16.4.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_auth_16_2_1_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_auth_16_2_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9250a7a71ce11217043cfe797244ae7cd96a8b1d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_auth_16_2_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-auth:16.2.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/cca49277aea77119cba2e35273dd9768/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/cca49277aea77119cba2e35273dd9768/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-auth/16.2.1/8bbeffaefcb0edbf09b108d2a63ce8e2d1508f3a/firebase-auth-16.2.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_auth_interop_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_auth_interop_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f5a4cf3a76b0fa98acb25f758ee5805d86ff916d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_auth_interop_16_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-auth-interop:16.0.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ab311d660699b5f7ac4a67e2b96fa4c5/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/ab311d660699b5f7ac4a67e2b96fa4c5/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_common_16_1_0_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_common_16_1_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9ea95ab8cfbb4819a7ac257b16d78ffed5c2321c
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_common_16_1_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-common:16.1.0@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/87d6202a37dc4c9c4978dffa4d93714c/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/87d6202a37dc4c9c4978dffa4d93714c/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-common/16.1.0/e6e3a5d7f4d0cf5797dadd5443a6978dc58ae4e5/firebase-common-16.1.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_core_16_0_8_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_core_16_0_8_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0ee75ff79db90bfdbb47851f9b7ab3e3cef4966d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_core_16_0_8_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-core:16.0.8@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/88a9fce8d404e5f5cef4763fea05244f/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/88a9fce8d404e5f5cef4763fea05244f/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-core/16.0.8/d744794686c273d9fe2fdad77ee686c87a47625b/firebase-core-16.0.8-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_database_16_1_0_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_database_16_1_0_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fd99e2aa327f38ea535c6083465de68592e50a6d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_database_16_1_0_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-database:16.1.0@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a1be0db2fd5cb278a94feeec1c2552ba/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a1be0db2fd5cb278a94feeec1c2552ba/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-database/16.1.0/e7623d62fd877e924d874fc13b225b748a57e95f/firebase-database-16.1.0-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_database_collection_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_database_collection_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..faed6aa1f0bb4109433ec02c083f9a87289522f3
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_database_collection_16_0_1_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-database-collection:16.0.1@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0ddc6ed91afc63249b83c2942ad1249f/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0ddc6ed91afc63249b83c2942ad1249f/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-database-collection/16.0.1/b5886c1473251920abb7253028aafb63b2d5e0a5/firebase-database-collection-16.0.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_iid_17_0_3_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_iid_17_0_3_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bf4250f1b7dee522e0a8ff39ded6a37db3f3c1dc
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_iid_17_0_3_aar.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-iid:17.0.3@aar">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0801de71e7a36e2562cc85b1ddea38aa/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/0801de71e7a36e2562cc85b1ddea38aa/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.firebase/firebase-iid/17.0.3/f75ec044e44b868f2a037e753b0287889e224837/firebase-iid-17.0.3-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_16_0_1_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_16_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1c0365a54f3e1a813c49cf2be71f12b22b8651dd
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_iid_interop_16_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-iid-interop:16.0.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/46254619ca981c4beabaa0604579a08e/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/46254619ca981c4beabaa0604579a08e/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_17_0_1_aar.xml b/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_17_0_1_aar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..66f90853afc78866e938a85e0cae369b53411a12
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_firebase_firebase_measurement_connector_17_0_1_aar.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.firebase:firebase-measurement-connector:17.0.1@aar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7e2d001fc645ed6b99bd9557184fdb2b/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/7e2d001fc645ed6b99bd9557184fdb2b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5c4dd4e8722443c464234949143da8f5d30be215
--- /dev/null
+++ b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.squareup:javawriter:2.1.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/67ff45d9ae02e583d0f9b3432a5ebbe05c30c966/javawriter-2.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/5b31387d839a5cdaf5b6de3990da01f7f2b963c5/javawriter-2.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f9c9a3064066c5386a2a4a93d68ae827f35500c7
--- /dev/null
+++ b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: javax.inject:javax.inject:1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/a00123f261762a7c5e0ec916a2c7c8298d29c400/javax.inject-1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4f25a81d9b6c86e485d93dfe75f8d161bf73c58
--- /dev/null
+++ b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: junit:junit:4.12@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml b/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5855a297fee62f1e139ecda40e8b9a447001369e
--- /dev/null
+++ b/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: net.sf.kxml:kxml2:2.3.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/ccbc77a5fd907ef863c29f3596c6f54ffa4e9442/kxml2-2.3.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/309cd2cff7260e465792fda3dcbb063b730d8050/kxml2-2.3.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..50cf2b92b850e340e541cafa050973708969530b
--- /dev/null
+++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-core:1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a5eaca5bef3195718027663ab24ef255f97e7da1
--- /dev/null
+++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/5de0c73fef18917cd85d0ab70bb23818685e4dfd/hamcrest-integration-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/ae7787a563e6a1b1f17fd4ac43be3a3c8830cfda/hamcrest-integration-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b4dabdc1dd7899cfbf4c50abfe51ca5446fe78fd
--- /dev/null
+++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-library:1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0d45e8dac234fb8d8ce72a22fa160d3a6ababc22
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..28226e39988a590b253e71596589b79b81acda31
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/unirides.iml" filepath="$PROJECT_DIR$/unirides.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9
--- /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/unirides.iml b/.idea/unirides.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824
--- /dev/null
+++ b/.idea/unirides.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /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="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index eb3f0ec4f1af8d935d2670598ee8711483d06142..e0e25a0f7bfe9d3008a7972690ddfe56337cdb27 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,10 +1,24 @@
+buildscript {
+    repositories {
+        mavenCentral()
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.4.0'
+        classpath 'com.google.gms:google-services:4.0.1'
+    }
+}
+
+
 apply plugin: 'com.android.application'
 
 android {
     compileSdkVersion 28
     defaultConfig {
         applicationId "com.example.liliyayankova.unirides"
-        minSdkVersion 19
+        minSdkVersion 24
         targetSdkVersion 28
         versionCode 1
         versionName "1.0"
@@ -16,14 +30,31 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
+    productFlavors {
+    }
 }
 
 dependencies {
-    implementation fileTree(dir: 'libs', include: ['*.jar'])
+    implementation fileTree(include: ['*.jar'], dir: 'libs')
     implementation 'com.android.support:appcompat-v7:28.0.0'
-    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
+    implementation 'com.android.support:support-v4:28.0.0'
+    implementation 'com.android.support:support-media-compat:28.0.0'
+    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     implementation 'com.android.support:design:28.0.0'
+    implementation 'com.google.android.gms:play-services-maps:16.1.0'
+    implementation 'com.google.android.gms:play-services-location:16.0.0'
+    implementation 'com.google.firebase:firebase-core:16.0.8'
+    implementation 'com.google.firebase:firebase-auth:16.2.1'
+    implementation 'com.google.firebase:firebase-database:16.1.0'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'com.android.support.test:runner:1.0.2'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
 }
+
+repositories {
+    mavenCentral()
+    google()
+    jcenter()
+}
+
+apply plugin: 'com.google.gms.google-services'
diff --git a/google-services.json b/google-services.json
new file mode 100644
index 0000000000000000000000000000000000000000..cf36752de48ad013f1adb0dfce9f199345c96645
--- /dev/null
+++ b/google-services.json
@@ -0,0 +1,40 @@
+{
+  "project_info": {
+    "project_number": "1055405105912",
+    "firebase_url": "https://unirides-e7561.firebaseio.com",
+    "project_id": "unirides-e7561",
+    "storage_bucket": "unirides-e7561.appspot.com"
+  },
+  "client": [
+    {
+      "client_info": {
+        "mobilesdk_app_id": "1:1055405105912:android:7bbad215fe94b0dd",
+        "android_client_info": {
+          "package_name": "com.example.liliyayankova.unirides"
+        }
+      },
+      "oauth_client": [
+        {
+          "client_id": "1055405105912-jt3gfugmjgg9anotpr9jod74b4k1pna4.apps.googleusercontent.com",
+          "client_type": 3
+        }
+      ],
+      "api_key": [
+        {
+          "current_key": "AIzaSyBif6IsBwrlmoqxegu6wJJCndhxa7hfBkM"
+        }
+      ],
+      "services": {
+        "appinvite_service": {
+          "other_platform_oauth_client": [
+            {
+              "client_id": "1055405105912-jt3gfugmjgg9anotpr9jod74b4k1pna4.apps.googleusercontent.com",
+              "client_type": 3
+            }
+          ]
+        }
+      }
+    }
+  ],
+  "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f6b961fd5a86aa5fbfe90f707c3138408be7c718
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 0000000000000000000000000000000000000000..6d9807c65e2b186237a30bd859b7d5b1c264ba81
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Apr 22 17:09:20 BST 2019
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000000000000000000000000000000000000..cccdd3d517fc5249beaefa600691cf150f2fa3e6
--- /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 0000000000000000000000000000000000000000..f9553162f122c71b34635112e717c3e733b5b212
--- /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/local.properties b/local.properties
new file mode 100644
index 0000000000000000000000000000000000000000..66f0181369099b2680aaf348a8877ef7d5821d6c
--- /dev/null
+++ b/local.properties
@@ -0,0 +1,8 @@
+## This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+#Wed May 08 14:20:09 BST 2019
+sdk.dir=C\:\\Users\\Liliya Yankova\\AppData\\Local\\Android\\Sdk
diff --git a/src/debug/res/values/google_maps_api.xml b/src/debug/res/values/google_maps_api.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4874de2a0bd3ebe87e6b0a13e3e64e36fd176960
--- /dev/null
+++ b/src/debug/res/values/google_maps_api.xml
@@ -0,0 +1,29 @@
+<resources>
+    <!--
+    TODO: Before you run your application, you need a Google Maps API key.
+
+    To get one, follow this link, follow the directions and press "Create" at the end:
+
+    https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=9F:7D:89:6C:8D:68:E1:AB:41:7C:BE:64:E7:8A:E1:E5:C7:BC:CD:62%3Bcom.example.liliyayankova.unirides
+
+    You can also add your credentials to an existing key, using these values:
+
+    Package name:
+    9F:7D:89:6C:8D:68:E1:AB:41:7C:BE:64:E7:8A:E1:E5:C7:BC:CD:62
+
+    SHA-1 certificate fingerprint:
+    9F:7D:89:6C:8D:68:E1:AB:41:7C:BE:64:E7:8A:E1:E5:C7:BC:CD:62
+
+    Alternatively, follow the directions here:
+    https://developers.google.com/maps/documentation/android/start#get-key
+
+    Once you have your key (it starts with "AIza"), replace the "google_maps_key"
+    string in this file.
+    -->
+
+    //google maps api key = "AIzaSyCrlmLHqBo2wJ7QCGhn-regWPkUXw2xhnw"
+
+    //added the google maps api key = "AIzaSyCnHWgrEhK2TSoEschf8WxjAHi2rkW4QkY"
+
+    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaSyCnHWgrEhK2TSoEschf8WxjAHi2rkW4QkY</string>
+</resources>
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 27fc941267566947b75f7a668766fb685953cf39..69b3d5de8713ce80bc4020c86031f50b93dc9624 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -1,30 +1,92 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.liliyayankova.unirides">
-
-    <!-- To auto-complete the email text field in the login form with the user's emails -->
+    <!--
+         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
+         Google Maps Android API v2, but you must specify either coarse or fine
+         location permissions for the 'MyLocation' functionality.
+    -->
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.READ_PROFILE" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.INTERNET" />
 
     <application
         android:allowBackup="true"
-        android:icon="@mipmap/logo"
+        android:icon="@mipmap/ic_launcher_foreground"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-        <activity android:name=".Homepage">
+        <!--
+             The API key for Google Maps-based APIs is defined as a string resource.
+             (See the file "res/values/google_maps_api.xml").
+             Note that the API key is linked to the encryption key used to sign the APK.
+             You need a different API key for each encryption key, including the release key that is used to
+             sign the APK for publishing.
+             You can define the keys for the debug and release targets in src/debug/ and src/release/.
+        -->
+        <meta-data
+            android:name="com.google.android.geo.API_KEY"
+            android:value="@string/google_maps_key" />
+
+        <activity
+            android:name=".Homepage"
+            android:label="@string/app_name"
+            android:screenOrientation="portrait">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity android:name=".Offline_Map"
+            android:label="@string/offline_map" />
         <activity
             android:name=".Login"
-            android:label="@string/title_activity_login" />
-        <activity android:name=".Register"></activity>
+            android:label="@string/title_activity_login"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".Register"
+            android:label="@string/register"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".Driver_Register"
+            android:label="@string/register"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".User_Register"
+            android:label="@string/register"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".Driver_Main"
+            android:label="Home"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".User_Main"
+            android:label="Home"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".Map"
+            android:label="@string/title_activity_map" />
+        <activity
+            android:name=".Route"
+            android:label="@string/create_route" />
+        <activity
+            android:name=".Profile"
+            android:label="@string/profile" />
+        <activity
+            android:name=".Settings"
+            android:label="@string/settings" />
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/src/main/ic_launcher-web.png b/src/main/ic_launcher-web.png
new file mode 100644
index 0000000000000000000000000000000000000000..8afa749b7bbe64a669e4eef13fac1a2be966f7a4
Binary files /dev/null and b/src/main/ic_launcher-web.png differ
diff --git a/src/main/java/com/example/liliyayankova/unirides/Driver_Main.java b/src/main/java/com/example/liliyayankova/unirides/Driver_Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..62b3ed75b2df508313a3d57b3cb7f8671d6a050c
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Driver_Main.java
@@ -0,0 +1,104 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.Toast;
+
+public class Driver_Main extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_driver_main);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        ImageButton view_map_button = findViewById(R.id.view_route_button);
+        view_map_button.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent map_i = new Intent(Driver_Main.this, Map.class);
+                startActivity(map_i);
+            }
+        });
+
+        ImageButton create_route_button = findViewById(R.id.create_route_button);
+        create_route_button.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent route_i = new Intent(Driver_Main.this, Route.class);
+                startActivity(route_i);
+            }
+        });
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_home):
+
+                //already home, so do nothing.
+                return true;
+
+            case(R.id.item_logout):
+
+                /*
+                TODO:
+                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                    within each activity? as far as I understand the login just gets you to the next activity
+                    however if you "logout" and just press the back button after it takes you back to the homepage
+                    it will act as if you are still logged in when you reenter).
+                    for now i have just set it so it goes back to the homepage (where you can register or login).
+                 */
+
+                Toast.makeText(Driver_Main.this, "successfully logged out", Toast.LENGTH_SHORT).show();
+                Intent logout_i = new Intent(Driver_Main.this, Homepage.class);
+                startActivity(logout_i);
+
+                return true;
+
+            case(R.id.item_profile):
+
+                Intent profile_i = new Intent(Driver_Main.this, Profile.class);
+                profile_i.putExtra("userType", Login.userType.DRIVER);
+                startActivity(profile_i);
+                return true;
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Driver_Main.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.DRIVER);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/liliyayankova/unirides/Driver_Register.java b/src/main/java/com/example/liliyayankova/unirides/Driver_Register.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d3204e77db7272722942daf158c8dcb8fce2dd3
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Driver_Register.java
@@ -0,0 +1,170 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.AuthResult;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.auth.FirebaseUser;
+import com.google.firebase.database.DatabaseReference;
+import com.google.firebase.database.FirebaseDatabase;
+
+public class Driver_Register extends AppCompatActivity {
+    private EditText forename;
+    private EditText surname;
+    private EditText email;
+    private EditText password;
+    private EditText age;
+    private EditText car_model;
+    private EditText licence_plate;
+    private EditText time_driving;
+    private Button sign_up;
+
+    /* Used for Firebase authorisation in creating a new account */
+    private FirebaseAuth firebaseAuth;
+
+    /* Allows access to the Firebase Database */
+    private FirebaseDatabase firebaseDatabase;
+
+    /* Used to add values to the database */
+    private DatabaseReference dbReference;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_driver_register);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        //makes it so the keyboard doesn't automatically popup!
+        this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+
+        this.forename = findViewById(R.id.forename);
+        this.surname = findViewById(R.id.surname);
+        this.email = findViewById(R.id.email);
+        this.password = findViewById(R.id.password);
+        this.age = findViewById(R.id.age);
+        this.car_model = findViewById(R.id.car_model);
+        this.licence_plate = findViewById(R.id.license_plate);
+        this.time_driving = findViewById(R.id.time_driving);
+        this.sign_up = findViewById(R.id.signup_button);
+
+        this.firebaseAuth = FirebaseAuth.getInstance();
+        this.firebaseDatabase = FirebaseDatabase.getInstance();
+        this.dbReference = firebaseDatabase.getReference();
+
+        //sign_up button listener
+        sign_up.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                //execute register method
+                registerClick(view);
+            }
+        });
+
+    }
+
+    public void registerClick(View v) {
+        final String forenameText = forename.getText().toString().trim();
+        final String surnameText = surname.getText().toString().trim();
+        final String emailText = email.getText().toString().trim();
+        final String passwordText = password.getText().toString().trim();
+        final String ageText = age.getText().toString().trim();
+
+        final String carModelText = car_model.getText().toString().trim();
+        final String licencePlateText = licence_plate.getText().toString().trim();
+        final String timeDrivingText = time_driving.getText().toString().trim();
+
+        Log.d("Email", emailText);
+        Log.d("Password", passwordText);
+
+        if(TextUtils.isEmpty(forenameText) || TextUtils.isEmpty(surnameText)
+                || TextUtils.isEmpty(emailText) || TextUtils.isEmpty(passwordText)
+                || TextUtils.isEmpty(passwordText) || TextUtils.isEmpty(ageText)) {
+            Toast.makeText(this, "One of the fields is empty!",Toast.LENGTH_SHORT).show();
+
+        }
+        else {
+            firebaseAuth.createUserWithEmailAndPassword(emailText, passwordText)
+                    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
+                        @Override
+                        public void onComplete(@NonNull Task<AuthResult> task) {
+                            if(task.isSuccessful()) {
+                                FirebaseUser user = firebaseAuth.getCurrentUser();
+                                String userId = user.getUid();
+                                Toast.makeText(Driver_Register.this, forenameText,Toast.LENGTH_SHORT).show();
+
+                                // Code to add values into the database
+                                // Only temporary for now, might change these a bit later
+                                dbReference.child("drivers").child(userId).child("first_name").setValue(forenameText);
+                                dbReference.child("drivers").child(userId).child("last_name").setValue(surnameText);
+                                dbReference.child("drivers").child(userId).child("age").setValue(ageText);
+                                dbReference.child("drivers").child(userId).child("email").setValue(emailText);
+                                dbReference.child("drivers").child(userId).child("average_rating").setValue(0.0);
+                                dbReference.child("drivers").child(userId).child("car_model").setValue(carModelText);
+                                dbReference.child("drivers").child(userId).child("license_plate").setValue(licencePlateText);
+                                dbReference.child("drivers").child(userId).child("time_driving").setValue(timeDrivingText);
+
+                                //finish();
+                                Toast.makeText(Driver_Register.this, "registration successful",Toast.LENGTH_SHORT).show();
+                                Intent home = new Intent(Driver_Register.this, Homepage.class);
+                                startActivity(home);
+
+                            }
+                            else {
+                                Toast.makeText(Driver_Register.this, "registration not successful",Toast.LENGTH_SHORT).show();
+                            }
+                        }
+                    });
+        }
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Driver_Register.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.NONE);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/Homepage.java b/src/main/java/com/example/liliyayankova/unirides/Homepage.java
index 187c0da793a7be0d61e3dcf449028c100046a2da..6f36676c9ef9dc03c85262b65c4220da6a58cac4 100644
--- a/src/main/java/com/example/liliyayankova/unirides/Homepage.java
+++ b/src/main/java/com/example/liliyayankova/unirides/Homepage.java
@@ -3,15 +3,23 @@ package com.example.liliyayankova.unirides;
 import android.content.Intent;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
+import android.widget.ImageButton;
 import android.widget.TextView;
+import android.widget.Toast;
 
 public class Homepage extends AppCompatActivity {
     private TextView welcome;
     private TextView subheading;
     private Button login;
     private Button register;
+    private ImageButton offline_map;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -22,6 +30,23 @@ public class Homepage extends AppCompatActivity {
         this.subheading = (TextView) findViewById(R.id.subh);
         this.login = (Button) findViewById(R.id.loginB);
         this.register = (Button) findViewById(R.id.registerB);
+        this.offline_map = findViewById(R.id.offline_map);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        this.offline_map.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent map_i = new Intent(Homepage.this, Offline_Map.class);
+                startActivity(map_i);
+            }
+        });
 
         this.login.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -41,4 +66,30 @@ public class Homepage extends AppCompatActivity {
             }
         });
     }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Homepage.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.NONE);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
 }
diff --git a/src/main/java/com/example/liliyayankova/unirides/ImageProperties.java b/src/main/java/com/example/liliyayankova/unirides/ImageProperties.java
new file mode 100644
index 0000000000000000000000000000000000000000..42aeab403833f5f3f60f1e2920e12035fcdea221
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/ImageProperties.java
@@ -0,0 +1,134 @@
+package com.example.liliyayankova.unirides;
+
+import android.media.ExifInterface;
+import android.net.Uri;
+import android.util.Log;
+
+class ImageProperties {
+    /** Path to the image we want to display... */
+    private Uri imagePath;
+
+    public ImageProperties( Uri imageUri)
+    {
+        imagePath = imageUri;
+    }
+
+    /**
+     * Method for getting the orientation of the image to be displayed on the main scree.
+     * We use the ExifInterface class that gives access to the EXIF metadata of an image.
+     *
+     * @return The orientation of the image
+     */
+    public int getCameraPhotoOrientation()
+    {
+        int rotate = 0;
+        try {
+            ExifInterface exif = new ExifInterface(imagePath.getPath());
+            int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
+
+            float longitude = convertToDegree(exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE));
+
+            float latitude = convertToDegree(exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE));
+            //this is in a degree minute seconds format a
+            Log.i("Image Address", longitude + " ," + latitude);
+
+            switch (orientation) {
+                case ExifInterface.ORIENTATION_ROTATE_270:
+                    rotate = 270;
+                    break;
+                case ExifInterface.ORIENTATION_ROTATE_180:
+                    rotate = 180;
+                    break;
+                case ExifInterface.ORIENTATION_ROTATE_90:
+                    rotate = 90;
+                    break;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //tells you how much rotation you need
+
+        Log.v("ROTATION:", "Rotate Value: " + rotate);
+        return rotate;
+    }
+
+    /**
+     * Method for returning the longitude of the image to be displayed.
+     * @return
+     */
+    public Float getCameraAddressLong()
+    {
+        String longitude = null;
+        try {
+//            context.getContentResolver().notifyChange(imageUri, null);
+            //          File imageFile = new File(imagePath);
+
+            //reading the tags from the JPEG file
+            ExifInterface exif = new ExifInterface(imagePath.getPath());
+            longitude = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
+
+
+            //this is in a degree minute seconds format a
+            Log.i("Image Address", convertToDegree(longitude) +"as double");
+
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //tells you how much rotation you need
+        return  convertToDegree(longitude);
+    }
+
+    /**
+     * Method for returning the latitude of the image to be displayed.
+     * @return
+     */
+    public Float getCameraAddressLat()
+    {
+        String latitude = null;
+        try {
+//            context.getContentResolver().notifyChange(imageUri, null);
+            //          File imageFile = new File(imagePath);
+
+            //reading the tags from the JPEG file
+            ExifInterface exif = new ExifInterface(imagePath.getPath());
+            latitude = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
+
+
+            //this is in a degree minute seconds format a
+            Log.i("Image Address", convertToDegree(latitude) +"as double");
+
+
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //tells you how much rotation you need
+        return  convertToDegree(latitude);
+    }
+
+    private Float convertToDegree(String stringDMS){
+        Float result = null;
+        String[] DMS = stringDMS.split(",", 3);
+
+        String[] stringD = DMS[0].split("/", 2);
+        Double D0 = new Double(stringD[0]);
+        Double D1 = new Double(stringD[1]);
+        Double FloatD = D0/D1;
+
+        String[] stringM = DMS[1].split("/", 2);
+        Double M0 = new Double(stringM[0]);
+        Double M1 = new Double(stringM[1]);
+        Double FloatM = M0/M1;
+
+        String[] stringS = DMS[2].split("/", 2);
+        Double S0 = new Double(stringS[0]);
+        Double S1 = new Double(stringS[1]);
+        Double FloatS = S0/S1;
+
+        result = new Float(FloatD + (FloatM/60) + (FloatS/3600));
+
+        return result;
+    }
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/Login.java b/src/main/java/com/example/liliyayankova/unirides/Login.java
index 05916a0f4e3132f63a60904818a7c45ff6d24804..84d9df878adfb24f032d9c3d6b4742914936909a 100644
--- a/src/main/java/com/example/liliyayankova/unirides/Login.java
+++ b/src/main/java/com/example/liliyayankova/unirides/Login.java
@@ -3,6 +3,7 @@ package com.example.liliyayankova.unirides;
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.annotation.TargetApi;
+import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.support.annotation.NonNull;
 import android.support.design.widget.Snackbar;
@@ -18,16 +19,41 @@ import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Bundle;
 import android.provider.ContactsContract;
+import android.support.v7.widget.Toolbar;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.view.WindowManager;
 import android.view.inputmethod.EditorInfo;
 import android.widget.ArrayAdapter;
 import android.widget.AutoCompleteTextView;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
+import android.widget.Toast;
+
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.FirebaseApp;
+import com.google.firebase.FirebaseNetworkException;
+import com.google.firebase.auth.AuthResult;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException;
+import com.google.firebase.auth.FirebaseAuthInvalidUserException;
+import com.google.firebase.auth.FirebaseUser;
+import com.google.firebase.auth.UserInfo;
+import com.google.firebase.database.ChildEventListener;
+import com.google.firebase.database.DataSnapshot;
+import com.google.firebase.database.DatabaseError;
+import com.google.firebase.database.DatabaseReference;
+import com.google.firebase.database.FirebaseDatabase;
+import com.google.firebase.database.ValueEventListener;
+
 
 import java.util.ArrayList;
 import java.util.List;
@@ -62,10 +88,52 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
     private View mProgressView;
     private View mLoginFormView;
 
+    /* For Firebase Authorisation and logging in */
+    private FirebaseAuth firebaseAuth;
+
+    /* Connects to Firebase and checks if authorisation was successful */
+    private FirebaseAuth.AuthStateListener authListener;
+
+    /* Enum for user type - used in bundles when going back and forth between activities */
+    public enum userType {DRIVER, PASSENGER, NONE};
+
+    /*
+    TODO: Look at this message from Ronan in Login.java
+    To be honest, I have no idea what any of this code does prior to my commit
+    but I really really really recommend authentication through Firebase! :)
+    I won't remove any of the code that you have here now, but I'm going to implement
+    login through using Firebase. I've done it before in my other project so I will just be
+    copyign that for now. Feel free to change it if you don't like it, but I think this is
+    the best way to do it
+     */
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_login);
+        firebaseAuth = FirebaseAuth.getInstance();
+        authListener = new FirebaseAuth.AuthStateListener() {
+            @Override
+            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
+                FirebaseUser user = firebaseAuth.getCurrentUser();
+                if(user != null) {
+                    // User is already logged in, so automatically let them into the app
+                    changeActivity();
+                }
+            }
+        };
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        //makes it so the keyboard doesn't automatically popup!
+        this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+
         // Set up the login form.
         mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
         populateAutoComplete();
@@ -75,7 +143,7 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
             @Override
             public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
                 if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
-                    attemptLogin();
+                    attemptLogin(); // RONAN COMMENT: what does this do? dunno if we need it ¯\_(ツ)_/¯
                     return true;
                 }
                 return false;
@@ -86,7 +154,44 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
         mEmailSignInButton.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View view) {
-                attemptLogin();
+                //attemptLogin(); // TODO: RONAN COMMENT: Dunno if we're gonna use this. Maybe uncomment it? or change this? dunno lol
+                // get user information
+                String email = mEmailView.getText().toString();
+                String password = mPasswordView.getText().toString();
+
+                if (!password.equals("") && !email.equals("")) {
+                    firebaseAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(Login.this, new OnCompleteListener<AuthResult>() {
+                        @Override
+                        public void onComplete(@NonNull Task<AuthResult> task) {
+                            if (!task.isSuccessful()) {
+                                try {
+                                    throw task.getException(); //TODO: This doesn't handle "incorrect format" exception (no @ symbol in email for example)
+                                } catch (FirebaseAuthInvalidUserException e) {
+                                    Toast.makeText(Login.this, "Error: User doesn't exist, or was deleted/disabled.",
+                                            Toast.LENGTH_SHORT).show();
+                                } catch (FirebaseAuthInvalidCredentialsException e) {
+                                    Toast.makeText(Login.this, "Error: User credentials incorrect!",
+                                            Toast.LENGTH_SHORT).show();
+                                } catch (FirebaseNetworkException e) {
+                                    Toast.makeText(Login.this, "Error: Couldn't connect to Firebase Network",
+                                            Toast.LENGTH_SHORT).show();
+                                } catch (Exception e) {
+                                    Toast.makeText(Login.this, "Error: Something inexplicable went wrong.",
+                                            Toast.LENGTH_SHORT).show();
+                                }
+
+                            } else {
+
+                                // successful - closes login page and sends user to main menu
+                                finish();
+                                changeActivity();
+                            }
+                        }
+                    });
+                } else {
+                    // field is empty error
+                    Toast.makeText(Login.this, "At least one of the fields is empty", Toast.LENGTH_SHORT).show();
+                }
             }
         });
 
@@ -94,6 +199,60 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
         mProgressView = findViewById(R.id.login_progress);
     }
 
+    /**
+     * Method for changing the activity to either the driver or passenger activity after login
+     * This method is only called AFTER a user's credentials have already been confirmed by the
+     * server, it should never be called to confirm a users identity.
+     */
+    public void changeActivity(){
+
+        /*
+         * TODO: make this more efficient as it currently goes through all the users (as far as i can tell)
+            * Therefore it takes more than a split second to switch activities.
+             * may need to disable user input or create a small loading screen if we can't fix this
+             * because you can still interact with the activity while the next one loads! - James
+         */
+
+        //checks if user is a driver or passenger
+        FirebaseUser user = firebaseAuth.getCurrentUser();
+        final String user_id = user.getUid();
+
+        DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
+        ref.child("drivers").child(user_id).addListenerForSingleValueEvent(new ValueEventListener() {
+            @Override
+            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
+
+                if(dataSnapshot.exists()){
+
+                    //TODO: remove this or change it - toast to confirm that the user is indeed a driver during testing
+                    Toast.makeText(Login.this, "Welcome back Driver!", Toast.LENGTH_SHORT).show();
+                    startActivity(new Intent(Login.this, Driver_Main.class));
+
+                }else{
+
+                    /*
+                     * no other option as the user has already logged in before this method is called, hence they must be a passenger
+                     * if they are not a driver
+                     */
+                    //TODO: remove this or change it - toast to confirm that the user is NOT a driver during testing
+                    Toast.makeText(Login.this, "Welcome back Passenger!", Toast.LENGTH_LONG).show();
+                    startActivity(new Intent(Login.this, User_Main.class));
+                }
+
+            }
+
+            @Override
+            public void onCancelled(@NonNull DatabaseError databaseError) {
+                //TODO: throw exception?
+                //assume they're a user?
+                startActivity(new Intent(Login.this, User_Main.class));
+            }
+
+        });
+
+
+    }
+
     private void populateAutoComplete() {
         if (!mayRequestContacts()) {
             return;
@@ -192,7 +351,7 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
 
     private boolean isEmailValid(String email) {
         //TODO: Replace this with your own logic
-        return email.contains("@");
+        return email.contains("@surrey.ac.uk");
     }
 
     private boolean isPasswordValid(String password) {
@@ -333,7 +492,8 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
             showProgress(false);
 
             if (success) {
-                finish();
+                //go to the main activity
+                changeActivity();
             } else {
                 mPasswordView.setError(getString(R.string.error_incorrect_password));
                 mPasswordView.requestFocus();
@@ -346,5 +506,31 @@ public class Login extends AppCompatActivity implements LoaderCallbacks<Cursor>
             showProgress(false);
         }
     }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Login.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.NONE);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
 }
 
diff --git a/src/main/java/com/example/liliyayankova/unirides/Map.java b/src/main/java/com/example/liliyayankova/unirides/Map.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb4ec8bd0e6abc06c4307c0efd224f3eb7f0c598
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Map.java
@@ -0,0 +1,247 @@
+package com.example.liliyayankova.unirides;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.location.Location;
+import android.location.LocationManager;
+import android.os.Build;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.app.FragmentActivity;
+import android.os.Bundle;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.widget.Toast;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.location.LocationRequest;
+import com.google.android.gms.location.LocationListener;
+import com.google.android.gms.location.LocationServices;
+import com.google.android.gms.maps.CameraUpdate;
+import com.google.android.gms.maps.CameraUpdateFactory;
+import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.OnMapReadyCallback;
+import com.google.android.gms.maps.SupportMapFragment;
+import com.google.android.gms.maps.model.BitmapDescriptorFactory;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.Marker;
+import com.google.android.gms.maps.model.MarkerOptions;
+
+public class Map extends AppCompatActivity implements
+        OnMapReadyCallback,
+        GoogleApiClient.ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener,
+        LocationListener {
+
+    LocationManager locationManager;
+    private GoogleMap mMap;
+    private GoogleApiClient mGoogleApiClient;
+    private LocationRequest mLocationRequest;
+    private Location currentLocation;
+    private Marker myLocation;
+    private static final int REQUEST_USER_LOCATION_CODE = 99;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_map);
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
+            checkUserLocationPermission();
+        }
+        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
+        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
+                .findFragmentById(R.id.map);
+        mapFragment.getMapAsync(this);
+
+        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+    }
+
+    @Override
+    public void onMapReady(GoogleMap googleMap) {
+        mMap = googleMap;
+        if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
+                == PackageManager.PERMISSION_GRANTED) {
+
+            buildGoogleApiClient();
+
+            mMap.setMyLocationEnabled(true);
+        }
+    }
+
+    public boolean checkUserLocationPermission(){
+        if(ContextCompat.checkSelfPermission(this,
+                Manifest.permission.ACCESS_FINE_LOCATION)
+                != PackageManager.PERMISSION_GRANTED){
+            if(ActivityCompat.shouldShowRequestPermissionRationale(this,
+                    Manifest.permission.ACCESS_FINE_LOCATION)){
+                ActivityCompat.requestPermissions(this, new String[]
+                        {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_USER_LOCATION_CODE);
+            }else{
+                ActivityCompat.requestPermissions(this, new String[]
+                        {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_USER_LOCATION_CODE);
+            }
+            return false;
+        }else{
+            return true;
+        }
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+                                           @NonNull int[] grantResults) {
+        switch (requestCode){
+            case REQUEST_USER_LOCATION_CODE:
+                if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+                    if (ContextCompat.checkSelfPermission(this,
+                            Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+                        if (mGoogleApiClient == null) {
+                            buildGoogleApiClient();
+                        }
+                        mMap.setMyLocationEnabled(true);
+                    }
+                }else{
+                    Toast.makeText(this, "Permission Denied.", Toast.LENGTH_SHORT).show();
+                }
+                return;
+        }
+    }
+
+    protected synchronized void buildGoogleApiClient(){
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .addApi(LocationServices.API)
+                .build();
+
+        mGoogleApiClient.connect();
+    }
+
+    @Override
+    public void onLocationChanged(Location location) {
+        currentLocation = location;
+        if(myLocation != null){
+            myLocation.remove();
+        }
+
+        LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
+        MarkerOptions markerOptions = new MarkerOptions();
+        markerOptions.position(latLng);
+        markerOptions.title("This be you.");
+        markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN));
+        myLocation = mMap.addMarker(markerOptions);
+
+        /* Updated this part so that it zooms in on the location, as it was buggy with me, I've left
+         * the original code commented out as it may be useful for if your location is updated?
+         * Either way this works for me at the moment & doesn't default me to the ocean lmao - James
+         */
+        float zoomLevel = 15.0f;
+        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
+        //mMap.animateCamera(CameraUpdateFactory.zoomBy(10));
+
+        if(mGoogleApiClient != null){
+            LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
+
+        }
+    }
+
+    @Override
+    public void onConnected(@Nullable Bundle bundle) {
+        mLocationRequest = new LocationRequest();
+        mLocationRequest.setInterval(1000);
+        mLocationRequest.setFastestInterval(1000);
+        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
+
+        if(ContextCompat.checkSelfPermission(this,
+                Manifest.permission.ACCESS_FINE_LOCATION)
+                == PackageManager.PERMISSION_GRANTED) {
+            LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,
+                    mLocationRequest, this);
+        }
+    }
+
+    @Override
+    public void onConnectionSuspended(int i) {
+
+    }
+
+    @Override
+    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_home):
+
+                Intent home_i = new Intent(Map.this, Driver_Main.class);
+                startActivity(home_i);
+                return true;
+
+
+            case(R.id.item_logout):
+
+                /*
+                TODO:
+                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                    within each activity? as far as I understand the login just gets you to the next activity
+                    however if you "logout" and just press the back button after it takes you back to the homepage
+                    it will act as if you are still logged in when you reenter).
+                    for now i have just set it so it goes back to the homepage (where you can register or login).
+                 */
+
+                Toast.makeText(Map.this, "successfully logged out", Toast.LENGTH_SHORT).show();
+                Intent logout_i = new Intent(Map.this, Homepage.class);
+                startActivity(logout_i);
+
+                return true;
+
+            case(R.id.item_profile):
+
+                Intent profile_i = new Intent(Map.this, Profile.class);
+                profile_i.putExtra("userType", Login.userType.DRIVER);
+                startActivity(profile_i);
+
+                return true;
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Map.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.DRIVER);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/Offline_Map.java b/src/main/java/com/example/liliyayankova/unirides/Offline_Map.java
new file mode 100644
index 0000000000000000000000000000000000000000..d494355737851e2e8f5913dade589e54ce16f234
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Offline_Map.java
@@ -0,0 +1,231 @@
+package com.example.liliyayankova.unirides;
+
+import android.Manifest;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.location.Location;
+import android.location.LocationManager;
+import android.os.Build;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.app.FragmentActivity;
+import android.os.Bundle;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.location.LocationRequest;
+import com.google.android.gms.location.LocationListener;
+import com.google.android.gms.location.LocationServices;
+import com.google.android.gms.maps.CameraUpdate;
+import com.google.android.gms.maps.CameraUpdateFactory;
+import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.OnMapReadyCallback;
+import com.google.android.gms.maps.SupportMapFragment;
+import com.google.android.gms.maps.model.BitmapDescriptorFactory;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.Marker;
+import com.google.android.gms.maps.model.MarkerOptions;
+
+public class Offline_Map extends AppCompatActivity implements
+        OnMapReadyCallback,
+        GoogleApiClient.ConnectionCallbacks,
+        GoogleApiClient.OnConnectionFailedListener,
+        LocationListener {
+
+    LocationManager locationManager;
+    private GoogleMap mMap;
+    private GoogleApiClient mGoogleApiClient;
+    private LocationRequest mLocationRequest;
+    private Location currentLocation;
+    private Marker myLocation;
+    private static final int REQUEST_USER_LOCATION_CODE = 99;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_offline__map);
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
+            checkUserLocationPermission();
+        }
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
+        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
+                .findFragmentById(R.id.map);
+        mapFragment.getMapAsync(this);
+
+        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
+
+
+        Button back_button = findViewById(R.id.back_button);
+        back_button.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent home_i = new Intent(Offline_Map.this, Homepage.class);
+                startActivity(home_i);
+            }
+        });
+
+
+    }
+
+    @Override
+    public void onMapReady(GoogleMap googleMap) {
+        mMap = googleMap;
+        if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
+                == PackageManager.PERMISSION_GRANTED) {
+
+            buildGoogleApiClient();
+
+            mMap.setMyLocationEnabled(true);
+        }
+    }
+
+    public boolean checkUserLocationPermission(){
+        if(ContextCompat.checkSelfPermission(this,
+                Manifest.permission.ACCESS_FINE_LOCATION)
+                != PackageManager.PERMISSION_GRANTED){
+            if(ActivityCompat.shouldShowRequestPermissionRationale(this,
+                    Manifest.permission.ACCESS_FINE_LOCATION)){
+                ActivityCompat.requestPermissions(this, new String[]
+                        {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_USER_LOCATION_CODE);
+            }else{
+                ActivityCompat.requestPermissions(this, new String[]
+                        {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_USER_LOCATION_CODE);
+            }
+            return false;
+        }else{
+            return true;
+        }
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+                                           @NonNull int[] grantResults) {
+        switch (requestCode){
+            case REQUEST_USER_LOCATION_CODE:
+                if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+                    if (ContextCompat.checkSelfPermission(this,
+                            Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+                        if (mGoogleApiClient == null) {
+                            buildGoogleApiClient();
+                        }
+                        mMap.setMyLocationEnabled(true);
+                    }
+                }else{
+                    Toast.makeText(this, "Permission Denied.", Toast.LENGTH_SHORT).show();
+                }
+                return;
+        }
+    }
+
+    protected synchronized void buildGoogleApiClient(){
+        mGoogleApiClient = new GoogleApiClient.Builder(this)
+                .addConnectionCallbacks(this)
+                .addOnConnectionFailedListener(this)
+                .addApi(LocationServices.API)
+                .build();
+
+        mGoogleApiClient.connect();
+    }
+
+    @Override
+    public void onLocationChanged(Location location) {
+        currentLocation = location;
+        if(myLocation != null){
+            myLocation.remove();
+        }
+
+        LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
+        MarkerOptions markerOptions = new MarkerOptions();
+        markerOptions.position(latLng);
+        markerOptions.title("Your current location");
+        markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN));
+        myLocation = mMap.addMarker(markerOptions);
+
+        /* Updated this part so that it zooms in on the location, as it was buggy with me, I've left
+         * the original code commented out as it may be useful for if your location is updated?
+         * Either way this works for me at the moment & doesn't default me to the ocean lmao - James
+         */
+        float zoomLevel = 15.0f;
+        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
+        //mMap.animateCamera(CameraUpdateFactory.zoomBy(10));
+
+        if(mGoogleApiClient != null){
+            LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
+
+        }
+    }
+
+    @Override
+    public void onConnected(@Nullable Bundle bundle) {
+        mLocationRequest = new LocationRequest();
+        mLocationRequest.setInterval(1000);
+        mLocationRequest.setFastestInterval(1000);
+        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
+
+        if(ContextCompat.checkSelfPermission(this,
+                Manifest.permission.ACCESS_FINE_LOCATION)
+                == PackageManager.PERMISSION_GRANTED) {
+            LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,
+                    mLocationRequest, this);
+        }
+    }
+
+    @Override
+    public void onConnectionSuspended(int i) {
+
+    }
+
+    @Override
+    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Offline_Map.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.NONE);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/Profile.java b/src/main/java/com/example/liliyayankova/unirides/Profile.java
new file mode 100644
index 0000000000000000000000000000000000000000..95b4ff885e79ec15afae5af1b3a29c298bc4905e
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Profile.java
@@ -0,0 +1,121 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+
+public class Profile extends AppCompatActivity {
+
+    //TODO: layout and functionality of profile activity needs to be done!
+
+    private boolean isDriver;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_profile);
+
+        //assume the user is a passenger (isDriver = false) unless bundle extra userType value is DRIVER
+        isDriver = false;
+
+        /* checking if there are any bundle extras (should be the userType) */
+        if(getIntent().getExtras() != null) {
+            //setting userType to this result (DRIVER or PASSENGER)
+            if(getIntent().getExtras().get("userType") == Login.userType.DRIVER){
+                isDriver = true;
+            }
+        }
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        Button camera_button = findViewById(R.id.profile_pic);
+        camera_button.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //open camera?
+            }
+        });
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_home):
+
+                if (isDriver) {
+                    Intent home_i = new Intent(Profile.this, Driver_Main.class);
+                    startActivity(home_i);
+                    return true;
+                }else{
+                    Intent home_i = new Intent(Profile.this, User_Main.class);
+                    startActivity(home_i);
+                    return true;
+                }
+
+
+            case(R.id.item_logout):
+
+                /*
+                TODO:
+                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                    within each activity? as far as I understand the login just gets you to the next activity
+                    however if you "logout" and just press the back button after it takes you back to the homepage
+                    it will act as if you are still logged in when you reenter).
+                    for now i have just set it so it goes back to the homepage (where you can register or login).
+                 */
+
+                Toast.makeText(Profile.this, "successfully logged out", Toast.LENGTH_SHORT).show();
+                Intent logout_i = new Intent(Profile.this, Homepage.class);
+                startActivity(logout_i);
+
+                return true;
+
+            case(R.id.item_profile):
+
+                //do nothing (we're already in settings)
+                return true;
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Profile.this, Settings.class);
+
+                if(isDriver){
+                    settings_i.putExtra("userType", Login.userType.DRIVER);
+                }else{
+                    settings_i.putExtra("userType", Login.userType.PASSENGER);
+                }
+
+                startActivity(settings_i);
+
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/Register.java b/src/main/java/com/example/liliyayankova/unirides/Register.java
index b1b5fb5ae5fd99ac6745592a4fff37b6f6990e6d..394b2f71e38d842950afef572dd9776c02d1f4f4 100644
--- a/src/main/java/com/example/liliyayankova/unirides/Register.java
+++ b/src/main/java/com/example/liliyayankova/unirides/Register.java
@@ -1,28 +1,76 @@
 package com.example.liliyayankova.unirides;
 
+import android.content.Intent;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
 import android.widget.Button;
-import android.widget.EditText;
 
 public class Register extends AppCompatActivity {
-    private EditText forename;
-    private EditText surname;
-    private EditText email;
-    private EditText password;
-    private EditText age;
-    private Button register;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_register);
 
-        this.forename = (EditText) findViewById(R.id.forename);
-        this.surname = (EditText) findViewById(R.id.surname);
-        this.email = (EditText) findViewById(R.id.email);
-        this.password = (EditText) findViewById(R.id.password);
-        this.age = (EditText) findViewById(R.id.age);
-        this.register = (Button) findViewById(R.id.signup);
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        Button user_register = findViewById(R.id.user_signup);
+        Button driver_register = findViewById(R.id.driver_signup);
+
+        //user button listener
+        user_register.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent i = new Intent(Register.this, User_Register.class);
+                startActivity(i);
+            }
+        });
+
+        //driver button listener
+        driver_register.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent i = new Intent(Register.this, Driver_Register.class);
+                startActivity(i);
+            }
+        });
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Register.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.NONE);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
     }
 }
diff --git a/src/main/java/com/example/liliyayankova/unirides/Route.java b/src/main/java/com/example/liliyayankova/unirides/Route.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ce8969b15fc4fa539fa3181df4ccfcf3448bf8b
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Route.java
@@ -0,0 +1,89 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.widget.Toast;
+
+public class Route extends AppCompatActivity {
+
+    //TODO: This entire activity for creating and posting routes needs to be done.
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_route);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_home):
+
+                Intent home_i = new Intent(Route.this, Driver_Main.class);
+                startActivity(home_i);
+                return true;
+
+
+            case(R.id.item_logout):
+
+                /*
+                TODO:
+                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                    within each activity? as far as I understand the login just gets you to the next activity
+                    however if you "logout" and just press the back button after it takes you back to the homepage
+                    it will act as if you are still logged in when you reenter).
+                    for now i have just set it so it goes back to the homepage (where you can register or login).
+                 */
+
+                Toast.makeText(Route.this, "successfully logged out", Toast.LENGTH_SHORT).show();
+                Intent logout_i = new Intent(Route.this, Homepage.class);
+                startActivity(logout_i);
+
+                return true;
+
+            case(R.id.item_profile):
+
+                Intent profile_i = new Intent(Route.this, Profile.class);
+                profile_i.putExtra("userType", Login.userType.DRIVER);
+                startActivity(profile_i);
+
+                return true;
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(Route.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.DRIVER);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/Settings.java b/src/main/java/com/example/liliyayankova/unirides/Settings.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff743fb627967900cb1cd33537e8c174fc0c1ed7
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/Settings.java
@@ -0,0 +1,225 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.Spinner;
+import android.widget.Toast;
+import android.widget.ToggleButton;
+
+public class Settings extends AppCompatActivity {
+
+    private boolean isDriver;
+    private boolean isLoggedIn;
+    private boolean isSoundOn;
+
+    private ToggleButton sound;
+    private Spinner language;
+    private Spinner save_location;
+    private Button save_button;
+
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_settings);
+
+        /*
+         * assume the user is a passenger (isDriver = false) unless bundle extra userType value is DRIVER
+         * also assume that the user is logged in until proven wrong
+         */
+        isDriver = false;
+        isLoggedIn = true;
+
+        /* checking if there are any bundle extras (should be the userType) */
+        if(getIntent().getExtras() != null) {
+            //setting userType to this result (DRIVER or PASSENGER)
+            if(getIntent().getExtras().get("userType") == Login.userType.DRIVER){
+                isDriver = true;
+            }
+            //if coming from the homepage (not signed in) set logged in to false
+            if(getIntent().getExtras().get("userType") == Login.userType.NONE){
+                isLoggedIn = false;
+            }
+        }
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        this.language = findViewById(R.id.language_spinner);
+        ArrayAdapter<CharSequence> l_adapter = ArrayAdapter.createFromResource(this,
+                R.array.languages, android.R.layout.simple_spinner_item);
+        l_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        language.setAdapter(l_adapter);
+
+        this.save_location = findViewById(R.id.save_location_spinner);
+        ArrayAdapter<CharSequence> s_adapter = ArrayAdapter.createFromResource(this,
+                R.array.save_locations, android.R.layout.simple_spinner_item);
+        s_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        save_location.setAdapter(s_adapter);
+
+        this.sound = findViewById(R.id.sound_toggle);
+        this.sound.setChecked(isSoundOn); // set the current state of a toggle button
+        this.sound.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                //set isSoundOn to checked value (on or off)
+                isSoundOn = isChecked;
+            }
+        });
+
+        //if no settings file found, set to default values
+        if(!loadSettings()){
+            sound.setChecked(true);
+            save_location.setSelection(0);
+            language.setSelection(0);
+        }
+
+
+        this.save_button = findViewById(R.id.save_button);
+        this.save_button.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //call method saveSettings
+                if(saveSettings() == true) {
+
+                    if (isLoggedIn) {
+                        if (isDriver) {
+                            Intent D_home_i = new Intent(Settings.this, Driver_Main.class);
+                            startActivity(D_home_i);
+                        } else {
+                            Intent U_home_i = new Intent(Settings.this, User_Main.class);
+                            startActivity(U_home_i);
+                        }
+                    } else {
+                        Intent home_i = new Intent(Settings.this, Homepage.class);
+                        startActivity(home_i);
+                    }
+                }else{
+                    Toast.makeText(Settings.this, "Failed to save settings", Toast.LENGTH_SHORT).show();
+                }
+            }
+        });
+    }
+
+    //TODO: save settings to device or database
+    public boolean saveSettings(){
+
+        //if save is successful -> return true
+        return true;
+
+        //if not successful -> return false
+    }
+
+    //TODO: load settings from device or database
+    public boolean loadSettings(){
+
+        //if file found -> extract values -> return true
+
+        //if no file found -> return false
+        return  false;
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+
+        //setting toolbar options depending on user logged in (offline or online)
+        if(isLoggedIn){
+            MenuInflater menuInflater = getMenuInflater();
+            menuInflater.inflate(R.menu.toolbar_menu, menu);
+            return true;
+        }else {
+            MenuInflater menuInflater = getMenuInflater();
+            menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+            return true;
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        /* checks if user is logged in, if not it shows a different toolbar */
+        if(isLoggedIn) {
+            //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+            switch (item.getItemId()) {
+
+                case (R.id.item_home):
+
+                    if (isDriver) {
+                        Intent home_i = new Intent(Settings.this, Driver_Main.class);
+                        startActivity(home_i);
+                        return true;
+                    } else {
+                        Intent home_i = new Intent(Settings.this, User_Main.class);
+                        startActivity(home_i);
+                        return true;
+                    }
+
+                case (R.id.item_logout):
+
+                /*
+                TODO:
+                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                    within each activity? as far as I understand the login just gets you to the next activity
+                    however if you "logout" and just press the back button after it takes you back to the homepage
+                    it will act as if you are still logged in when you reenter).
+                    for now i have just set it so it goes back to the homepage (where you can register or login).
+                 */
+
+                    Toast.makeText(Settings.this, "successfully logged out", Toast.LENGTH_SHORT).show();
+                    Intent logout_i = new Intent(Settings.this, Homepage.class);
+                    startActivity(logout_i);
+
+                    return true;
+
+                case (R.id.item_profile):
+
+                    Intent profile_i = new Intent(Settings.this, Profile.class);
+
+                    if (isDriver) {
+                        profile_i.putExtra("userType", Login.userType.DRIVER);
+                    } else {
+                        profile_i.putExtra("userType", Login.userType.PASSENGER);
+                    }
+
+                    startActivity(profile_i);
+
+                    return true;
+
+                case (R.id.item_settings):
+
+                    //do nothing (already on the settings page)
+                    return true;
+
+            }
+
+        }else{
+
+            switch (item.getItemId()){
+
+                case(R.id.item_settings):
+
+                    //do nothing (already on the settings page)
+                    return true;
+            }
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/User_Main.java b/src/main/java/com/example/liliyayankova/unirides/User_Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2bb785e00ea2eea4059eff1aeae4a68188178bf
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/User_Main.java
@@ -0,0 +1,95 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.Toast;
+
+public class User_Main extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_user_main);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        ImageButton map_button = findViewById(R.id.view_route_button);
+        map_button.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent map_i = new Intent(User_Main.this, Map.class);
+                startActivity(map_i);
+            }
+        });
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_home):
+
+                //already home, so do nothing.
+                return true;
+
+            case(R.id.item_logout):
+
+                /*
+                TODO:
+                    Possibly add a way to log out here? (not sure if we are even tracking the login instance
+                    within each activity? as far as I understand the login just gets you to the next activity
+                    however if you "logout" and just press the back button after it takes you back to the homepage
+                    it will act as if you are still logged in when you reenter).
+                    for now i have just set it so it goes back to the homepage (where you can register or login).
+                 */
+
+                Toast.makeText(User_Main.this, "successfully logged out", Toast.LENGTH_SHORT).show();
+                Intent logout_i = new Intent(User_Main.this, Homepage.class);
+                startActivity(logout_i);
+
+                return true;
+
+            case(R.id.item_profile):
+
+                Intent profile_i = new Intent(User_Main.this, Profile.class);
+                profile_i.putExtra("userType", Login.userType.PASSENGER);
+                startActivity(profile_i);
+                return true;
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(User_Main.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.PASSENGER);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/src/main/java/com/example/liliyayankova/unirides/User_Register.java b/src/main/java/com/example/liliyayankova/unirides/User_Register.java
new file mode 100644
index 0000000000000000000000000000000000000000..a9b6a311a7ac35a4eb2cb9637561ad65f7c2e500
--- /dev/null
+++ b/src/main/java/com/example/liliyayankova/unirides/User_Register.java
@@ -0,0 +1,160 @@
+package com.example.liliyayankova.unirides;
+
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.auth.AuthResult;
+import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.auth.FirebaseUser;
+import com.google.firebase.database.DatabaseReference;
+import com.google.firebase.database.FirebaseDatabase;
+
+public class User_Register extends AppCompatActivity {
+    private EditText forename;
+    private EditText surname;
+    private EditText email;
+    private EditText password;
+    private EditText age;
+    private Button sign_up;
+
+    /* Used for Firebase authorisation in creating a new account */
+    private FirebaseAuth firebaseAuth;
+
+    /* Allows access to the Firebase Database */
+    private FirebaseDatabase firebaseDatabase;
+
+    /* Used to add values to the database */
+    private DatabaseReference dbReference;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_user_register);
+
+        //setting the user_toolbar layout as the action bar
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        try {
+            setSupportActionBar(toolbar);
+        } catch (Exception e) {
+            Log.e("TOOLBAR", e.toString());
+        }
+
+        //makes it so the keyboard doesn't automatically popup!
+        this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+
+        this.forename = (EditText) findViewById(R.id.forename);
+        this.surname = (EditText) findViewById(R.id.surname);
+        this.email = (EditText) findViewById(R.id.email);
+        this.password = (EditText) findViewById(R.id.password);
+        this.age = (EditText) findViewById(R.id.age);
+        this.sign_up = (Button) findViewById(R.id.signup_button);
+
+        this.firebaseAuth = FirebaseAuth.getInstance();
+        this.firebaseDatabase = FirebaseDatabase.getInstance();
+        this.dbReference = firebaseDatabase.getReference();
+
+        //sign_up button listener
+        sign_up.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                //execute register method
+                registerClick(view);
+            }
+        });
+
+
+    }
+
+    public void registerClick(View v) {
+        final String forenameText = forename.getText().toString().trim();
+        final String surnameText = surname.getText().toString().trim();
+        final String emailText = email.getText().toString().trim();
+        final String passwordText = password.getText().toString().trim();
+        final String ageText = age.getText().toString().trim();
+
+        Log.d("Email", emailText);
+        Log.d("Password", passwordText);
+
+        if(TextUtils.isEmpty(forenameText) || TextUtils.isEmpty(surnameText)
+        || TextUtils.isEmpty(emailText) || TextUtils.isEmpty(passwordText)
+        || TextUtils.isEmpty(passwordText) || TextUtils.isEmpty(ageText)) {
+            Toast.makeText(this, "One of the fields is empty!",Toast.LENGTH_SHORT).show();
+
+        }
+
+        else {
+            firebaseAuth.createUserWithEmailAndPassword(emailText, passwordText)
+                    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
+                        @Override
+                        public void onComplete(@NonNull Task<AuthResult> task) {
+                            if(task.isSuccessful()) {
+                                FirebaseUser user = firebaseAuth.getCurrentUser();
+                                String userId = user.getUid();
+                                Toast.makeText(User_Register.this, forenameText,Toast.LENGTH_SHORT).show();
+
+                                // Code to add values into the database
+                                // Only temporary for now, might change these a bit later
+                                dbReference.child("passengers").child(userId).child("first_name").setValue(forenameText);
+                                dbReference.child("passengers").child(userId).child("last_name").setValue(surnameText);
+                                dbReference.child("passengers").child(userId).child("age").setValue(ageText);
+                                dbReference.child("passengers").child(userId).child("email").setValue(emailText);
+                                dbReference.child("passengers").child(userId).child("average_rating").setValue(0.0);
+
+
+                                //finish();
+                                Toast.makeText(User_Register.this, "registration successful",Toast.LENGTH_SHORT).show();
+                                Intent home = new Intent(User_Register.this, Homepage.class);
+                                startActivity(home);
+
+                            }
+                            else {
+                                Toast.makeText(User_Register.this, "registration not successful",Toast.LENGTH_SHORT).show();
+                            }
+                        }
+                    });
+        }
+
+    }
+
+    //Override for the user_toolbar menu items
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater menuInflater = getMenuInflater();
+        menuInflater.inflate(R.menu.offline_toolbar_menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+
+        //checks the id of the item, if the item id matches a case id then the code in that case block will execute
+        switch(item.getItemId()){
+
+            case(R.id.item_settings):
+
+                Intent settings_i = new Intent(User_Register.this, Settings.class);
+                settings_i.putExtra("userType", Login.userType.NONE);
+                startActivity(settings_i);
+                return true;
+
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+}
diff --git a/src/main/res/drawable/ic_home_black_24dp.xml b/src/main/res/drawable/ic_home_black_24dp.xml
new file mode 100644
index 0000000000000000000000000000000000000000..30296ba99b433cc58b06ad27b91c45f8d7dc011b
--- /dev/null
+++ b/src/main/res/drawable/ic_home_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#FFFFFF"
+    android:viewportHeight="24.0" android:viewportWidth="24.0"
+    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#FF000000" android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
+</vector>
diff --git a/src/main/res/drawable/icon_add_image.png b/src/main/res/drawable/icon_add_image.png
new file mode 100644
index 0000000000000000000000000000000000000000..4420bb7af8c7f8c776eec5ffe567c47dc1b82bdb
Binary files /dev/null and b/src/main/res/drawable/icon_add_image.png differ
diff --git a/src/main/res/drawable/icon_camera.png b/src/main/res/drawable/icon_camera.png
new file mode 100644
index 0000000000000000000000000000000000000000..1972a031b6ddf23ba5ef9cf9f277b603c9dc8e06
Binary files /dev/null and b/src/main/res/drawable/icon_camera.png differ
diff --git a/src/main/res/drawable/icon_earth.png b/src/main/res/drawable/icon_earth.png
new file mode 100644
index 0000000000000000000000000000000000000000..4350d7ccbad3dfa855108c89c48625bcbeeb555e
Binary files /dev/null and b/src/main/res/drawable/icon_earth.png differ
diff --git a/src/main/res/drawable/icon_map.png b/src/main/res/drawable/icon_map.png
new file mode 100644
index 0000000000000000000000000000000000000000..06103e9a61288ad56266018b03fc3652922aafdf
Binary files /dev/null and b/src/main/res/drawable/icon_map.png differ
diff --git a/src/main/res/drawable/icon_plus.png b/src/main/res/drawable/icon_plus.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f5cf37db95903626b318578e382569128dbe93d
Binary files /dev/null and b/src/main/res/drawable/icon_plus.png differ
diff --git a/src/main/res/drawable/icon_settings.png b/src/main/res/drawable/icon_settings.png
new file mode 100644
index 0000000000000000000000000000000000000000..46961d6d2745da8b580d93f1dfb3ea0073e1d351
Binary files /dev/null and b/src/main/res/drawable/icon_settings.png differ
diff --git a/src/main/res/drawable/icon_users.png b/src/main/res/drawable/icon_users.png
new file mode 100644
index 0000000000000000000000000000000000000000..385010ba5eb013b9abcb520b267cba13f0f522d3
Binary files /dev/null and b/src/main/res/drawable/icon_users.png differ
diff --git a/src/main/res/drawable/logo_hd.png b/src/main/res/drawable/logo_hd.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd3fed179f1a407ea84858fe016f9d39ca659bfd
Binary files /dev/null and b/src/main/res/drawable/logo_hd.png differ
diff --git a/src/main/res/layout/activity_driver_main.xml b/src/main/res/layout/activity_driver_main.xml
new file mode 100644
index 0000000000000000000000000000000000000000..77d46787a05cdebfc12e7acf0a284babb1de2070
--- /dev/null
+++ b/src/main/res/layout/activity_driver_main.xml
@@ -0,0 +1,83 @@
+<?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:background="@color/common_google_signin_btn_text_dark_pressed"
+    android:orientation="vertical"
+    tools:context=".User_Main">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <ImageView
+        android:id="@+id/app_logo_image"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:contentDescription="@string/app_name"
+        app:srcCompat="@drawable/logo_hd" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:orientation="horizontal">
+
+        <ImageButton
+            android:id="@+id/view_route_button"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="30dp"
+            android:layout_weight="1"
+            android:background="@color/common_google_signin_btn_text_dark_disabled"
+            android:contentDescription="@string/view_routes"
+            android:scaleType="fitCenter"
+            android:src="@drawable/icon_map"
+            android:text="@string/title_activity_map" />
+
+        <ImageButton
+            android:id="@+id/create_route_button"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="30dp"
+            android:layout_weight="1"
+            android:background="@color/common_google_signin_btn_text_dark_disabled"
+            android:contentDescription="@string/create_route"
+            android:scaleType="fitCenter"
+            android:src="@drawable/icon_plus"
+            android:text="@string/title_activity_map" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp"
+        android:layout_weight="0"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/view_route_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:text="@string/view_routes"
+            android:textAllCaps="false"
+            android:textSize="30sp" />
+
+        <TextView
+            android:id="@+id/create_route_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:text="@string/create_route"
+            android:textAllCaps="false"
+            android:textSize="30sp" />
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_driver_register.xml b/src/main/res/layout/activity_driver_register.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e539470580a1f03919eaf27fce78fdb181b3c0a5
--- /dev/null
+++ b/src/main/res/layout/activity_driver_register.xml
@@ -0,0 +1,134 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+
+    <TextView
+        android:id="@+id/driver_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="50dp"
+        android:text="@string/driver_register"
+        android:textSize="30sp"
+        android:textStyle="bold" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:padding="10dp">
+
+        <EditText
+            android:id="@+id/forename"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/name"
+            android:inputType="text" />
+
+        <EditText
+            android:id="@+id/surname"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/lastname"
+            android:inputType="text" />
+
+        <EditText
+            android:id="@+id/email"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/prompt_email"
+            android:inputType="textEmailAddress" />
+
+        <EditText
+            android:id="@+id/password"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/prompt_password"
+            android:inputType="textPassword" />
+
+        <EditText
+            android:id="@+id/age"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/prompt_age"
+            android:inputType="number" />
+
+        <EditText
+            android:id="@+id/car_model"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/car_model"
+            android:inputType="text" />
+
+        <EditText
+            android:id="@+id/license_plate"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/licence_plate"
+            android:inputType="text" />
+
+        <EditText
+            android:id="@+id/time_driving"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/time_driving"
+            android:inputType="text" />
+
+        <!-- Potentially temporary -->
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1.7"
+        android:orientation="vertical"
+        android:padding="10dp">
+
+        <TextView
+            android:id="@+id/tickbox_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="5dp"
+            android:text="@string/tickbox_text"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <CheckBox
+            android:id="@+id/checkBox_student"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/student_confirmation" />
+
+        <CheckBox
+            android:id="@+id/checkBox_TandC"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/terms_and_conditions" />
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/signup_button"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="20dp"
+        android:layout_marginEnd="20dp"
+        android:layout_marginBottom="10dp"
+        android:background="@color/colorPrimaryDark"
+        android:text="@string/sign"
+        android:textColor="#FFFFFF" />
+
+
+</LinearLayout>
+
+
+
diff --git a/src/main/res/layout/activity_homepage.xml b/src/main/res/layout/activity_homepage.xml
index 8fe919fe6ffcd041561daa22c05737e4e831785f..3fb0467506eb9dbf614c929805409810133a8ea0 100644
--- a/src/main/res/layout/activity_homepage.xml
+++ b/src/main/res/layout/activity_homepage.xml
@@ -1,61 +1,112 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<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"
-    tools:context=".Homepage">
+    android:layout_weight="1"
+    android:background="@color/ic_launcher_background"
+    android:gravity="center_horizontal"
+    android:orientation="vertical"
+    tools:context=".Login">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <ImageView
+        android:id="@+id/imageView4"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1.3"
+        android:contentDescription="@string/app_logo"
+        android:src="@drawable/logo_hd"
+        tools:layout_editor_absoluteX="24dp"
+        tools:layout_editor_absoluteY="23dp" />
 
     <TextView
         android:id="@+id/welcome"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:gravity="center"
         android:text="@string/welcome"
+        android:textAlignment="center"
         android:textAllCaps="true"
-        android:textStyle="bold|italic"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.093" />
+        android:textColor="@color/colorPrimary"
+        android:textSize="24sp"
+        android:textStyle="bold|italic" />
 
     <TextView
         android:id="@+id/subh"
-        android:layout_width="wrap_content"
-        android:layout_height="26dp"
-        android:text="@string/subheading"
-        android:textStyle="italic"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintHorizontal_bias="0.502"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.191" />
-
-    <Button
-        android:id="@+id/registerB"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="@string/register"
-        android:textAllCaps="false"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintHorizontal_bias="0.78"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.501" />
-
-    <Button
-        android:id="@+id/loginB"
-        android:layout_width="wrap_content"
+        android:gravity="top"
+        android:text="@string/subheading"
+        android:textAlignment="center"
+        android:textColor="@color/colorPrimary"
+        android:textSize="18sp"
+        android:textStyle="italic" />
+
+    <ImageButton
+        android:id="@+id/offline_map"
+        android:layout_width="200dp"
+        android:layout_height="200dp"
+        android:layout_gravity="center"
+        android:layout_marginTop="30dp"
+        android:contentDescription="@string/offline_map"
+        android:scaleType="fitCenter"
+        android:src="@drawable/icon_map" />
+
+    <TextView
+        android:id="@+id/map_title"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="@string/login"
-        android:textAllCaps="false"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintHorizontal_bias="0.182"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.501" />
-
-</android.support.constraint.ConstraintLayout>
\ No newline at end of file
+        android:fontFamily="sans-serif"
+        android:gravity="top"
+        android:text="@string/offline_map"
+        android:textAlignment="center"
+        android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+        android:textColor="@color/colorPrimary"
+        android:textSize="18sp" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1.5"
+        android:gravity="center"
+        android:orientation="horizontal">
+
+        <Button
+            android:id="@+id/loginB"
+            style="@style/Widget.AppCompat.Button.Borderless.Colored"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginStart="50dp"
+            android:layout_marginTop="70dp"
+            android:layout_marginEnd="25dp"
+            android:layout_marginBottom="50dp"
+            android:layout_weight="1"
+            android:background="@color/colorPrimary"
+            android:text="@string/login"
+            android:textAllCaps="false"
+            android:textColor="@color/ic_launcher_background"
+            android:textColorLink="@color/ic_launcher_background" />
+
+        <Button
+            android:id="@+id/registerB"
+            style="@style/Widget.AppCompat.Button.Borderless.Colored"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginStart="25dp"
+            android:layout_marginTop="70dp"
+            android:layout_marginEnd="50dp"
+            android:layout_marginBottom="50dp"
+            android:layout_weight="1"
+            android:background="@color/colorPrimaryDark"
+            android:text="@string/register"
+            android:textAllCaps="false"
+            android:textColor="@color/ic_launcher_background"
+            android:textColorLink="@color/ic_launcher_background" />
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_login.xml b/src/main/res/layout/activity_login.xml
index 7de6e9f85112c3621a8d32472c1b40e95d4fc33f..3c76f7e7b073693c6e9db9dd214d4a826763470c 100644
--- a/src/main/res/layout/activity_login.xml
+++ b/src/main/res/layout/activity_login.xml
@@ -3,14 +3,14 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:gravity="center_horizontal"
+    android:gravity="center"
     android:orientation="vertical"
-    android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingBottom="@dimen/activity_vertical_margin"
     tools:context=".Login">
 
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
     <!-- Login progress -->
     <ProgressBar
         android:id="@+id/login_progress"
@@ -23,12 +23,16 @@
     <ScrollView
         android:id="@+id/login_form"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:foregroundGravity="center"
+        android:padding="10dp">
 
         <LinearLayout
             android:id="@+id/email_login_form"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_gravity="center"
             android:orientation="vertical">
 
             <android.support.design.widget.TextInputLayout
@@ -42,7 +46,8 @@
                     android:hint="@string/prompt_email"
                     android:inputType="textEmailAddress"
                     android:maxLines="1"
-                    android:singleLine="true" />
+                    android:singleLine="true"
+                    android:text="driv3r@surrey.ac.uk" />
 
             </android.support.design.widget.TextInputLayout>
 
@@ -60,7 +65,8 @@
                     android:imeOptions="actionUnspecified"
                     android:inputType="textPassword"
                     android:maxLines="1"
-                    android:singleLine="true" />
+                    android:singleLine="true"
+                    android:text="qwerty" />
 
             </android.support.design.widget.TextInputLayout>
 
@@ -70,9 +76,33 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="16dp"
+                android:background="@color/colorPrimary"
                 android:text="@string/action_sign_in"
+                android:textColor="@color/ic_launcher_background"
                 android:textStyle="bold" />
 
         </LinearLayout>
     </ScrollView>
+
+    <TextView
+        android:id="@+id/hint_title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="Easy Logins for Testing (will be removed later!)"
+        android:textSize="24sp"
+        android:textStyle="bold" />
+
+    <TextView
+        android:id="@+id/hint_for_tests"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="Passenger: Username = passenger@surrey.ac.uk, password = password"
+        android:textSize="24sp" />
+
+    <TextView
+        android:id="@+id/hint_for_tests2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="Driver: Username = driv3r@surrey.ac.uk, password = qwerty"
+        android:textSize="24sp" />
 </LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_map.xml b/src/main/res/layout/activity_map.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1e48ff9697cd6f7a6bf89f454116942dde7900a4
--- /dev/null
+++ b/src/main/res/layout/activity_map.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:orientation="vertical"
+    tools:context=".Map">
+
+    <include
+    android:id="@+id/toolbar"
+    layout="@layout/user_toolbar" />
+
+    <fragment
+    android:id="@+id/map"
+    android:name="com.google.android.gms.maps.SupportMapFragment"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".Map" />
+
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_offline__map.xml b/src/main/res/layout/activity_offline__map.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6482bec24520f2f6ade80a10f140c57752175a67
--- /dev/null
+++ b/src/main/res/layout/activity_offline__map.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/common_google_signin_btn_text_dark_default"
+    android:gravity="center"
+    android:orientation="vertical"
+    tools:context=".Offline_Map">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <fragment
+        android:id="@+id/map"
+        android:name="com.google.android.gms.maps.SupportMapFragment"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        tools:context=".Offline_Map" />
+
+    <Button
+        android:id="@+id/back_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/common_google_signin_btn_icon_light_normal_background"
+        android:backgroundTint="@color/common_google_signin_btn_text_dark_default"
+        android:text="@string/back" />
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_profile.xml b/src/main/res/layout/activity_profile.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46fe79ca6ce7f884b36bc71bb092e39acbcc33fd
--- /dev/null
+++ b/src/main/res/layout/activity_profile.xml
@@ -0,0 +1,45 @@
+<?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"
+    tools:context=".Profile">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <TextView
+        android:id="@+id/profile_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="20dp"
+        android:gravity="center"
+        android:text="@string/profile"
+        android:textSize="30sp" />
+
+    <Button
+        android:id="@+id/profile_pic"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="40dp"
+        android:text="@string/take_pic"
+        android:textAllCaps="false" />
+
+    <ImageView
+        android:id="@+id/profile_image"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="3"
+        android:contentDescription="@string/profile"
+        app:srcCompat="@drawable/icon_users" />
+
+    <ImageView
+        android:id="@+id/picture_taken"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginHorizontal="100dp" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_register.xml b/src/main/res/layout/activity_register.xml
index ef9fec6e35d22ef04421fe5275e6ad25304b4c1e..e35c92a6dceaa3ef7f821679fbfe16cf6346c563 100644
--- a/src/main/res/layout/activity_register.xml
+++ b/src/main/res/layout/activity_register.xml
@@ -1,58 +1,64 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_height="match_parent"
+<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:gravity="center"
+    android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="10dp" >
+    tools:context=".Register">
 
-    <EditText
-        android:id="@+id/forename"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:text="@string/name"
-        />
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
 
-    <EditText
-        android:id="@+id/surname"
-        android:layout_height="wrap_content"
+    <TextView
+        android:id="@+id/title_text"
         android:layout_width="match_parent"
-        android:text="@string/lastname"
-        />
-
-    <EditText
-        android:id="@+id/email"
         android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:text="@string/prompt_email"
-        />
+        android:layout_weight="1"
+        android:gravity="center"
+        android:text="@string/register"
+        android:textAllCaps="false"
+        android:textStyle="bold"
+        android:textSize="30sp" />
 
-    <EditText
-        android:id="@+id/password"
-        android:layout_height="wrap_content"
+    <TextView
+        android:id="@+id/info_text"
         android:layout_width="match_parent"
-        android:text="@string/prompt_password"
-        />
-
-    <EditText
-        android:id="@+id/age"
         android:layout_height="wrap_content"
+        android:layout_margin="20dp"
+        android:layout_weight="0.5"
+        android:text="@string/register_info"
+        android:textAlignment="center"
+        android:textSize="18sp" />
+
+    <Button
+        android:id="@+id/user_signup"
         android:layout_width="match_parent"
-        android:text="@string/prompt_age"
-        />
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:layout_margin="20dp"
+        android:layout_weight="1"
+        android:background="@color/colorPrimary"
+        android:gravity="center"
+        android:text="@string/user_register"
+        android:textAllCaps="true"
+        android:textColor="@color/ic_launcher_background"
+        android:textStyle="bold" />
 
     <Button
-        android:id="@+id/signup"
-        android:layout_width="wrap_content"
+        android:id="@+id/driver_signup"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="@string/sign"
-        android:textAllCaps="false"
-        android:layout_marginTop="16dp"
-        android:textStyle="bold"/>
+        android:layout_gravity="center_vertical"
+        android:layout_margin="20dp"
+        android:layout_weight="1"
+        android:background="@color/colorPrimaryDark"
+        android:gravity="center"
+        android:text="@string/driver_register"
+        android:textAllCaps="true"
+        android:textColor="@color/ic_launcher_background"
+        android:textStyle="bold" />
 
 
 </LinearLayout>
-
-
-
diff --git a/src/main/res/layout/activity_route.xml b/src/main/res/layout/activity_route.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9bfa69c17399f4da93a03e33de6b9f3376b8f92e
--- /dev/null
+++ b/src/main/res/layout/activity_route.xml
@@ -0,0 +1,24 @@
+<?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"
+    tools:context=".Settings">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <TextView
+        android:id="@+id/create_route_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="20dp"
+        android:gravity="center"
+        android:text="@string/create_route"
+        android:textSize="30sp" />
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_settings.xml b/src/main/res/layout/activity_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d55a1a8821027516c667a41cbeb102fb31a8ac6a
--- /dev/null
+++ b/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,108 @@
+<?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"
+    tools:context=".Settings">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <TextView
+        android:id="@+id/settings_text"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="20dp"
+        android:layout_weight="1.5"
+        android:gravity="center"
+        android:text="@string/settings"
+        android:textSize="30sp" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:padding="10dp">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="10dp"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/sound_text"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/sound" />
+
+            <ToggleButton
+                android:id="@+id/sound_toggle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/sound" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="10dp"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/language_text"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/language" />
+
+            <Spinner
+                android:id="@+id/language_spinner"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_margin="10dp"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/save_location_text"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/save_location" />
+
+            <Spinner
+                android:id="@+id/save_location_spinner"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+
+        </LinearLayout>
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/save_button"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="20dp"
+        android:background="@color/colorPrimaryDark"
+        android:text="@string/save"
+        android:textColor="@color/common_google_signin_btn_text_dark_default" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_user_main.xml b/src/main/res/layout/activity_user_main.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e70cdb326e124921d7ec1aaac8a1af5bf14a5cf7
--- /dev/null
+++ b/src/main/res/layout/activity_user_main.xml
@@ -0,0 +1,61 @@
+<?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:background="@color/common_google_signin_btn_text_dark_pressed"
+    android:orientation="vertical"
+    tools:context=".User_Main">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <ImageView
+        android:id="@+id/app_logo_image"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:contentDescription="@string/app_name"
+        app:srcCompat="@drawable/logo_hd" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:orientation="horizontal">
+
+        <ImageButton
+            android:id="@+id/view_route_button"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:layout_marginStart="20dp"
+            android:layout_marginEnd="20dp"
+            android:background="@color/common_google_signin_btn_text_dark_disabled"
+            android:contentDescription="@string/view_routes"
+            android:scaleType="fitCenter"
+            android:src="@drawable/icon_map"
+            android:text="@string/title_activity_map" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp"
+        android:layout_weight="0"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/view_route_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:text="@string/view_routes"
+            android:textAllCaps="false"
+            android:textSize="30sp" />
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_user_register.xml b/src/main/res/layout/activity_user_register.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ecf00eadc38e8a873a215c42b022054fa4dda8aa
--- /dev/null
+++ b/src/main/res/layout/activity_user_register.xml
@@ -0,0 +1,113 @@
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/user_toolbar" />
+
+    <TextView
+        android:id="@+id/user_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="50dp"
+        android:text="@string/user_register"
+        android:textSize="30sp"
+        android:textStyle="bold" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1.2"
+        android:gravity="center"
+        android:padding="10dp"
+        android:orientation="vertical">
+
+        <EditText
+            android:id="@+id/forename"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/name"
+            android:inputType="text" />
+
+        <EditText
+            android:id="@+id/surname"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/lastname"
+            android:inputType="text" />
+
+        <EditText
+            android:id="@+id/email"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/prompt_email"
+            android:inputType="textEmailAddress" />
+
+        <EditText
+            android:id="@+id/password"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/prompt_password"
+            android:inputType="textPassword" />
+
+        <EditText
+            android:id="@+id/age"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="@string/prompt_age"
+            android:inputType="number" />
+
+        <!-- Potentially temporary -->
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="2"
+        android:padding="10dp"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/tickbox_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="5dp"
+            android:text="@string/tickbox_text"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <CheckBox
+            android:id="@+id/checkBox_student"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/student_confirmation" />
+
+        <CheckBox
+            android:id="@+id/checkBox_TandC"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/terms_and_conditions" />
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/signup_button"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="20dp"
+        android:layout_marginEnd="20dp"
+        android:layout_marginBottom="10dp"
+        android:background="@color/colorPrimary"
+        android:text="@string/sign"
+        android:textColor="#FFFFFF" />
+
+
+</LinearLayout>
+
+
+
diff --git a/src/main/res/layout/user_toolbar.xml b/src/main/res/layout/user_toolbar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..48fabe1c6b7abff7e81805c0ff56ce5f6f7a77d5
--- /dev/null
+++ b/src/main/res/layout/user_toolbar.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/driver_toolbar"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:alpha="1"
+    android:background="@color/colorPrimary"
+    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
+
+</android.support.v7.widget.Toolbar>
\ No newline at end of file
diff --git a/src/main/res/menu/offline_toolbar_menu.xml b/src/main/res/menu/offline_toolbar_menu.xml
new file mode 100644
index 0000000000000000000000000000000000000000..032097545ddaaec52b3e36030378a1c45a7aa10d
--- /dev/null
+++ b/src/main/res/menu/offline_toolbar_menu.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+    <item
+        android:id="@+id/item_settings"
+        android:contentDescription="@string/settings"
+        android:icon="@drawable/icon_settings"
+        android:orderInCategory="3"
+        android:title="@string/settings"
+        app:showAsAction="ifRoom" />
+
+
+
+</menu>
\ No newline at end of file
diff --git a/src/main/res/menu/toolbar_menu.xml b/src/main/res/menu/toolbar_menu.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a19f7e97c812349c91bf95712dc2e2154bf65f84
--- /dev/null
+++ b/src/main/res/menu/toolbar_menu.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item
+        android:id="@+id/item_home"
+        android:contentDescription="@string/home"
+        android:icon="@drawable/ic_home_black_24dp"
+        android:orderInCategory="1"
+        android:title="@string/home"
+        app:showAsAction="always" />
+
+    <item
+        android:id="@+id/item_profile"
+        android:contentDescription="@string/profile"
+        android:icon="@drawable/icon_users"
+        android:orderInCategory="2"
+        android:title="@string/profile"
+        app:showAsAction="always" />
+
+    <item
+        android:id="@+id/item_settings"
+        android:contentDescription="@string/settings"
+        android:icon="@drawable/icon_settings"
+        android:orderInCategory="3"
+        android:title="@string/settings"
+        app:showAsAction="always" />
+
+    <item
+        android:id="@+id/item_logout"
+        android:contentDescription="@string/logout"
+        android:orderInCategory="4"
+        android:title="@string/logout"
+        app:showAsAction="never" />
+
+
+</menu>
\ No newline at end of file
diff --git a/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index eca70cfe52eac1ba66ba280a68ca7be8fcf88a16..036d09bc5fd523323794379703c4a111d1e28a04 100644
--- a/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +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" />
+    <background android:drawable="@color/ic_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
 </adaptive-icon>
\ No newline at end of file
diff --git a/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index eca70cfe52eac1ba66ba280a68ca7be8fcf88a16..036d09bc5fd523323794379703c4a111d1e28a04 100644
--- a/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +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" />
+    <background android:drawable="@color/ic_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
 </adaptive-icon>
\ No newline at end of file
diff --git a/src/main/res/mipmap-hdpi/ic_launcher.png b/src/main/res/mipmap-hdpi/ic_launcher.png
index 898f3ed59ac9f3248734a00e5902736c9367d455..dfcd48c3212b6b0fcb714d75f3d1265989987fff 100644
Binary files a/src/main/res/mipmap-hdpi/ic_launcher.png and b/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..82ce4998189813c6ddbe2bbff1051f8a9afe8d9d
Binary files /dev/null and b/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src/main/res/mipmap-hdpi/ic_launcher_round.png
index dffca3601eba7bf5f409bdd520820e2eb5122c75..d62c33c81c608d675af99e15add78f4687b525b3 100644
Binary files a/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/src/main/res/mipmap-mdpi/ic_launcher.png b/src/main/res/mipmap-mdpi/ic_launcher.png
index 64ba76f75e9ce021aa3d95c213491f73bcacb597..98f507ad93bb1bc8e87e40d999b32f8e03dd4073 100644
Binary files a/src/main/res/mipmap-mdpi/ic_launcher.png and b/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..45512365551f9d766c4155291a5e4c34823a7b83
Binary files /dev/null and b/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
diff --git a/src/main/res/mipmap-mdpi/ic_launcher_round.png b/src/main/res/mipmap-mdpi/ic_launcher_round.png
index dae5e082342fcdeee5db8a6e0b27028e2d2808f5..70fe209f63f7b1d23e716055cb0f950541a2c27e 100644
Binary files a/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/src/main/res/mipmap-xhdpi/ic_launcher.png b/src/main/res/mipmap-xhdpi/ic_launcher.png
index e5ed46597ea8447d91ab1786a34e30f1c26b18bd..24d20241696ffd8aed6d4da446aaba331ca3ea3a 100644
Binary files a/src/main/res/mipmap-xhdpi/ic_launcher.png and b/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd9acc45786bcbe3c22a9a89f69bc96eb3fc626a
Binary files /dev/null and b/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/src/main/res/mipmap-xhdpi/ic_launcher_round.png
index 14ed0af35023e4f1901cf03487b6c524257b8483..70776811385f70324f096f8848ab75166d969e06 100644
Binary files a/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src/main/res/mipmap-xxhdpi/ic_launcher.png
index b0907cac3bfd8fbfdc46e1108247f0a1055387ec..04d69249f18352d7ded61095d374138985ca1627 100644
Binary files a/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..33d3de89590338d7ad58d9744c180a42c9991da4
Binary files /dev/null and b/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
index d8ae03154975f397f8ed1b84f2d4bf9783ecfa26..3df52b2b267e3b604e3bebfe757a97f248b4850d 100644
Binary files a/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 2c18de9e66108411737e910f5c1972476f03ddbf..d361cc8ed2ccf54328c0729680b53f5b280a8731 100644
Binary files a/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..c976574abbb64e2e36d9b4ae30208310d31b6363
Binary files /dev/null and b/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
index beed3cdd2c32af5114a7dc70b9ef5b698eb8797e..89c4702d8ce787b1bb12da4d60de99b02f4eae40 100644
Binary files a/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml
index 69b22338c6510250df3b43672635120dbce2fa49..940fbf655544ef2eb464e8e8ae3ac6a969fc2d7c 100644
--- a/src/main/res/values/colors.xml
+++ b/src/main/res/values/colors.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <color name="colorPrimary">#008577</color>
-    <color name="colorPrimaryDark">#00574B</color>
-    <color name="colorAccent">#D81B60</color>
+    <color name="colorPrimary">#1D3B76</color>
+    <color name="colorPrimaryDark">#FF280C</color>
+    <color name="colorAccent">#FFAE98</color>
 </resources>
diff --git a/src/main/res/values/ic_launcher_background.xml b/src/main/res/values/ic_launcher_background.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5d5899fdf0a1b144bf341b29e0c66ba50bbcedd
--- /dev/null
+++ b/src/main/res/values/ic_launcher_background.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="ic_launcher_background">#FFFFFF</color>
+</resources>
\ No newline at end of file
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 0df3ddd8a05394362985c1436d2af96d9a02681a..8fe743463298370bf08a6fad3dfee31b17145ab5 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1,11 +1,27 @@
 <resources>
+    <!-- homepage strings -->
     <string name="app_name">UniRides</string>
     <string name="welcome">Welcome to UniRides</string>
     <string name="subheading">The car sharing app that saves you</string>
     <string name="login">Log in</string>
+    <string name="logout">Log out</string>
     <string name="register">Register</string>
+    <!-- TODO: remove/refine the register information for choosing between passenger & driver account -->
+    <string name="register_info">
+        "Choose whether you would like to sign up to UniRides as a Driver user or a Passenger user.\n
+        A driver user can do anything a passenger can do on the app (such as: viewing routes, getting lifts
+        from other drivers, and reviewing other users) but with the added privileges to setup your own
+        custom driver routes and post them for other passengers/drivers to see.\n
+        If you are going to become a driver for UniRides, first of all THANK YOU!\n
+        Secondly, be sure to have your car details (model, licence plate, etc.) as well as your drivers licence
+        and pictures of you and the car at the ready!"
+    </string>
+    <!-- TODO: add the terms and conditions in as a string! -->
+    <string name="user_register">User</string>
+    <string name="driver_register">Driver</string>
     <string name="title_activity_login">Sign in</string>
-    <!-- Strings related to login -->
+
+    <!-- Strings related to register/login -->
     <string name="prompt_email">Email</string>
     <string name="prompt_password">Password</string>
     <string name="action_sign_in">Log in</string>
@@ -21,4 +37,44 @@
     <string name="lastname">Surname</string>
     <string name="prompt_age">Age</string>
     <string name="sign">Sign up</string>
+    <string name="app_logo">App Logo</string>
+    <string name="tickbox_text">Tick the appropriate boxes:</string>
+    <string name="student_confirmation">I am a university student or professor</string>
+    <string name="terms_and_conditions">I agree with UniRides Terms and Conditions</string>
+    <string name="licence_plate">Licence Plate</string>
+    <string name="car_model">Car Model</string>
+    <string name="time_driving">Time Driving</string>
+
+    <!-- main/map activity strings -->
+    <string name="home">Home</string>
+    <string name="title_activity_map">Map</string>
+    <string name="view_routes">View Routes</string>
+    <string name="create_route">Create New Route</string>
+    <string name="settings">Settings</string>
+    <string name="profile">Profile</string>
+    <string name="offline_map">Offline Map</string>
+    <string name="back">Back</string>
+
+    <!-- settings activity strings -->
+    <string name="language">Language</string>
+    <string name="sound">Sound</string>
+    <string name="save_location">Save Location</string>
+    <string name="save">Save</string>
+
+    <!-- spinner values for LANGUAGE -->
+    <string-array name="languages">
+        <item>English</item>
+    </string-array>
+
+    <!-- spinner values for SAVE_LOCATION -->
+    <string-array name="save_locations">
+        <item>Device</item>
+        <item>SD Card</item>
+    </string-array>
+    <!-- Free for commercial use icon credit for any file in drawable with the "icon_" keyword-->
+    <string name="icon_credit">Icons made by Smashicons and Roundicons</string>
+
+    <!-- Profile activity -->
+    <string name="take_pic">Take a picture</string>
+
 </resources>
diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml
index 5885930df6d10edf3d6df40d6556297d11f953da..0eb88fe3350eaa944c0c6fe7e949e1cab494e8e8 100644
--- a/src/main/res/values/styles.xml
+++ b/src/main/res/values/styles.xml
@@ -1,7 +1,7 @@
 <resources>
 
     <!-- Base application theme. -->
-    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
         <!-- Customize your theme here. -->
         <item name="colorPrimary">@color/colorPrimary</item>
         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
diff --git a/src/release/res/values/google_maps_api.xml b/src/release/res/values/google_maps_api.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1ef79e9f2e292599818e1e59663e66cb62fe2ab5
--- /dev/null
+++ b/src/release/res/values/google_maps_api.xml
@@ -0,0 +1,20 @@
+<resources>
+    <!--
+    TODO: Before you release your application, you need a Google Maps API key.
+
+    To do this, you can either add your release key credentials to your existing
+    key, or create a new key.
+
+    Note that this file specifies the API key for the release build target.
+    If you have previously set up a key for the debug target with the debug signing certificate,
+    you will also need to set up a key for your release certificate.
+
+    Follow the directions here:
+
+    https://developers.google.com/maps/documentation/android/signup
+
+    Once you have your key (it starts with "AIza"), replace the "google_maps_key"
+    string in this file.
+    -->
+    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR_KEY_HERE</string>
+</resources>
diff --git a/unirides.iml b/unirides.iml
new file mode 100644
index 0000000000000000000000000000000000000000..609bd6f3ae67e9d7735ffa5526219985622e64d4
--- /dev/null
+++ b/unirides.iml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="unirides" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="android-gradle" name="Android-Gradle">
+      <configuration>
+        <option name="GRADLE_PROJECT_PATH" value=":" />
+      </configuration>
+    </facet>
+    <facet type="android" name="Android">
+      <configuration>
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
+        <afterSyncTasks>
+          <task>generateDebugSources</task>
+        </afterSyncTasks>
+        <option name="ALLOW_USER_CONFIGURATION" value="false" />
+        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
+        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/src/debug/res;file://$MODULE_DIR$/build/generated/res/google-services/debug;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
+        <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="" />
+        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
+    <output url="file://$MODULE_DIR$/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
+    <output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/google-services/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources" />
+      <excludeFolder url="file://$MODULE_DIR$/build/generated/source/r" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotation_processor_list" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/apk_list" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundle_manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check_manifest_result" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/compatible_screen_manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/duplicate_classes_check" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/external_libs_dex" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_app_manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_merged_manifests" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint-cache" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint_jar" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_jni_libs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_shaders" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/metadata_feature_manifest" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/signing_config" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/validate_signing_config" />
+      <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/reports" />
+      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
+    </content>
+    <orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Gradle: com.android.support:design:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-identifier:16.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-sdk:16.4.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:1.0.2@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-sdk-api:16.4.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-auth:16.2.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:cardview-v7:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-iid:17.0.3@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-api:16.4.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-location:16.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-database-collection:16.0.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-base:16.4.0@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-maps:16.1.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-flags:16.0.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-basement:16.2.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-core:16.0.8@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-places-placereport:16.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:transition:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata:1.1.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-analytics:16.4.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-v4:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-database:16.1.0@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: net.sf.kxml:kxml2:2.3.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-auth-interop:16.0.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement:16.4.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-iid-interop:16.0.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-impl:16.4.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.1.3@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:print:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-stats:16.0.1@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-base:16.0.1@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-common:16.1.0@aar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.firebase:firebase-measurement-connector:17.0.1@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.auto.value:auto-value-annotations:1.6@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0@aar" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tasks:16.0.1@aar" level="project" />
+  </component>
+</module>
\ No newline at end of file