瀏覽代碼

frontend: Поправил иконки на экранах

Timothy 20 小時之前
父節點
當前提交
daf2e0bb78

+ 123 - 0
Frontend/.idea/codeStyles/Project.xml

@@ -0,0 +1,123 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <JetCodeStyleSettings>
+      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
+    </JetCodeStyleSettings>
+    <codeStyleSettings language="XML">
+      <option name="FORCE_REARRANGE_MODE" value="1" />
+      <indentOptions>
+        <option name="CONTINUATION_INDENT_SIZE" value="4" />
+      </indentOptions>
+      <arrangement>
+        <rules>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:android</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>xmlns:.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:id</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*:name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>name</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>style</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>^$</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>ANDROID_ATTRIBUTE_ORDER</order>
+            </rule>
+          </section>
+          <section>
+            <rule>
+              <match>
+                <AND>
+                  <NAME>.*</NAME>
+                  <XML_ATTRIBUTE />
+                  <XML_NAMESPACE>.*</XML_NAMESPACE>
+                </AND>
+              </match>
+              <order>BY_NAME</order>
+            </rule>
+          </section>
+        </rules>
+      </arrangement>
+    </codeStyleSettings>
+    <codeStyleSettings language="kotlin">
+      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
+    </codeStyleSettings>
+  </code_scheme>
+</component>

+ 5 - 0
Frontend/.idea/codeStyles/codeStyleConfig.xml

@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
+  </state>
+</component>

+ 1 - 1
Frontend/.idea/compiler.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="CompilerConfiguration">
-    <bytecodeTargetLevel target="17" />
+    <bytecodeTargetLevel target="21" />
   </component>
 </project>

+ 1 - 0
Frontend/.idea/gradle.xml

@@ -4,6 +4,7 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
+        <option name="testRunner" value="CHOOSE_PER_TEST" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
         <option name="modules">

+ 1 - 1
Frontend/.idea/misc.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 0 - 329
Frontend/.idea/other.xml

@@ -1,329 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="direct_access_persist.xml">
-    <option name="deviceSelectionList">
-      <list>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="27" />
-          <option name="brand" value="DOCOMO" />
-          <option name="codename" value="F01L" />
-          <option name="id" value="F01L" />
-          <option name="manufacturer" value="FUJITSU" />
-          <option name="name" value="F-01L" />
-          <option name="screenDensity" value="360" />
-          <option name="screenX" value="720" />
-          <option name="screenY" value="1280" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="28" />
-          <option name="brand" value="DOCOMO" />
-          <option name="codename" value="SH-01L" />
-          <option name="id" value="SH-01L" />
-          <option name="manufacturer" value="SHARP" />
-          <option name="name" value="AQUOS sense2 SH-01L" />
-          <option name="screenDensity" value="480" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2160" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="Lenovo" />
-          <option name="codename" value="TB370FU" />
-          <option name="id" value="TB370FU" />
-          <option name="manufacturer" value="Lenovo" />
-          <option name="name" value="Tab P12" />
-          <option name="screenDensity" value="340" />
-          <option name="screenX" value="1840" />
-          <option name="screenY" value="2944" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="31" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="a51" />
-          <option name="id" value="a51" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy A51" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="akita" />
-          <option name="id" value="akita" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 8a" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="b0q" />
-          <option name="id" value="b0q" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy S22 Ultra" />
-          <option name="screenDensity" value="600" />
-          <option name="screenX" value="1440" />
-          <option name="screenY" value="3088" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="32" />
-          <option name="brand" value="google" />
-          <option name="codename" value="bluejay" />
-          <option name="id" value="bluejay" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 6a" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="caiman" />
-          <option name="id" value="caiman" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 9 Pro" />
-          <option name="screenDensity" value="360" />
-          <option name="screenX" value="960" />
-          <option name="screenY" value="2142" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="comet" />
-          <option name="id" value="comet" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 9 Pro Fold" />
-          <option name="screenDensity" value="390" />
-          <option name="screenX" value="2076" />
-          <option name="screenY" value="2152" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="29" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="crownqlteue" />
-          <option name="id" value="crownqlteue" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy Note9" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="2220" />
-          <option name="screenY" value="1080" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="dm3q" />
-          <option name="id" value="dm3q" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy S23 Ultra" />
-          <option name="screenDensity" value="600" />
-          <option name="screenX" value="1440" />
-          <option name="screenY" value="3088" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="e1q" />
-          <option name="id" value="e1q" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy S24" />
-          <option name="screenDensity" value="480" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2340" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="google" />
-          <option name="codename" value="felix" />
-          <option name="id" value="felix" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel Fold" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="2208" />
-          <option name="screenY" value="1840" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="felix" />
-          <option name="id" value="felix" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel Fold" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="2208" />
-          <option name="screenY" value="1840" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="google" />
-          <option name="codename" value="felix_camera" />
-          <option name="id" value="felix_camera" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel Fold (Camera-enabled)" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="2208" />
-          <option name="screenY" value="1840" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="gts8uwifi" />
-          <option name="id" value="gts8uwifi" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy Tab S8 Ultra" />
-          <option name="screenDensity" value="320" />
-          <option name="screenX" value="1848" />
-          <option name="screenY" value="2960" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="husky" />
-          <option name="id" value="husky" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 8 Pro" />
-          <option name="screenDensity" value="390" />
-          <option name="screenX" value="1008" />
-          <option name="screenY" value="2244" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="30" />
-          <option name="brand" value="motorola" />
-          <option name="codename" value="java" />
-          <option name="id" value="java" />
-          <option name="manufacturer" value="Motorola" />
-          <option name="name" value="G20" />
-          <option name="screenDensity" value="280" />
-          <option name="screenX" value="720" />
-          <option name="screenY" value="1600" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="komodo" />
-          <option name="id" value="komodo" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 9 Pro XL" />
-          <option name="screenDensity" value="360" />
-          <option name="screenX" value="1008" />
-          <option name="screenY" value="2244" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="google" />
-          <option name="codename" value="lynx" />
-          <option name="id" value="lynx" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 7a" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="31" />
-          <option name="brand" value="google" />
-          <option name="codename" value="oriole" />
-          <option name="id" value="oriole" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 6" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="google" />
-          <option name="codename" value="panther" />
-          <option name="id" value="panther" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 7" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="q5q" />
-          <option name="id" value="q5q" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy Z Fold5" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1812" />
-          <option name="screenY" value="2176" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="samsung" />
-          <option name="codename" value="q6q" />
-          <option name="id" value="q6q" />
-          <option name="manufacturer" value="Samsung" />
-          <option name="name" value="Galaxy Z Fold6" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1856" />
-          <option name="screenY" value="2160" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="30" />
-          <option name="brand" value="google" />
-          <option name="codename" value="r11" />
-          <option name="id" value="r11" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel Watch" />
-          <option name="screenDensity" value="320" />
-          <option name="screenX" value="384" />
-          <option name="screenY" value="384" />
-          <option name="type" value="WEAR_OS" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="30" />
-          <option name="brand" value="google" />
-          <option name="codename" value="redfin" />
-          <option name="id" value="redfin" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 5" />
-          <option name="screenDensity" value="440" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2340" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="shiba" />
-          <option name="id" value="shiba" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 8" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2400" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="33" />
-          <option name="brand" value="google" />
-          <option name="codename" value="tangorpro" />
-          <option name="id" value="tangorpro" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel Tablet" />
-          <option name="screenDensity" value="320" />
-          <option name="screenX" value="1600" />
-          <option name="screenY" value="2560" />
-        </PersistentDeviceSelectionData>
-        <PersistentDeviceSelectionData>
-          <option name="api" value="34" />
-          <option name="brand" value="google" />
-          <option name="codename" value="tokay" />
-          <option name="id" value="tokay" />
-          <option name="manufacturer" value="Google" />
-          <option name="name" value="Pixel 9" />
-          <option name="screenDensity" value="420" />
-          <option name="screenX" value="1080" />
-          <option name="screenY" value="2424" />
-        </PersistentDeviceSelectionData>
-      </list>
-    </option>
-  </component>
-</project>

+ 17 - 0
Frontend/.idea/runConfigurations.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
+        <option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
+        <option value="com.intellij.execution.junit.PatternConfigurationProducer" />
+        <option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
+        <option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
+        <option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
+        <option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
+        <option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>

+ 3 - 3
Frontend/app/src/main/java/com/example/neurea/navigation/Navigation.kt

@@ -16,14 +16,14 @@ import com.example.neurea.views.screens.SplashScreen
 @Composable
 fun Navigation(){
     val navController = rememberNavController()
-    var start = "homeScreen"
+    var start = "splashScreen"
 
     NavHost(navController = navController, startDestination = start) {
         composable("splashScreen"){
-            SplashScreen(navController = navController)
+            SplashScreen(navController = navController) //navController = navController
         }
         composable("authorizationScreen"){
-            AuthorizationScreen(navController) //navController = navController
+            AuthorizationScreen() //navController = navController
         }
         composable("bookScreen"){
             BookScreen(navController)

+ 9 - 7
Frontend/app/src/main/java/com/example/neurea/views/screens/AuthorizationScreen.kt

@@ -1,5 +1,6 @@
 package com.example.neurea.views.screens
 
+import androidx.compose.foundation.Image
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.layout.Arrangement
@@ -10,6 +11,8 @@ import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.sizeIn
 import androidx.compose.foundation.layout.width
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.foundation.text.KeyboardOptions
@@ -34,6 +37,7 @@ import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.clip
 import androidx.compose.ui.graphics.Brush
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.text.TextStyle
 import androidx.compose.ui.text.font.FontWeight
@@ -51,7 +55,7 @@ import com.example.neurea.views.ui.theme.NeureaTheme
 @Preview()
 @OptIn(ExperimentalMaterial3Api::class)
 @Composable
-fun AuthorizationScreen(navController: NavController) { // navController: NavController
+fun AuthorizationScreen() { // navController: NavController
     var email = remember { mutableStateOf("") }
     var password = remember { mutableStateOf("") }
     val maxLength = 20
@@ -64,11 +68,13 @@ fun AuthorizationScreen(navController: NavController) { // navController: NavCon
                 .fillMaxSize()
                 .background(color = MaterialTheme.colorScheme.secondary)
         ) {
+            Image(painter = painterResource(R.drawable.catbooks),
+                contentDescription = "Кот на книжках", modifier = Modifier.padding(start=50.dp, top=75.dp).size(361.dp, 334.dp),)
             Text(
                 text = "Добро пожаловать!",
                 color = MaterialTheme.colorScheme.primary,
                 modifier = Modifier
-                    .padding(top = 70.dp, bottom = 24.dp, start = 24.dp)
+                    .padding(top = 16.dp, bottom = 24.dp, start = 24.dp)
                     .align(Alignment.Start),
                 fontSize = 24.sp,
                 fontWeight = FontWeight.ExtraBold
@@ -159,14 +165,10 @@ fun AuthorizationScreen(navController: NavController) { // navController: NavCon
                 singleLine = true
             )
 
-            TextButton(onClick = { /*TODO*/ }, contentPadding = PaddingValues(0.dp),modifier = Modifier.padding(start = 20.dp)
-                , colors = ButtonDefaults.textButtonColors(containerColor = Color.Transparent)) {
-                Text("Забыли пароль?", modifier = Modifier.padding(0.dp), textAlign = TextAlign.Start)
-            }
 
             Button(
                 onClick = {
-                    navController.navigate("bookScreen")
+                    //navController.navigate("bookScreen")
                 },
                 modifier = Modifier
                     .fillMaxWidth()

+ 63 - 0
Frontend/app/src/main/java/com/example/neurea/views/screens/BottomNav.kt

@@ -0,0 +1,63 @@
+package com.example.neurea.views.screens
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.IntrinsicSize
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.layout.wrapContentSize
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.Divider
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.NavigationBar
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.neurea.R
+import com.example.neurea.views.ui.theme.NeureaTheme
+
+@Preview
+@Composable
+fun BottomNav() {
+    val items = listOf(
+        BottomMenuItem(R.drawable.homeicon, "Главная", "homeScreen"),
+        BottomMenuItem(R.drawable.statsicon, "Прогресс", "statsScreen"),
+        BottomMenuItem(R.drawable.bookicon, "Мои книги", "libraryScreen"),
+        BottomMenuItem(R.drawable.usericon, "Профиль", "userScreen"),
+        BottomMenuItem(R.drawable.settingsicon, "Настройки", "settingsScreen")
+    )
+    val selectedItem = remember { mutableStateOf(0) }
+    val currentRoute = remember { mutableStateOf("homeScreen") }
+    NeureaTheme {
+        Box(modifier = Modifier.fillMaxWidth(), ){
+            Row(modifier = Modifier.fillMaxWidth().clip(RoundedCornerShape(30.dp)).background(MaterialTheme.colorScheme.secondary), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically){
+                Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(top=7.dp, bottom = 7.dp, start=12.dp, end=12.dp), verticalArrangement = Arrangement.Center){
+                    Icon(painter = painterResource(R.drawable.homeicon), contentDescription = "home", tint = MaterialTheme.colorScheme.primary)
+                    Text("Главная", fontSize = 8.sp, fontWeight = FontWeight.SemiBold,
+                        color = MaterialTheme.colorScheme.primary, modifier = Modifier.padding(vertical = 0.dp))
+                }
+            }
+        }
+    }
+
+}
+
+data class BottomMenuItem(val icon: Int, val title: String, var root: String)

+ 4 - 1
Frontend/app/src/main/java/com/example/neurea/views/screens/RegistrationScreen.kt

@@ -1,5 +1,6 @@
 package com.example.neurea.views.screens
 
+import androidx.compose.foundation.Image
 import androidx.compose.foundation.background
 import androidx.compose.foundation.border
 import androidx.compose.foundation.layout.Arrangement
@@ -10,6 +11,7 @@ import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.height
 import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.foundation.text.KeyboardOptions
 import androidx.compose.material3.Button
@@ -64,11 +66,12 @@ fun RegistrationScreen() { // navController: NavController
                 .fillMaxSize()
                 .background(color = MaterialTheme.colorScheme.secondary)
         ) {
+            Image(painter = painterResource(R.drawable.handshake), contentDescription="Рукопожатие", alignment = Alignment.Center, modifier = Modifier.align(Alignment.CenterHorizontally).padding(top=50.dp).size(196.dp, 173.dp))
             Text(
                 text = "Регистрация!",
                 color = MaterialTheme.colorScheme.primary,
                 modifier = Modifier
-                    .padding(top = 70.dp, bottom = 8.dp, start = 24.dp)
+                    .padding(top = 10.dp, bottom = 8.dp, start = 24.dp)
                     .align(Alignment.Start),
                 fontSize = 24.sp,
                 fontWeight = FontWeight.ExtraBold

+ 58 - 9
Frontend/app/src/main/java/com/example/neurea/views/screens/SplashScreen.kt

@@ -18,12 +18,28 @@ import androidx.compose.ui.platform.LocalConfiguration
 import androidx.navigation.NavController
 import kotlinx.coroutines.delay
 import androidx.compose.foundation.Image
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
+import androidx.compose.material3.Text
+import androidx.compose.ui.graphics.ColorFilter
+import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.neurea.R
+import com.example.neurea.views.ui.theme.NeureaTheme
 
+@Preview
 @Composable
-fun SplashScreen(navController: NavController){
+fun SplashScreen(navController: NavController){ //navController: NavController
     LaunchedEffect(key1 = true) {
-        delay(3000L)
+        delay(1500L)
         navController.navigate("authorizationScreen"){
             popUpTo("splashScreen"){
                 inclusive = true
@@ -31,15 +47,48 @@ fun SplashScreen(navController: NavController){
         }
 
     }
+    val patternId = if (isSystemInDarkTheme()) R.drawable.patterndark else R.drawable.patternlight
 
-    Column(modifier = Modifier
-        .fillMaxSize()
-        .background(MaterialTheme.colorScheme.secondary),
-        horizontalAlignment = Alignment.CenterHorizontally,
-        verticalArrangement = Arrangement.Center
+    NeureaTheme {
+        Column(modifier = Modifier
+            .fillMaxSize()
+            .background(MaterialTheme.colorScheme.secondary),
+            horizontalAlignment = Alignment.CenterHorizontally,
+            verticalArrangement = Arrangement.Center
         )
-    {
-        Row(modifier = Modifier.fillMaxWidth(),){
+        {
+            Box(modifier = Modifier.fillMaxSize()) {
+                Image(
+                    painter = painterResource(patternId),
+                    contentDescription = "Background pattern",
+                    modifier = Modifier.fillMaxSize(),
+                    contentScale = ContentScale.Crop
+                )
+                Row(
+                    modifier = Modifier
+                        .align(Alignment.Center)
+                        .padding(16.dp),
+                    verticalAlignment = Alignment.CenterVertically
+                ) {
+                    Image(
+                        painter = painterResource(R.drawable.bookmark),
+                        contentDescription = "Логотип приложения",
+                        colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.primary)
+                    )
+
+                    Spacer(modifier = Modifier.width(8.dp))
+
+                    Text(
+                        text = "Neurea",
+                        fontSize = 30.sp,
+                        fontWeight = FontWeight.ExtraBold,
+                        color = MaterialTheme.colorScheme.primary
+                    )
                 }
+
+
+            }
+        }
     }
+
 }

+ 18 - 0
Frontend/app/src/main/res/drawable/bookicon.xml

@@ -0,0 +1,18 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="29dp"
+    android:viewportWidth="25"
+    android:viewportHeight="29">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m19,26h4.5c0.83,0 1.5,0.67 1.5,1.5h0c0,0.83 -0.67,1.5 -1.5,1.5h-4.5v-3h0Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m4,24c3.89,0 12.99,0 14.27,0 0.01,0 0.49,0 1.12,0 0.03,0 0.46,0 0.61,0 0.05,0 0.95,0 1,0 1.33,-1.67 2.67,-3.33 4,-5 0,-0.66 0,-1.32 0,-1.98 0,0 0,-1.08 0,-1.08 0,0 0,-12.53 0,-12.56 0,-0.23 -0.02,-1.42 -0.99,-2.39 -0.61,-0.61 -1.46,-0.99 -2.39,-0.99L3.38,0C1.51,0 0,1.51 0,3.38v22.24c0,1.87 1.51,3.38 3.38,3.38h18.24c-0.2,-0.11 -1.36,-0.73 -1.62,-2 -0.08,-0.39 -0.05,-0.74 0,-1L4,26c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1ZM9,8h8c0.55,0 1,0.45 1,1s-0.45,1 -1,1h-8c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m19,16h6v4.99c0,1.66 -1.35,3.01 -3.01,3.01h-2.99v-8h0Z"
+      android:strokeWidth="0"/>
+</vector>

+ 10 - 0
Frontend/app/src/main/res/drawable/bookmark.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="27.5dp"
+    android:height="34dp"
+    android:viewportWidth="27.5"
+    android:viewportHeight="34">
+  <path
+      android:pathData="m22.3,0L5.2,0C2.33,0 0,2.33 0,5.2v23.61c0,2.87 2.33,5.2 5.2,5.2h17.11c2.87,0 5.2,-2.33 5.2,-5.2L27.51,5.2c0,-2.87 -2.33,-5.2 -5.2,-5.2ZM13,14v3l-4.5,-3 -4.5,3L4,5.32c0,-1.28 1.04,-2.32 2.32,-2.32h4.37c1.28,0 2.32,1.04 2.32,2.32v8.68Z"
+      android:strokeWidth="0"
+      android:fillColor="#00a693"/>
+</vector>

二進制
Frontend/app/src/main/res/drawable/catbooks.png


二進制
Frontend/app/src/main/res/drawable/handshake.png


+ 18 - 0
Frontend/app/src/main/res/drawable/homeicon.xml

@@ -0,0 +1,18 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="27.99dp"
+    android:height="28.23dp"
+    android:viewportWidth="27.99"
+    android:viewportHeight="28.23">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m27.48,10.92c0.83,0.72 0.61,1.31 -0.49,1.31H0.99c-1.1,0 -1.32,-0.59 -0.49,-1.31L12.48,0.54c0.83,-0.72 2.19,-0.72 3.02,0l11.98,10.38Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m22.97,3.23h2.04c0.54,0 0.98,0.44 0.98,0.98v6.02h-4v-6.02c0,-0.54 0.44,-0.98 0.98,-0.98Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m1.99,12.23v13.12c0,1.59 1.29,2.88 2.88,2.88h18.24c1.59,0 2.88,-1.29 2.88,-2.88v-13.12L1.99,12.23ZM21.99,23.82c0,0.23 -0.18,0.41 -0.41,0.41h-4.17c-0.23,0 -0.41,-0.18 -0.41,-0.41v-8.17c0,-0.23 0.18,-0.41 0.41,-0.41h4.17c0.23,0 0.41,0.18 0.41,0.41v8.17Z"
+      android:strokeWidth="0"/>
+</vector>

文件差異過大導致無法顯示
+ 25 - 0
Frontend/app/src/main/res/drawable/patterndark.xml


文件差異過大導致無法顯示
+ 27 - 0
Frontend/app/src/main/res/drawable/patternlight.xml


+ 42 - 0
Frontend/app/src/main/res/drawable/settingsicon.xml

@@ -0,0 +1,42 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="25dp"
+    android:height="25dp"
+    android:viewportWidth="25"
+    android:viewportHeight="25">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m12.5,3C7.25,3 3,7.25 3,12.5s4.25,9.5 9.5,9.5 9.5,-4.25 9.5,-9.5S17.75,3 12.5,3ZM12.5,17c-2.49,0 -4.5,-2.01 -4.5,-4.5s2.01,-4.5 4.5,-4.5 4.5,2.01 4.5,4.5 -2.01,4.5 -4.5,4.5Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m11.55,0h1.91c0.85,0 1.55,0.69 1.55,1.55v3.45h-5V1.55c0,-0.85 0.69,-1.55 1.55,-1.55Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m10,20h5v3.45c0,0.85 -0.69,1.55 -1.55,1.55h-1.91c-0.85,0 -1.55,-0.69 -1.55,-1.55v-3.45h0Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m15.962,19.5l3.536,-3.536l2.44,2.44c0.601,0.601 0.608,1.584 -0,2.192l-1.351,1.351c-0.601,0.601 -1.584,0.608 -2.192,-0l-2.44,-2.44l0,0Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m20,15l0,-5l3.45,-0c0.85,-0 1.55,0.69 1.55,1.55l0,1.91c0,0.85 -0.69,1.55 -1.55,1.55l-3.45,-0l0,-0Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m0,13.45l0,-1.91c0,-0.85 0.69,-1.55 1.55,-1.55l3.45,-0L5,15l-3.45,-0c-0.85,-0 -1.55,-0.69 -1.55,-1.55Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m4.372,21.95l-1.351,-1.351c-0.601,-0.601 -0.608,-1.584 0,-2.192l2.44,-2.44L9.003,19.511l-2.44,2.44c-0.601,0.601 -1.584,0.608 -2.192,-0Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m9.213,5.68l-3.536,3.536l-2.44,-2.44c-0.601,-0.601 -0.608,-1.584 -0,-2.192l1.351,-1.351c0.601,-0.601 1.584,-0.608 2.192,-0l2.44,2.44l-0,0Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m20.411,3.238l1.351,1.351c0.601,0.601 0.608,1.584 0,2.192l-2.44,2.44l-3.536,-3.536l2.44,-2.44c0.601,-0.601 1.584,-0.608 2.192,-0Z"
+      android:strokeWidth="0"/>
+</vector>

+ 50 - 0
Frontend/app/src/main/res/drawable/statsicon.xml

@@ -0,0 +1,50 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="27dp"
+    android:height="27dp"
+    android:viewportWidth="27"
+    android:viewportHeight="27">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m1.32,17h3.37c0.73,0 1.32,0.59 1.32,1.32v8.54c0,0.08 -0.07,0.15 -0.15,0.15H0.15C0.07,27 0,26.93 0,26.85v-8.54C0,17.59 0.59,17 1.32,17Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m8.32,12h3.37c0.73,0 1.32,0.59 1.32,1.32v13.54c0,0.08 -0.07,0.15 -0.15,0.15h-5.71c-0.08,0 -0.15,-0.07 -0.15,-0.15v-13.54c0,-0.73 0.59,-1.32 1.32,-1.32Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m15.32,14h3.37c0.73,0 1.32,0.59 1.32,1.32v11.54c0,0.08 -0.07,0.15 -0.15,0.15h-5.71c-0.08,0 -0.15,-0.07 -0.15,-0.15v-11.54c0,-0.73 0.59,-1.32 1.32,-1.32Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m22.32,10h3.37c0.73,0 1.32,0.59 1.32,1.32v15.54c0,0.08 -0.07,0.15 -0.15,0.15h-5.71c-0.08,0 -0.15,-0.07 -0.15,-0.15v-15.54c0,-0.73 0.59,-1.32 1.32,-1.32Z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M3,10m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M10,5m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M17,9m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M24,3m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M2.819,8.469l5.515,-4.312l1.848,2.363l-5.515,4.312z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M15.46,10.413l-5.515,-4.312l1.848,-2.363l5.515,4.312z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M16.95,7.039l5.515,-4.312l1.848,2.363l-5.515,4.312z"
+      android:strokeWidth="0"/>
+</vector>

+ 14 - 0
Frontend/app/src/main/res/drawable/usericon.xml

@@ -0,0 +1,14 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="27.09dp"
+    android:height="28dp"
+    android:viewportWidth="27.09"
+    android:viewportHeight="28">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M6.05,8a7.5,8 0,1 0,15 0a7.5,8 0,1 0,-15 0z"
+      android:strokeWidth="0"/>
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="m22.68,21.12c-5.03,-3.37 -13.25,-3.37 -18.28,0l-1.12,0.75c-5.03,3.37 -4.19,6.12 1.86,6.12h16.8c6.05,0 6.89,-2.76 1.86,-6.12l-1.12,-0.75Z"
+      android:strokeWidth="0"/>
+</vector>

部分文件因文件數量過多而無法顯示