Определена стркутура проекта, верстка основных компонентов
@@ -0,0 +1,15 @@
|
||||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/caches
|
||||
/.idea/libraries
|
||||
/.idea/modules.xml
|
||||
/.idea/workspace.xml
|
||||
/.idea/navEditor.xml
|
||||
/.idea/assetWizardSettings.xml
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
.cxx
|
||||
local.properties
|
||||
@@ -0,0 +1,3 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="17" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="SERIAL_NUMBER" />
|
||||
<value value="2a40cdac1f0d7ece" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2023-01-05T19:44:17.771649600Z" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="GRADLE" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="corretto-17" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,23 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewMultipleParameterProviders" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="PreviewPickerAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||
<option name="previewFile" value="true" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1 @@
|
||||
/build
|
||||
@@ -0,0 +1,69 @@
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk 32
|
||||
|
||||
defaultConfig {
|
||||
applicationId "ru.megboyzz.dnevnik"
|
||||
minSdk 21
|
||||
targetSdk 32
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
useSupportLibrary true
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
buildFeatures {
|
||||
compose true
|
||||
}
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion compose_version
|
||||
}
|
||||
packagingOptions {
|
||||
resources {
|
||||
excludes += '/META-INF/{AL2.0,LGPL2.1}'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation 'androidx.core:core-ktx:1.7.0'
|
||||
implementation "androidx.compose.ui:ui:$compose_version"
|
||||
implementation "androidx.compose.material:material:$compose_version"
|
||||
implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
|
||||
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
|
||||
implementation 'androidx.activity:activity-compose:1.3.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout-compose:1.0.1'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
|
||||
debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
|
||||
debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version"
|
||||
|
||||
implementation "androidx.navigation:navigation-compose:2.5.3"
|
||||
|
||||
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
|
||||
implementation "androidx.compose.material:material-icons-extended:$compose_version"
|
||||
implementation "com.google.accompanist:accompanist-swiperefresh:0.23.0"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@@ -0,0 +1,24 @@
|
||||
package ru.megboyzz.dnevnik
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class ExampleInstrumentedTest {
|
||||
@Test
|
||||
fun useAppContext() {
|
||||
// Context of the app under test.
|
||||
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
assertEquals("ru.megboyzz.dnevnik", appContext.packageName)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="ru.megboyzz.dnevnik">
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:icon="@drawable/icon"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@drawable/icon_rounded"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.MyDnevnik"
|
||||
tools:targetApi="31">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/Theme.MyDnevnik"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<meta-data
|
||||
android:name="preloaded_fonts"
|
||||
android:resource="@array/preloaded_fonts" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,24 @@
|
||||
package ru.megboyzz.dnevnik
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.ui.Modifier
|
||||
import ru.megboyzz.dnevnik.navigation.AppNavHost
|
||||
import ru.megboyzz.dnevnik.ui.theme.*
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContent {
|
||||
Surface(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
color = lightGray
|
||||
) {
|
||||
AppNavHost()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package ru.megboyzz.dnevnik
|
||||
|
||||
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import androidx.compose.ui.unit.Dp
|
||||
|
||||
@Composable
|
||||
fun Int.AsPainter() = painterResource(this)
|
||||
|
||||
@Composable
|
||||
fun Int.AsString() = stringResource(this)
|
||||
|
||||
@Composable
|
||||
fun SpacerWidth(width: Dp) = Spacer(Modifier.width(width))
|
||||
|
||||
@Composable
|
||||
fun SpacerHeight(height: Dp) = Spacer(Modifier.height(height))
|
||||
|
||||
|
||||
@Composable
|
||||
fun Int.AsImageVector() = ImageVector.vectorResource(this)
|
||||
@@ -0,0 +1,43 @@
|
||||
package ru.megboyzz.dnevnik.navigation
|
||||
|
||||
import android.window.SplashScreen
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
|
||||
|
||||
sealed class AppNavRoute(val route: String){
|
||||
|
||||
object Splash : AppNavRoute("splash_screen")
|
||||
|
||||
object Login: AppNavRoute("login_screen")
|
||||
object Marks: AppNavRoute("marks_screen")
|
||||
object Schedule: AppNavRoute("schedule_screen")
|
||||
object HomeWorks: AppNavRoute("hw_screen")
|
||||
object Settings: AppNavRoute("settings_screen")
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun AppNavHost(){
|
||||
val navController = rememberNavController()
|
||||
|
||||
/*val activity = LocalContext.current as MainActivity
|
||||
|
||||
val application = activity.application as App
|
||||
|
||||
val viewModel: AppViewModel = viewModel(factory = AppViewModelFactory(application))*/
|
||||
|
||||
NavHost(
|
||||
navController = navController,
|
||||
startDestination = AppNavRoute.Splash.route
|
||||
){
|
||||
composable(AppNavRoute.Splash.route) { }
|
||||
composable(AppNavRoute.Marks.route) { }
|
||||
composable(AppNavRoute.Schedule.route) { }
|
||||
composable(AppNavRoute.HomeWorks.route) { }
|
||||
composable(AppNavRoute.Settings.route) { }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
package ru.megboyzz.dnevnik.navigation
|
||||
|
||||
@@ -0,0 +1,494 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.animation.expandHorizontally
|
||||
import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.animation.slideInHorizontally
|
||||
import androidx.compose.foundation.BorderStroke
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.selection.toggleable
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Check
|
||||
import androidx.compose.material.icons.filled.Visibility
|
||||
import androidx.compose.material.icons.filled.VisibilityOff
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.focus.onFocusChanged
|
||||
import androidx.compose.ui.geometry.CornerRadius
|
||||
import androidx.compose.ui.geometry.RoundRect
|
||||
import androidx.compose.ui.geometry.Size
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.Outline
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.semantics.Role
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.*
|
||||
import androidx.constraintlayout.compose.Visibility
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.megboyzz.dnevnik.*
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.ui.theme.*
|
||||
|
||||
@Composable
|
||||
fun MainScaffold(
|
||||
icon: Painter,
|
||||
title: String,
|
||||
/* TODO viewModel */
|
||||
content: (@Composable (it: PaddingValues) -> Unit)
|
||||
) {
|
||||
val scaffoldState = rememberScaffoldState()
|
||||
val scope = rememberCoroutineScope()
|
||||
Scaffold(
|
||||
scaffoldState = scaffoldState,
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
backgroundColor = mainBlue,
|
||||
contentColor = Color.White
|
||||
) {
|
||||
IconButton(
|
||||
onClick = {
|
||||
val drawerState = scaffoldState.drawerState
|
||||
scope.launch {
|
||||
if (drawerState.isClosed)
|
||||
drawerState.open()
|
||||
else
|
||||
drawerState.close()
|
||||
}
|
||||
}
|
||||
) {
|
||||
Image(painter = icon, contentDescription = "icon")
|
||||
}
|
||||
Text(
|
||||
text = title,
|
||||
fontSize = 16.sp,
|
||||
color = white
|
||||
)
|
||||
}
|
||||
},
|
||||
content = content,
|
||||
drawerBackgroundColor = mainBlue,
|
||||
drawerContentColor = white,
|
||||
drawerShape = drawerShape,
|
||||
drawerContent = { DrawerContent() }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Composable
|
||||
fun DrawerContent() {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.width(260.dp)
|
||||
.fillMaxSize()
|
||||
.padding(10.dp),
|
||||
horizontalAlignment = Alignment.Start
|
||||
){
|
||||
SpacerHeight(10.dp)
|
||||
ProfileCard(painter = R.drawable.ic_author.AsPainter())
|
||||
SpacerHeight(15.dp)
|
||||
AlmostOutlinedText(text = "Идет 3-я четверть")
|
||||
SpacerHeight(20.dp)
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(5.dp),
|
||||
modifier = Modifier.padding(5.dp, 0.dp)
|
||||
) {
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_marks.AsPainter(),
|
||||
text = R.string.title_marks.AsString()
|
||||
) { /* TODO */ }
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_homework.AsPainter(),
|
||||
text = R.string.title_hw.AsString()
|
||||
) { /* TODO */ }
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_schedule.AsPainter(),
|
||||
text = R.string.title_schedule.AsString()
|
||||
) { /* TODO */ }
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_settings.AsPainter(),
|
||||
text = R.string.title_settings.AsString()
|
||||
) { /* TODO */ }
|
||||
}
|
||||
Spacer(Modifier.weight(1f))
|
||||
Divider(color = white, thickness = 1.dp)
|
||||
SpacerHeight(5.dp)
|
||||
Column(Modifier.padding(5.dp, 0.dp)) {
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_exit.AsPainter(),
|
||||
text = R.string.title_leave_from_acconut.AsString()
|
||||
) { /* TODO */ }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val drawerShape = object : Shape {
|
||||
override fun createOutline(
|
||||
size: Size,
|
||||
layoutDirection: LayoutDirection,
|
||||
density: Density
|
||||
): Outline.Rounded {
|
||||
|
||||
val radius = CornerRadius(30f, 30f)
|
||||
val nullRadius = CornerRadius.Zero
|
||||
|
||||
return Outline.Rounded(RoundRect(
|
||||
left = 0f,
|
||||
top = 0f,
|
||||
right = size.width * 26 / 36,
|
||||
bottom = size.height,
|
||||
topLeftCornerRadius = nullRadius,
|
||||
topRightCornerRadius = radius,
|
||||
bottomRightCornerRadius = radius,
|
||||
bottomLeftCornerRadius = nullRadius
|
||||
))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun AlmostOutlinedText(
|
||||
text: String
|
||||
){
|
||||
Column() {
|
||||
Divider(color = white, thickness = 1.dp)
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.height(30.dp),
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
color = white,
|
||||
textAlign = TextAlign.Center,
|
||||
style = H2,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
)
|
||||
}
|
||||
Divider(color = white, thickness = 1.dp)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun ProfileCard(
|
||||
textColor: Color = white,
|
||||
painter: Painter
|
||||
) {
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
Image(
|
||||
modifier = Modifier.padding(10.dp, 15.dp, 20.dp, 15.dp),
|
||||
painter = painter, //TODO заменить динмической картинкой
|
||||
contentDescription = "chel"
|
||||
)
|
||||
Column(verticalArrangement = Arrangement.spacedBy(5.dp)) {
|
||||
Text(
|
||||
text = "Имя и фамилия",
|
||||
style = H1,
|
||||
color = textColor
|
||||
)
|
||||
Text(
|
||||
text = "Класс/Группа",
|
||||
style = H1,
|
||||
color = textColor
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun LoginBackground() {
|
||||
val icon = R.drawable.ic_header.AsPainter()
|
||||
val size = icon.intrinsicSize
|
||||
Column {
|
||||
Image(
|
||||
painter = icon,
|
||||
contentDescription = "",
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
contentScale = ContentScale.FillWidth,
|
||||
alignment = Alignment.TopStart
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun ProfilePrev() {
|
||||
ProfileCard(painter = R.drawable.ic_author.AsPainter())
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainTextField(
|
||||
value: MutableState<String>,
|
||||
isError: MutableState<Boolean> = remember { mutableStateOf(false) },
|
||||
label: String = "",
|
||||
keyboardType: KeyboardType = KeyboardType.Text,
|
||||
onChange: (it: String) -> Unit = { value.value = it }
|
||||
) {
|
||||
|
||||
var passwordVisible by rememberSaveable { mutableStateOf(false) }
|
||||
val focusRequester = FocusRequester()
|
||||
|
||||
OutlinedTextField(
|
||||
value = value.value,
|
||||
onValueChange = onChange,
|
||||
label = { Text(
|
||||
text = label,
|
||||
style = H2,
|
||||
color = dark
|
||||
) },
|
||||
shape = RoundedCornerShape(10.dp),
|
||||
textStyle = H2,
|
||||
colors = TextFieldDefaults.outlinedTextFieldColors(
|
||||
textColor = dark,
|
||||
unfocusedBorderColor = if(isError.value) falseColor else mainBlue,
|
||||
focusedBorderColor = if(isError.value) falseColor else mainBlue,
|
||||
focusedLabelColor = dark,
|
||||
unfocusedLabelColor = dark,
|
||||
cursorColor = dark
|
||||
),
|
||||
maxLines = 1,
|
||||
keyboardOptions = KeyboardOptions(
|
||||
keyboardType = keyboardType
|
||||
),
|
||||
visualTransformation =
|
||||
if(keyboardType == KeyboardType.Password) {
|
||||
if (passwordVisible)
|
||||
VisualTransformation.None
|
||||
else
|
||||
PasswordVisualTransformation()
|
||||
}else VisualTransformation.None,
|
||||
trailingIcon = {
|
||||
if(keyboardType == KeyboardType.Password){
|
||||
val image = if (passwordVisible)
|
||||
Icons.Filled.Visibility
|
||||
else Icons.Filled.VisibilityOff
|
||||
|
||||
IconButton(onClick = {passwordVisible = !passwordVisible}){
|
||||
Icon(imageVector = image, "")
|
||||
}
|
||||
}
|
||||
},
|
||||
modifier = Modifier
|
||||
.focusRequester(focusRequester)
|
||||
.onFocusChanged {
|
||||
if (it.isFocused)
|
||||
if(isError.value) isError.value = false
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun DrawerMainButton(
|
||||
icon: Painter,
|
||||
text: String,
|
||||
textColor: Color = white,
|
||||
onClick: () -> Unit = {}
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.height(30.dp)
|
||||
.clickable(onClick = onClick),
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Start
|
||||
){
|
||||
Image(
|
||||
painter = icon,
|
||||
contentDescription = "icon"
|
||||
)
|
||||
SpacerWidth(13.dp)
|
||||
Text(
|
||||
text = text,
|
||||
style = H2,
|
||||
color = textColor
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun Almst() {
|
||||
Column() {
|
||||
AlmostOutlinedText(text = "Идет 3-я четверть")
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun ButtonPrev() {
|
||||
DrawerMainButton(
|
||||
icon = R.drawable.ic_marks.AsPainter(),
|
||||
text = "Оценки"
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun DrawerPrev() {
|
||||
Surface(
|
||||
color = mainBlue
|
||||
) {
|
||||
DrawerContent()
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun MainScaffoldPrev() {
|
||||
MainScaffold(
|
||||
icon = R.drawable.ic_marks.AsPainter(),
|
||||
title = R.string.title_marks.AsString()
|
||||
) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun CheckBoxed() {
|
||||
val isCheck = remember { mutableStateOf(false) }
|
||||
val titleColor = mainBlue
|
||||
Row {
|
||||
Card(
|
||||
elevation = 0.dp,
|
||||
shape = RoundedCornerShape(6.dp),
|
||||
border = BorderStroke(1.5.dp, color = titleColor)
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.size(20.dp)
|
||||
.background(if (isCheck.value) titleColor else Color.White)
|
||||
.clickable {
|
||||
isCheck.value = !isCheck.value
|
||||
},
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
if(isCheck.value)
|
||||
Icon(Icons.Default.Check, contentDescription = "", tint = Color.White)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun PrevCB() {
|
||||
val checkedState = remember { mutableStateOf(true) }
|
||||
MainCheckbox(checkedState){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun MainCheckbox(
|
||||
isChecked: MutableState<Boolean>,
|
||||
modifier: Modifier = Modifier,
|
||||
size: Float = 24f,
|
||||
checkedColor: Color = mainBlue,
|
||||
uncheckedColor: Color = white,
|
||||
checkmarkColor: Color = white,
|
||||
onValueChange: () -> Unit
|
||||
) {
|
||||
|
||||
val checkboxColor: Color by animateColorAsState(if (isChecked.value) checkedColor else uncheckedColor)
|
||||
val density = LocalDensity.current
|
||||
val duration = 200
|
||||
|
||||
Row(
|
||||
modifier = modifier
|
||||
.toggleable(
|
||||
value = isChecked.value,
|
||||
role = Role.Checkbox,
|
||||
onValueChange = {
|
||||
isChecked.value = !isChecked.value
|
||||
onValueChange.invoke()
|
||||
}
|
||||
)
|
||||
) {
|
||||
Card(
|
||||
elevation = 0.dp,
|
||||
shape = RoundedCornerShape(8.dp),
|
||||
border = BorderStroke(1.dp, color = checkedColor),
|
||||
) {
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.size(size.dp)
|
||||
.background(checkboxColor),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
androidx.compose.animation.AnimatedVisibility(
|
||||
visible = isChecked.value,
|
||||
enter = slideInHorizontally(
|
||||
animationSpec = tween(duration)
|
||||
) {
|
||||
(size * -0.5).toInt()
|
||||
} + expandHorizontally(
|
||||
expandFrom = Alignment.Start,
|
||||
animationSpec = tween(duration)
|
||||
),
|
||||
exit = fadeOut()
|
||||
) {
|
||||
Icon(
|
||||
Icons.Default.Check,
|
||||
contentDescription = null,
|
||||
tint = checkmarkColor
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainButton(
|
||||
text: String,
|
||||
radius: Dp = 8.dp,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
Button(
|
||||
onClick = onClick,
|
||||
colors = ButtonDefaults.buttonColors(
|
||||
backgroundColor = mainBlue,
|
||||
contentColor = Color.White
|
||||
),
|
||||
shape = RoundedCornerShape(radius),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
Text(
|
||||
text = text,
|
||||
style = H1
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.*
|
||||
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.graphics.Color
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.modifier.modifierLocalOf
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.textInputServiceFactory
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import ru.megboyzz.dnevnik.AsString
|
||||
import ru.megboyzz.dnevnik.R
|
||||
import ru.megboyzz.dnevnik.SpacerHeight
|
||||
import ru.megboyzz.dnevnik.SpacerWidth
|
||||
import ru.megboyzz.dnevnik.ui.theme.*
|
||||
|
||||
@Composable
|
||||
fun LoginScreen() {
|
||||
|
||||
val login = remember {
|
||||
mutableStateOf("")
|
||||
}
|
||||
val password = remember {
|
||||
mutableStateOf("")
|
||||
}
|
||||
|
||||
val configuration = LocalConfiguration.current
|
||||
val screenHeight = configuration.screenHeightDp
|
||||
val screenWidth = configuration.screenWidthDp
|
||||
|
||||
val defaultModifier = Modifier.width(500.dp)
|
||||
|
||||
Column(
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
modifier = defaultModifier
|
||||
) {
|
||||
if(screenWidth < 500)
|
||||
LoginBackground()
|
||||
else{
|
||||
defaultModifier.then(Modifier.fillMaxWidth())
|
||||
}
|
||||
Row(horizontalArrangement = Arrangement.Center) {
|
||||
Text(
|
||||
text = R.string.title_welcome.AsString(),
|
||||
style = Big,
|
||||
textAlign = TextAlign.Center,
|
||||
modifier = Modifier.padding(65.dp, 20.dp, 65.dp, 40.dp)
|
||||
)
|
||||
}
|
||||
MainTextField(
|
||||
value = login,
|
||||
label = R.string.title_login.AsString()
|
||||
)
|
||||
SpacerHeight(15.dp)
|
||||
MainTextField(
|
||||
value = password,
|
||||
keyboardType = KeyboardType.Password,
|
||||
label = R.string.title_password.AsString()
|
||||
)
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(65.dp, 10.dp)
|
||||
.height(30.dp),
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxHeight(),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
val checkedState = remember { mutableStateOf(true) }
|
||||
MainCheckbox(checkedState) { /* TODO */ }
|
||||
SpacerWidth(5.dp)
|
||||
Text(
|
||||
text = R.string.title_remember_me.AsString(),
|
||||
style = MainText,
|
||||
color = dark
|
||||
)
|
||||
}
|
||||
Text(
|
||||
text = R.string.title_forget_password.AsString(),
|
||||
style = MainText,
|
||||
color = dark,
|
||||
modifier = Modifier.clickable{ /* TODO */ }
|
||||
)
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(65.dp, 10.dp),
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
MainButton(text = R.string.title_sign_in.AsString()) {
|
||||
/* TODO */
|
||||
}
|
||||
SpacerHeight(5.dp)
|
||||
Text(
|
||||
text = R.string.title_sign_up.AsString(),
|
||||
modifier = Modifier
|
||||
.clickable {
|
||||
/* TODO */
|
||||
}
|
||||
.padding(5.dp)
|
||||
.fillMaxWidth(),
|
||||
textAlign = TextAlign.Center,
|
||||
style = Mini
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
fun LoginPagePrev() {
|
||||
LoginScreen()
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
package ru.megboyzz.dnevnik.screens
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
package ru.megboyzz.dnevnik.screens.subscreens
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
package ru.megboyzz.dnevnik.screens.subscreens
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package ru.megboyzz.dnevnik.ui.theme
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
||||
val Purple200 = Color(0xFFBB86FC)
|
||||
val Purple500 = Color(0xFF6200EE)
|
||||
val Purple700 = Color(0xFF3700B3)
|
||||
val Teal200 = Color(0xFF03DAC5)
|
||||
|
||||
//Цвета из дизайна
|
||||
val dark = Color(0xFF_272727)
|
||||
val mainBlue = Color(0xFF_3C95FF)
|
||||
val lightGray = Color(0xFF_F4F4F4)
|
||||
val white = Color(0xFF_FFFFFF)
|
||||
val trueColor = Color(0xFF_56F570)
|
||||
val falseColor = Color(0xFF_FC5876)
|
||||
val attentionColor = Color(0xFF_FCF558)
|
||||
val mainBlur = Color(0xD9_58A3FC)
|
||||
val blur = Color(0xD9_272727)
|
||||
|
||||
//Цвет годовой оценки
|
||||
val totalMarkColor = Color(0xFF_FCBA58)
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package ru.megboyzz.dnevnik.ui.theme
|
||||
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.Shapes
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
val Shapes = Shapes(
|
||||
small = RoundedCornerShape(4.dp),
|
||||
medium = RoundedCornerShape(4.dp),
|
||||
large = RoundedCornerShape(0.dp)
|
||||
)
|
||||
@@ -0,0 +1,44 @@
|
||||
package ru.megboyzz.dnevnik.ui.theme
|
||||
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.material.darkColors
|
||||
import androidx.compose.material.lightColors
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
private val DarkColorPalette = darkColors(
|
||||
primary = Purple200,
|
||||
primaryVariant = Purple700,
|
||||
secondary = Teal200
|
||||
)
|
||||
|
||||
private val LightColorPalette = lightColors(
|
||||
primary = Purple500,
|
||||
primaryVariant = Purple700,
|
||||
secondary = Teal200
|
||||
|
||||
/* Other default colors to override
|
||||
background = Color.White,
|
||||
surface = Color.White,
|
||||
onPrimary = Color.White,
|
||||
onSecondary = Color.Black,
|
||||
onBackground = Color.Black,
|
||||
onSurface = Color.Black,
|
||||
*/
|
||||
)
|
||||
|
||||
@Composable
|
||||
fun MyDnevnikTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
|
||||
val colors = if (darkTheme) {
|
||||
DarkColorPalette
|
||||
} else {
|
||||
LightColorPalette
|
||||
}
|
||||
|
||||
MaterialTheme(
|
||||
colors = colors,
|
||||
typography = Typography,
|
||||
shapes = Shapes,
|
||||
content = content
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package ru.megboyzz.dnevnik.ui.theme
|
||||
|
||||
import androidx.compose.material.Typography
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.font.Font
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.ExperimentalUnitApi
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
import androidx.compose.ui.unit.TextUnitType
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import ru.megboyzz.dnevnik.R
|
||||
|
||||
val Typography = Typography(
|
||||
body1 = TextStyle(
|
||||
fontFamily = FontFamily.Default,
|
||||
fontWeight = FontWeight.Normal,
|
||||
fontSize = 16.sp
|
||||
),
|
||||
/* Other default text styles to override
|
||||
button = TextStyle(
|
||||
fontFamily = FontFamily.Default,
|
||||
fontWeight = FontWeight.W500,
|
||||
fontSize = 14.sp
|
||||
),
|
||||
caption = TextStyle(
|
||||
fontFamily = FontFamily.Default,
|
||||
fontWeight = FontWeight.Normal,
|
||||
fontSize = 12.sp
|
||||
)
|
||||
*/
|
||||
)
|
||||
|
||||
|
||||
val H1 = TextStyle(
|
||||
fontSize = 20.sp,
|
||||
fontWeight = FontWeight.Bold
|
||||
)
|
||||
|
||||
val H2 = TextStyle(
|
||||
fontSize = 15.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
lineHeight = (12 * 1.315).sp
|
||||
)
|
||||
|
||||
val MainText = TextStyle(
|
||||
fontSize = 12.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
lineHeight = (10 * 1.56).sp
|
||||
)
|
||||
|
||||
val Big = TextStyle(
|
||||
fontSize = 27.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
lineHeight = (22 * 1.475).sp
|
||||
)
|
||||
|
||||
val Mini = TextStyle(
|
||||
fontSize = 10.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
)
|
||||
@@ -0,0 +1,30 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:endX="85.84757"
|
||||
android:endY="92.4963"
|
||||
android:startX="42.9492"
|
||||
android:startY="49.59793"
|
||||
android:type="linear">
|
||||
<item
|
||||
android:color="#44000000"
|
||||
android:offset="0.0" />
|
||||
<item
|
||||
android:color="#00000000"
|
||||
android:offset="1.0" />
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:fillType="nonZero"
|
||||
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
|
||||
android:strokeWidth="1"
|
||||
android:strokeColor="#00000000" />
|
||||
</vector>
|
||||
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="314dp"
|
||||
android:height="2dp"
|
||||
android:viewportWidth="314"
|
||||
android:viewportHeight="2">
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M1,1L313,1"
|
||||
android:fillColor="#fff"
|
||||
android:strokeColor="#fff"
|
||||
android:strokeLineCap="round"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,16 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h16v16h-16z"/>
|
||||
<path
|
||||
android:pathData="M12,16C12,16 13,16 13,15C13,14 12,11 8,11C4,11 3,14 3,15C3,16 4,16 4,16L12,16ZM8,10.05C7.337,10.05 6.701,9.786 6.232,9.318C5.763,8.849 5.5,8.213 5.5,7.55C5.5,6.887 5.763,6.251 6.232,5.782C6.701,5.313 7.337,5.05 8,5.05C8.663,5.05 9.299,5.313 9.768,5.782C10.237,6.251 10.5,6.887 10.5,7.55C10.5,8.213 10.237,8.849 9.768,9.318C9.299,9.786 8.663,10.05 8,10.05Z"
|
||||
android:fillColor="#000000"/>
|
||||
<path
|
||||
android:pathData="M14,1C14.53,1 15.039,1.211 15.414,1.586C15.789,1.961 16,2.47 16,3V12.5C16,12.898 15.842,13.279 15.561,13.561C15.279,13.842 14.898,14 14.5,14H13.847C13.638,13.265 13.274,12.583 12.781,12H15L15,3C15,2.735 14.895,2.48 14.707,2.293C14.52,2.105 14.265,2 14,2L2,2C1.735,2 1.48,2.105 1.293,2.293C1.105,2.48 1,2.735 1,3L1,12H3.219C2.665,12.654 2.329,13.373 2.153,14H1.5C1.102,14 0.721,13.842 0.439,13.561C0.158,13.279 0,12.898 0,12.5L0,3C0,2.47 0.211,1.961 0.586,1.586C0.961,1.211 1.47,1 2,1L14,1Z"
|
||||
android:fillColor="#000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="314dp"
|
||||
android:height="2dp"
|
||||
android:viewportWidth="314"
|
||||
android:viewportHeight="2">
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M1,1L313,1"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#272727"
|
||||
android:strokeLineCap="round"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h15.34v16h-15.34z"/>
|
||||
<path
|
||||
android:pathData="M7.337,3.478C7.798,3.478 8.24,3.295 8.566,2.969C8.892,2.643 9.075,2.201 9.075,1.739C9.075,1.278 8.892,0.836 8.566,0.51C8.24,0.184 7.798,0.001 7.337,0.001C6.876,0.001 6.433,0.184 6.107,0.51C5.781,0.836 5.598,1.278 5.598,1.739C5.598,2.201 5.781,2.643 6.107,2.969C6.433,3.295 6.876,3.478 7.337,3.478ZM1.597,3.478C2.059,3.478 2.501,3.295 2.827,2.969C3.153,2.643 3.336,2.201 3.336,1.739C3.336,1.278 3.153,0.836 2.827,0.51C2.501,0.184 2.059,0.001 1.597,0.001C1.136,0.001 0.694,0.184 0.368,0.51C0.042,0.836 -0.141,1.278 -0.141,1.739C-0.141,2.201 0.042,2.643 0.368,2.969C0.694,3.295 1.136,3.478 1.597,3.478ZM13.597,3.478C14.059,3.478 14.501,3.295 14.827,2.969C15.153,2.643 15.336,2.201 15.336,1.739C15.336,1.278 15.153,0.836 14.827,0.51C14.501,0.184 14.059,0.001 13.597,0.001C13.136,0.001 12.694,0.184 12.368,0.51C12.042,0.836 11.859,1.278 11.859,1.739C11.859,2.201 12.042,2.643 12.368,2.969C12.694,3.295 13.136,3.478 13.597,3.478ZM7.337,9.739C7.565,9.739 7.791,9.694 8.002,9.606C8.213,9.519 8.405,9.391 8.566,9.229C8.728,9.068 8.856,8.876 8.943,8.665C9.03,8.454 9.075,8.228 9.075,8C9.075,7.772 9.03,7.546 8.943,7.335C8.856,7.124 8.728,6.932 8.566,6.771C8.405,6.609 8.213,6.481 8.002,6.394C7.791,6.306 7.565,6.261 7.337,6.261C6.876,6.261 6.433,6.445 6.107,6.771C5.781,7.097 5.598,7.539 5.598,8C5.598,8.461 5.781,8.903 6.107,9.229C6.433,9.556 6.876,9.739 7.337,9.739ZM1.597,9.739C1.826,9.739 2.052,9.694 2.263,9.606C2.474,9.519 2.665,9.391 2.827,9.229C2.988,9.068 3.116,8.876 3.204,8.665C3.291,8.454 3.336,8.228 3.336,8C3.336,7.772 3.291,7.546 3.204,7.335C3.116,7.124 2.988,6.932 2.827,6.771C2.665,6.609 2.474,6.481 2.263,6.394C2.052,6.306 1.826,6.261 1.597,6.261C1.136,6.261 0.694,6.445 0.368,6.771C0.042,7.097 -0.141,7.539 -0.141,8C-0.141,8.461 0.042,8.903 0.368,9.229C0.694,9.556 1.136,9.739 1.597,9.739ZM13.597,9.739C13.826,9.739 14.052,9.694 14.263,9.606C14.474,9.519 14.665,9.391 14.827,9.229C14.988,9.068 15.116,8.876 15.204,8.665C15.291,8.454 15.336,8.228 15.336,8C15.336,7.772 15.291,7.546 15.204,7.335C15.116,7.124 14.988,6.932 14.827,6.771C14.665,6.609 14.474,6.481 14.263,6.394C14.052,6.306 13.826,6.261 13.597,6.261C13.136,6.261 12.694,6.445 12.368,6.771C12.042,7.097 11.859,7.539 11.859,8C11.859,8.461 12.042,8.903 12.368,9.229C12.694,9.556 13.136,9.739 13.597,9.739ZM7.337,15.999C7.565,15.999 7.791,15.954 8.002,15.867C8.213,15.78 8.405,15.652 8.566,15.49C8.728,15.329 8.856,15.137 8.943,14.926C9.03,14.715 9.075,14.489 9.075,14.261C9.075,14.032 9.03,13.806 8.943,13.595C8.856,13.384 8.728,13.193 8.566,13.031C8.405,12.87 8.213,12.742 8.002,12.654C7.791,12.567 7.565,12.522 7.337,12.522C6.876,12.522 6.433,12.705 6.107,13.031C5.781,13.358 5.598,13.8 5.598,14.261C5.598,14.722 5.781,15.165 6.107,15.491C6.433,15.817 6.876,16 7.337,16V15.999ZM1.597,15.999C1.826,15.999 2.052,15.954 2.263,15.867C2.474,15.78 2.665,15.652 2.827,15.49C2.988,15.329 3.116,15.137 3.204,14.926C3.291,14.715 3.336,14.489 3.336,14.261C3.336,14.032 3.291,13.806 3.204,13.595C3.116,13.384 2.988,13.193 2.827,13.031C2.665,12.87 2.474,12.742 2.263,12.654C2.052,12.567 1.826,12.522 1.597,12.522C1.136,12.522 0.694,12.705 0.368,13.031C0.042,13.357 -0.141,13.8 -0.141,14.261C-0.141,14.722 0.042,15.164 0.368,15.49C0.694,15.816 1.136,15.999 1.597,15.999ZM13.597,15.999C13.826,15.999 14.052,15.954 14.263,15.867C14.474,15.78 14.665,15.652 14.827,15.49C14.988,15.329 15.116,15.137 15.204,14.926C15.291,14.715 15.336,14.489 15.336,14.261C15.336,14.032 15.291,13.806 15.204,13.595C15.116,13.384 14.988,13.193 14.827,13.031C14.665,12.87 14.474,12.742 14.263,12.654C14.052,12.567 13.826,12.522 13.597,12.522C13.136,12.522 12.694,12.705 12.368,13.031C12.042,13.357 11.859,13.8 11.859,14.261C11.859,14.722 12.042,15.164 12.368,15.49C12.694,15.816 13.136,15.999 13.597,15.999Z"
|
||||
android:fillColor="#000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="14dp"
|
||||
android:height="12dp"
|
||||
android:viewportWidth="14"
|
||||
android:viewportHeight="12">
|
||||
<path
|
||||
android:pathData="M1,6.625L4.652,11L13,1"
|
||||
android:strokeLineJoin="round"
|
||||
android:strokeWidth="2"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#56F570"
|
||||
android:strokeLineCap="round"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="20dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="20">
|
||||
<path
|
||||
android:pathData="M7,9C7.265,9 7.52,9.105 7.707,9.293C7.895,9.48 8,9.735 8,10C8,10.265 7.895,10.52 7.707,10.707C7.52,10.895 7.265,11 7,11C6.735,11 6.48,10.895 6.293,10.707C6.105,10.52 6,10.265 6,10C6,9.735 6.105,9.48 6.293,9.293C6.48,9.105 6.735,9 7,9ZM4,16C4,16.53 4.211,17.039 4.586,17.414C4.961,17.789 5.47,18 6,18H14C14.53,18 15.039,17.789 15.414,17.414C15.789,17.039 16,16.53 16,16L16,4C16,3.47 15.789,2.961 15.414,2.586C15.039,2.211 14.53,2 14,2H6C5.47,2 4.961,2.211 4.586,2.586C4.211,2.961 4,3.47 4,4L4,16ZM6,3L14,3C14.265,3 14.52,3.105 14.707,3.293C14.895,3.48 15,3.735 15,4L15,16C15,16.265 14.895,16.52 14.707,16.707C14.52,16.895 14.265,17 14,17H6C5.735,17 5.48,16.895 5.293,16.707C5.105,16.52 5,16.265 5,16L5,4C5,3.735 5.105,3.48 5.293,3.293C5.48,3.105 5.735,3 6,3Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,16 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="360dp"
|
||||
android:height="218dp"
|
||||
android:viewportWidth="360"
|
||||
android:viewportHeight="218">
|
||||
<path
|
||||
android:pathData="M-56,10C-56,-39.71 -15.71,-80 34,-80H386.09C437.3,-80 478.18,-37.33 476.01,13.83L473.74,67.19C471.43,121.43 421.98,161.3 368.49,152.05L313.71,142.58C300.09,140.23 286.1,141.04 272.85,144.96L83.64,200.95C48.75,211.27 11.07,199.57 -11.83,171.29L-35.94,141.53C-48.92,125.5 -56,105.51 -56,84.88V10Z"
|
||||
android:fillColor="#3C95FF"/>
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M140,39h80v80h-80z"/>
|
||||
<path
|
||||
android:pathData="M213.52,56.43L188.94,44.72C183.53,41.49 176.8,41.43 171.33,44.57L146.48,56.43C146.38,56.48 146.29,56.53 146.2,56.58C140.3,59.96 138.25,67.47 141.62,73.37C142.77,75.37 144.45,77.01 146.48,78.1L153.33,81.37V97.7C153.34,105 158.09,111.46 165.06,113.63C169.92,115.03 174.95,115.72 180,115.67C185.05,115.72 190.08,115.04 194.94,113.64C201.91,111.47 206.66,105.02 206.67,97.72V81.36L213.33,78.17V105.67C213.33,107.51 214.82,109 216.67,109C218.51,109 220,107.51 220,105.67V65.67C220.02,61.75 216.93,58.14 213.52,56.43ZM200,97.72C200,102.08 197.17,105.95 193,107.26C188.77,108.47 184.39,109.05 180,109C175.6,109.05 171.23,108.47 167,107.26C162.83,105.95 160,102.08 160,97.72V84.54L171.06,89.81C173.78,91.43 176.9,92.28 180.07,92.27C183.09,92.29 186.06,91.49 188.66,89.96L200,84.54V97.72ZM210.67,72.08L185.53,84.08C182.02,86.12 177.68,86.07 174.23,83.93L149.63,72.23C146.89,70.75 145.86,67.33 147.34,64.59C147.84,63.66 148.59,62.9 149.51,62.37L174.49,50.44C178,48.4 182.34,48.46 185.79,50.59L210.37,62.3C212.18,63.3 213.31,65.2 213.33,67.27C213.34,69.22 212.33,71.05 210.67,72.08Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h16v16h-16z"/>
|
||||
<path
|
||||
android:pathData="M14.8,1.442C14.425,1.129 13.986,0.902 13.514,0.777C13.041,0.653 12.547,0.634 12.067,0.721L9.519,1.184C8.93,1.292 8.396,1.595 8,2.043C7.603,1.594 7.067,1.291 6.477,1.184L3.933,0.721C3.453,0.633 2.959,0.652 2.486,0.776C2.014,0.901 1.574,1.127 1.199,1.44C0.824,1.753 0.522,2.144 0.315,2.587C0.107,3.029 0,3.512 0,4L0,11.195C0,11.976 0.274,12.732 0.774,13.331C1.274,13.93 1.969,14.335 2.737,14.475L6.927,15.237C7.637,15.366 8.363,15.366 9.073,15.237L13.267,14.475C14.034,14.334 14.728,13.929 15.227,13.33C15.727,12.731 16,11.976 16,11.195V4C16,3.512 15.893,3.029 15.686,2.587C15.478,2.145 15.176,1.754 14.8,1.442V1.442ZM7.333,13.952C7.277,13.944 7.221,13.935 7.165,13.925L2.975,13.163C2.515,13.08 2.098,12.837 1.798,12.477C1.498,12.117 1.333,11.664 1.333,11.195V4C1.333,3.47 1.544,2.961 1.919,2.586C2.294,2.211 2.803,2 3.333,2C3.454,2 3.575,2.011 3.693,2.033L6.24,2.499C6.546,2.556 6.824,2.717 7.023,2.956C7.223,3.195 7.333,3.497 7.333,3.808V13.952ZM14.667,11.195C14.667,11.664 14.502,12.117 14.202,12.477C13.902,12.837 13.486,13.08 13.025,13.163L8.835,13.925C8.779,13.935 8.723,13.944 8.667,13.952V3.808C8.667,3.496 8.776,3.193 8.976,2.954C9.176,2.714 9.454,2.552 9.761,2.496L12.309,2.029C12.597,1.977 12.894,1.989 13.177,2.063C13.461,2.138 13.724,2.274 13.949,2.463C14.174,2.651 14.355,2.886 14.479,3.151C14.603,3.417 14.667,3.707 14.667,4V11.195Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="25dp"
|
||||
android:height="20dp"
|
||||
android:viewportWidth="25"
|
||||
android:viewportHeight="20">
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M9,0.5L16,0.5A8.5,8.5 0,0 1,24.5 9L24.5,11A8.5,8.5 0,0 1,16 19.5L9,19.5A8.5,8.5 0,0 1,0.5 11L0.5,9A8.5,8.5 0,0 1,9 0.5z"
|
||||
android:fillColor="#ffffff"
|
||||
android:strokeColor="#3C95FF"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M11.682,14.667C11.838,14.668 11.989,14.614 12.109,14.514L16.109,11.181C16.245,11.068 16.33,10.905 16.347,10.729C16.363,10.552 16.309,10.377 16.195,10.241C16.082,10.105 15.92,10.019 15.743,10.003C15.567,9.987 15.392,10.041 15.255,10.154L11.682,13.141L8.109,10.261C8.041,10.205 7.962,10.164 7.878,10.139C7.794,10.114 7.705,10.106 7.618,10.115C7.531,10.125 7.446,10.151 7.369,10.193C7.292,10.235 7.224,10.292 7.169,10.361C7.108,10.429 7.061,10.51 7.033,10.597C7.004,10.684 6.994,10.776 7.003,10.868C7.012,10.959 7.039,11.048 7.084,11.128C7.128,11.208 7.189,11.278 7.262,11.334L11.262,14.554C11.385,14.638 11.533,14.678 11.682,14.667Z"
|
||||
android:fillColor="#000000"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="#3DDC84"
|
||||
android:pathData="M0,0h108v108h-108z" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M9,0L9,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,0L19,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,0L29,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,0L39,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,0L49,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,0L59,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,0L69,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,0L79,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M89,0L89,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M99,0L99,108"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,9L108,9"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,19L108,19"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,29L108,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,39L108,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,49L108,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,59L108,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,69L108,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,79L108,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,89L108,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M0,99L108,99"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,29L89,29"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,39L89,39"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,49L89,49"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,59L89,59"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,69L89,69"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M19,79L89,79"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M29,19L29,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M39,19L39,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M49,19L49,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M59,19L59,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M69,19L69,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M79,19L79,89"
|
||||
android:strokeWidth="0.8"
|
||||
android:strokeColor="#33FFFFFF" />
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="360dp"
|
||||
android:height="205dp"
|
||||
android:viewportWidth="360"
|
||||
android:viewportHeight="205">
|
||||
<path
|
||||
android:pathData="M-56,10C-56,-39.71 -15.71,-80 34,-80H386.09C437.3,-80 478.18,-37.33 476.01,13.83L473.74,67.19C471.43,121.43 421.98,161.3 368.49,152.05L313.71,142.58C300.09,140.23 286.1,141.04 272.85,144.96L83.64,200.95C48.75,211.27 11.07,199.57 -11.83,171.29L-35.94,141.53C-48.92,125.5 -56,105.51 -56,84.88V10Z"
|
||||
android:fillColor="#3C95FF"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,28 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h16v16h-16z"/>
|
||||
<path
|
||||
android:pathData="M15.333,14.667H3.333C2.803,14.667 2.294,14.456 1.919,14.081C1.544,13.706 1.333,13.197 1.333,12.667V0.667C1.333,0.49 1.263,0.32 1.138,0.195C1.013,0.07 0.843,0 0.667,0C0.49,0 0.32,0.07 0.195,0.195C0.07,0.32 0,0.49 0,0.667L0,12.667C0.001,13.55 0.353,14.398 0.977,15.023C1.602,15.647 2.45,15.999 3.333,16H15.333C15.51,16 15.68,15.93 15.805,15.805C15.93,15.68 16,15.51 16,15.333C16,15.156 15.93,14.987 15.805,14.862C15.68,14.737 15.51,14.667 15.333,14.667Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M4,13.333C4.177,13.333 4.346,13.263 4.471,13.138C4.597,13.013 4.667,12.843 4.667,12.666V8C4.667,7.823 4.597,7.653 4.471,7.528C4.346,7.403 4.177,7.333 4,7.333C3.823,7.333 3.654,7.403 3.529,7.528C3.404,7.653 3.333,7.823 3.333,8V12.666C3.333,12.843 3.404,13.013 3.529,13.138C3.654,13.263 3.823,13.333 4,13.333Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M6.667,6.667V12.667C6.667,12.844 6.737,13.013 6.862,13.138C6.987,13.263 7.156,13.333 7.333,13.333C7.51,13.333 7.68,13.263 7.805,13.138C7.93,13.013 8,12.844 8,12.667V6.667C8,6.49 7.93,6.32 7.805,6.195C7.68,6.07 7.51,6 7.333,6C7.156,6 6.987,6.07 6.862,6.195C6.737,6.32 6.667,6.49 6.667,6.667Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M10,8.667V12.667C10,12.844 10.07,13.013 10.195,13.138C10.32,13.263 10.49,13.333 10.667,13.333C10.844,13.333 11.013,13.263 11.138,13.138C11.263,13.013 11.333,12.844 11.333,12.667V8.667C11.333,8.49 11.263,8.32 11.138,8.195C11.013,8.07 10.844,8 10.667,8C10.49,8 10.32,8.07 10.195,8.195C10.07,8.32 10,8.49 10,8.667Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M13.333,6V12.666C13.333,12.843 13.404,13.013 13.529,13.138C13.654,13.263 13.823,13.333 14,13.333C14.177,13.333 14.347,13.263 14.472,13.138C14.597,13.013 14.667,12.843 14.667,12.666V6C14.667,5.823 14.597,5.653 14.472,5.528C14.347,5.403 14.177,5.333 14,5.333C13.823,5.333 13.654,5.403 13.529,5.528C13.404,5.653 13.333,5.823 13.333,6Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M4,6C4.177,6 4.346,5.929 4.471,5.804L6.862,3.414C6.989,3.293 7.158,3.225 7.333,3.225C7.509,3.225 7.677,3.293 7.805,3.414L9.253,4.862C9.628,5.237 10.136,5.447 10.667,5.447C11.197,5.447 11.705,5.237 12.081,4.862L15.805,1.138C15.926,1.012 15.993,0.843 15.992,0.669C15.99,0.494 15.92,0.327 15.796,0.203C15.673,0.079 15.506,0.009 15.331,0.008C15.156,0.006 14.988,0.074 14.862,0.195L11.138,3.918C11.013,4.043 10.843,4.113 10.667,4.113C10.49,4.113 10.32,4.043 10.195,3.918L8.747,2.471C8.372,2.096 7.864,1.885 7.333,1.885C6.803,1.885 6.294,2.096 5.919,2.471L3.529,4.862C3.435,4.955 3.372,5.074 3.346,5.203C3.32,5.332 3.334,5.466 3.384,5.588C3.435,5.71 3.52,5.814 3.63,5.887C3.739,5.96 3.868,6 4,6V6Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M8.6,14.12L13.19,18.71C13.378,18.896 13.631,19.001 13.895,19.001C14.159,19.001 14.413,18.896 14.6,18.71C14.694,18.617 14.768,18.507 14.819,18.385C14.87,18.263 14.896,18.132 14.896,18C14.896,17.868 14.87,17.737 14.819,17.616C14.768,17.494 14.694,17.383 14.6,17.29L10,12.71C9.906,12.617 9.832,12.507 9.781,12.385C9.731,12.263 9.704,12.132 9.704,12C9.704,11.868 9.731,11.738 9.781,11.616C9.832,11.494 9.906,11.383 10,11.29L14.6,6.71C14.788,6.523 14.895,6.269 14.896,6.004C14.897,5.738 14.792,5.483 14.605,5.295C14.418,5.107 14.164,5.001 13.899,5C13.633,4.999 13.378,5.103 13.19,5.29L8.6,9.88C8.038,10.443 7.723,11.205 7.723,12C7.723,12.795 8.038,13.558 8.6,14.12V14.12Z"
|
||||
android:fillColor="#272727"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="40dp"
|
||||
android:height="40dp"
|
||||
android:viewportWidth="40"
|
||||
android:viewportHeight="40">
|
||||
<path
|
||||
android:pathData="M20,4.375C23.09,4.375 26.111,5.291 28.681,7.008C31.25,8.725 33.253,11.165 34.436,14.021C35.618,16.876 35.928,20.017 35.325,23.048C34.722,26.079 33.234,28.863 31.049,31.049C28.863,33.234 26.079,34.722 23.048,35.325C20.017,35.928 16.876,35.618 14.021,34.436C11.165,33.253 8.725,31.25 7.008,28.681C5.291,26.111 4.375,23.09 4.375,20C4.383,15.858 6.032,11.889 8.961,8.961C11.889,6.032 15.858,4.383 20,4.375ZM20,34.375C22.843,34.375 25.622,33.532 27.986,31.952C30.35,30.373 32.193,28.128 33.281,25.501C34.369,22.874 34.653,19.984 34.099,17.196C33.544,14.407 32.175,11.846 30.165,9.835C28.154,7.825 25.593,6.456 22.804,5.901C20.016,5.347 17.126,5.631 14.499,6.719C11.872,7.807 9.627,9.65 8.048,12.014C6.468,14.378 5.625,17.157 5.625,20C5.629,23.811 7.145,27.465 9.84,30.16C12.535,32.855 16.189,34.371 20,34.375ZM26.875,16.875C26.875,16.628 26.802,16.386 26.664,16.181C26.527,15.975 26.332,15.815 26.103,15.72C25.875,15.625 25.624,15.601 25.381,15.649C25.139,15.697 24.916,15.816 24.741,15.991C24.566,16.166 24.447,16.389 24.399,16.631C24.351,16.874 24.375,17.125 24.47,17.353C24.565,17.582 24.725,17.777 24.931,17.914C25.136,18.052 25.378,18.125 25.625,18.125C25.956,18.125 26.274,17.993 26.509,17.759C26.743,17.524 26.875,17.206 26.875,16.875ZM15.625,16.875C15.625,16.628 15.552,16.386 15.414,16.181C15.277,15.975 15.082,15.815 14.853,15.72C14.625,15.625 14.374,15.601 14.131,15.649C13.889,15.697 13.666,15.816 13.491,15.991C13.316,16.166 13.197,16.389 13.149,16.631C13.101,16.874 13.125,17.125 13.22,17.353C13.315,17.582 13.475,17.777 13.681,17.914C13.886,18.052 14.128,18.125 14.375,18.125C14.707,18.125 15.024,17.993 15.259,17.759C15.493,17.524 15.625,17.206 15.625,16.875ZM12.969,27.188C12.926,27.258 12.899,27.337 12.887,27.418C12.875,27.5 12.879,27.583 12.899,27.663C12.92,27.743 12.956,27.818 13.005,27.884C13.054,27.949 13.116,28.005 13.188,28.047C13.284,28.096 13.391,28.123 13.5,28.125C13.61,28.124 13.719,28.095 13.814,28.041C13.91,27.986 13.99,27.907 14.047,27.813C14.65,26.768 15.518,25.9 16.563,25.297C17.608,24.694 18.793,24.376 20,24.376C21.206,24.376 22.392,24.694 23.437,25.297C24.482,25.9 25.35,26.768 25.953,27.813C25.99,27.89 26.043,27.959 26.109,28.016C26.174,28.072 26.25,28.114 26.333,28.139C26.415,28.165 26.502,28.173 26.587,28.163C26.673,28.153 26.756,28.126 26.83,28.083C26.905,28.04 26.969,27.982 27.021,27.912C27.072,27.843 27.108,27.763 27.126,27.679C27.145,27.595 27.147,27.508 27.13,27.423C27.114,27.339 27.08,27.258 27.031,27.188C26.321,25.951 25.296,24.923 24.062,24.209C22.827,23.495 21.426,23.118 20,23.118C18.574,23.118 17.173,23.495 15.938,24.209C14.704,24.923 13.679,25.951 12.969,27.188Z"
|
||||
android:fillColor="#000000"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,22 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h16v16h-16z"/>
|
||||
<path
|
||||
android:pathData="M12.667,1.333H12V0.667C12,0.49 11.93,0.32 11.805,0.195C11.68,0.07 11.51,0 11.333,0C11.156,0 10.987,0.07 10.862,0.195C10.737,0.32 10.667,0.49 10.667,0.667V1.333H5.333V0.667C5.333,0.49 5.263,0.32 5.138,0.195C5.013,0.07 4.843,0 4.667,0C4.49,0 4.32,0.07 4.195,0.195C4.07,0.32 4,0.49 4,0.667V1.333H3.333C2.45,1.334 1.602,1.686 0.977,2.311C0.353,2.936 0.001,3.783 0,4.667L0,12.667C0.001,13.55 0.353,14.398 0.977,15.023C1.602,15.647 2.45,15.999 3.333,16H12.667C13.55,15.999 14.398,15.647 15.023,15.023C15.647,14.398 15.999,13.55 16,12.667V4.667C15.999,3.783 15.647,2.936 15.023,2.311C14.398,1.686 13.55,1.334 12.667,1.333V1.333ZM1.333,4.667C1.333,4.136 1.544,3.628 1.919,3.252C2.294,2.877 2.803,2.667 3.333,2.667H12.667C13.197,2.667 13.706,2.877 14.081,3.252C14.456,3.628 14.667,4.136 14.667,4.667V5.333H1.333V4.667ZM12.667,14.667H3.333C2.803,14.667 2.294,14.456 1.919,14.081C1.544,13.706 1.333,13.197 1.333,12.667V6.667H14.667V12.667C14.667,13.197 14.456,13.706 14.081,14.081C13.706,14.456 13.197,14.667 12.667,14.667Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M8,11C8.552,11 9,10.552 9,10C9,9.448 8.552,9 8,9C7.448,9 7,9.448 7,10C7,10.552 7.448,11 8,11Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M4.667,11C5.219,11 5.667,10.552 5.667,10C5.667,9.448 5.219,9 4.667,9C4.114,9 3.667,9.448 3.667,10C3.667,10.552 4.114,11 4.667,11Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
<path
|
||||
android:pathData="M11.333,11C11.886,11 12.333,10.552 12.333,10C12.333,9.448 11.886,9 11.333,9C10.781,9 10.333,9.448 10.333,10C10.333,10.552 10.781,11 11.333,11Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,30 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="20dp"
|
||||
android:height="18dp"
|
||||
android:viewportWidth="20"
|
||||
android:viewportHeight="18">
|
||||
<path
|
||||
android:pathData="M17.245,3.579H7.391M2.464,13.602H5.748H2.464ZM17.245,13.602H9.033H17.245ZM2.464,8.59H12.318H2.464ZM17.245,8.59H15.603H17.245ZM2.464,3.579H4.106H2.464Z"
|
||||
android:strokeWidth="1.33333"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#ffffff"
|
||||
android:strokeLineCap="round"/>
|
||||
<path
|
||||
android:pathData="M7.391,12.17C8.298,12.17 9.033,12.811 9.033,13.601C9.033,14.392 8.298,15.033 7.391,15.033C6.484,15.033 5.748,14.392 5.748,13.601C5.748,12.811 6.484,12.17 7.391,12.17Z"
|
||||
android:strokeWidth="1.33333"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#ffffff"
|
||||
android:strokeLineCap="round"/>
|
||||
<path
|
||||
android:pathData="M13.96,7.159C14.868,7.159 15.603,7.8 15.603,8.591C15.603,9.381 14.868,10.023 13.96,10.023C13.054,10.023 12.318,9.381 12.318,8.591C12.318,7.8 13.054,7.159 13.96,7.159Z"
|
||||
android:strokeWidth="1.33333"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#ffffff"
|
||||
android:strokeLineCap="round"/>
|
||||
<path
|
||||
android:pathData="M5.748,2.147C6.656,2.147 7.391,2.788 7.391,3.579C7.391,4.37 6.656,5.011 5.748,5.011C4.841,5.011 4.106,4.37 4.106,3.579C4.106,2.788 4.841,2.147 5.748,2.147Z"
|
||||
android:strokeWidth="1.33333"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#ffffff"
|
||||
android:strokeLineCap="round"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="50dp"
|
||||
android:height="50dp"
|
||||
android:viewportWidth="50"
|
||||
android:viewportHeight="50">
|
||||
<path
|
||||
android:pathData="M25,5.469C28.863,5.469 32.639,6.614 35.851,8.76C39.063,10.906 41.566,13.957 43.044,17.526C44.523,21.095 44.91,25.022 44.156,28.81C43.402,32.599 41.542,36.079 38.811,38.811C36.079,41.542 32.599,43.402 28.81,44.156C25.022,44.91 21.095,44.523 17.526,43.044C13.957,41.566 10.906,39.063 8.76,35.851C6.614,32.639 5.469,28.863 5.469,25C5.479,19.823 7.54,14.861 11.201,11.201C14.861,7.54 19.823,5.479 25,5.469ZM25,42.969C28.554,42.969 32.028,41.915 34.983,39.94C37.938,37.966 40.241,35.16 41.601,31.876C42.961,28.593 43.317,24.98 42.624,21.494C41.93,18.009 40.219,14.807 37.706,12.294C35.193,9.781 31.991,8.07 28.506,7.377C25.02,6.683 21.407,7.039 18.124,8.399C14.84,9.759 12.034,12.062 10.059,15.017C8.085,17.972 7.031,21.446 7.031,25C7.036,29.764 8.931,34.331 12.3,37.7C15.669,41.069 20.236,42.964 25,42.969ZM33.594,21.094C33.594,20.785 33.502,20.483 33.33,20.226C33.159,19.969 32.915,19.768 32.629,19.65C32.344,19.532 32.029,19.501 31.726,19.561C31.423,19.622 31.145,19.77 30.926,19.989C30.708,20.207 30.559,20.486 30.499,20.789C30.438,21.092 30.469,21.406 30.588,21.692C30.706,21.977 30.906,22.221 31.163,22.393C31.42,22.565 31.722,22.656 32.031,22.656C32.446,22.656 32.843,22.492 33.136,22.199C33.429,21.906 33.594,21.508 33.594,21.094ZM19.531,21.094C19.531,20.785 19.44,20.483 19.268,20.226C19.096,19.969 18.852,19.768 18.567,19.65C18.281,19.532 17.967,19.501 17.664,19.561C17.361,19.622 17.082,19.77 16.864,19.989C16.645,20.207 16.497,20.486 16.436,20.789C16.376,21.092 16.407,21.406 16.525,21.692C16.643,21.977 16.844,22.221 17.101,22.393C17.358,22.565 17.66,22.656 17.969,22.656C18.383,22.656 18.781,22.492 19.074,22.199C19.367,21.906 19.531,21.508 19.531,21.094ZM16.211,30.078C17.099,31.624 18.379,32.908 19.923,33.801C21.466,34.694 23.217,35.165 25,35.165C26.783,35.165 28.534,34.694 30.077,33.801C31.621,32.908 32.901,31.624 33.789,30.078C33.85,29.989 33.892,29.889 33.913,29.783C33.933,29.677 33.932,29.569 33.908,29.463C33.884,29.358 33.839,29.259 33.776,29.173C33.712,29.086 33.631,29.013 33.538,28.959C33.444,28.905 33.341,28.871 33.234,28.858C33.127,28.846 33.019,28.856 32.916,28.888C32.813,28.92 32.717,28.973 32.636,29.043C32.554,29.113 32.488,29.2 32.441,29.297C31.687,30.603 30.602,31.687 29.296,32.441C27.99,33.195 26.508,33.592 25,33.592C23.492,33.592 22.01,33.195 20.704,32.441C19.398,31.687 18.313,30.603 17.559,29.297C17.512,29.2 17.446,29.113 17.364,29.043C17.283,28.973 17.187,28.92 17.084,28.888C16.981,28.856 16.873,28.846 16.766,28.858C16.659,28.871 16.556,28.905 16.462,28.959C16.369,29.013 16.288,29.086 16.224,29.173C16.161,29.259 16.115,29.358 16.092,29.463C16.068,29.569 16.067,29.677 16.087,29.783C16.108,29.889 16.15,29.989 16.211,30.078Z"
|
||||
android:fillColor="#000000"/>
|
||||
</vector>
|
||||
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<clip-path
|
||||
android:pathData="M0,0h16v16h-16z"/>
|
||||
<path
|
||||
android:pathData="M0.667,16C0.843,16 1.013,15.93 1.138,15.805L5.551,11.392L6.383,12.253C7.01,12.916 7.874,13.303 8.786,13.329C9.09,13.33 9.392,13.279 9.679,13.178C10.122,13.026 10.511,12.748 10.799,12.378C11.087,12.009 11.262,11.564 11.302,11.097C11.374,10.421 11.324,9.737 11.154,9.079L11.011,8.384C10.984,8.273 10.986,8.157 11.017,8.047C11.048,7.937 11.106,7.836 11.187,7.755L12.245,6.697C12.287,6.655 12.343,6.631 12.403,6.63C12.423,6.626 12.445,6.628 12.464,6.636C12.484,6.644 12.501,6.657 12.514,6.673C12.849,7.028 13.299,7.253 13.784,7.305C14.27,7.358 14.758,7.236 15.161,6.961C15.398,6.793 15.595,6.574 15.739,6.322C15.882,6.069 15.969,5.788 15.993,5.498C16.017,5.209 15.978,4.917 15.878,4.644C15.778,4.371 15.62,4.124 15.414,3.918L12.133,0.636C11.796,0.291 11.349,0.075 10.869,0.026C10.389,-0.023 9.907,0.099 9.508,0.369C9.271,0.538 9.074,0.756 8.93,1.009C8.786,1.262 8.699,1.543 8.675,1.832C8.651,2.122 8.691,2.413 8.791,2.686C8.891,2.959 9.049,3.207 9.255,3.413L9.305,3.463C9.343,3.502 9.365,3.554 9.365,3.608C9.365,3.662 9.343,3.714 9.305,3.753L8.239,4.819C8.157,4.901 8.055,4.96 7.944,4.991C7.832,5.021 7.715,5.022 7.603,4.993L7.058,4.854C6.388,4.679 5.692,4.626 5.003,4.699C4.515,4.749 4.051,4.938 3.667,5.244C3.282,5.549 2.993,5.958 2.833,6.423C2.659,6.9 2.625,7.417 2.734,7.913C2.844,8.409 3.093,8.863 3.452,9.223L4.624,10.436L0.195,14.862C0.102,14.955 0.039,15.074 0.013,15.203C-0.013,15.333 0,15.467 0.051,15.589C0.101,15.71 0.187,15.814 0.296,15.888C0.406,15.961 0.535,16 0.667,16ZM4.09,6.867C4.165,6.64 4.304,6.439 4.491,6.29C4.678,6.14 4.904,6.048 5.142,6.024C5.295,6.008 5.45,6 5.604,6C5.982,6 6.359,6.049 6.725,6.145L7.273,6.285C7.609,6.37 7.962,6.366 8.296,6.275C8.631,6.183 8.935,6.006 9.181,5.761L10.248,4.695C10.536,4.406 10.697,4.015 10.697,3.607C10.697,3.2 10.536,2.809 10.248,2.52L10.197,2.469C10.128,2.401 10.075,2.317 10.042,2.226C10.008,2.134 9.995,2.036 10.004,1.939C10.012,1.842 10.042,1.748 10.091,1.664C10.14,1.579 10.207,1.507 10.286,1.451C10.429,1.365 10.596,1.33 10.761,1.353C10.926,1.376 11.077,1.455 11.191,1.577L14.473,4.86C14.542,4.929 14.595,5.012 14.629,5.104C14.662,5.195 14.675,5.293 14.667,5.39C14.658,5.487 14.628,5.581 14.579,5.666C14.531,5.75 14.464,5.823 14.384,5.879C14.24,5.966 14.07,6 13.904,5.976C13.737,5.952 13.585,5.87 13.472,5.745C13.335,5.604 13.171,5.491 12.989,5.414C12.808,5.338 12.613,5.298 12.416,5.297C12,5.299 11.602,5.463 11.304,5.753L10.247,6.811C10.007,7.052 9.832,7.349 9.739,7.676C9.646,8.002 9.637,8.347 9.714,8.678L9.86,9.383C9.994,9.898 10.035,10.432 9.981,10.961C9.965,11.176 9.886,11.383 9.753,11.554C9.621,11.725 9.442,11.853 9.237,11.923C8.896,12.013 8.537,12.004 8.2,11.898C7.864,11.792 7.565,11.593 7.337,11.323L4.404,8.29C4.221,8.108 4.094,7.877 4.039,7.624C3.983,7.372 4.001,7.109 4.09,6.867Z"
|
||||
android:fillColor="#272727"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,8 @@
|
||||
<vector android:height="50dp" android:viewportHeight="150"
|
||||
android:viewportWidth="150" android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#3C95FF" android:pathData="M10,0L140,0A10,10 0,0 1,150 10L150,140A10,10 0,0 1,140 150L10,150A10,10 0,0 1,0 140L0,10A10,10 0,0 1,10 0z"/>
|
||||
<group>
|
||||
<clip-path android:pathData="M45,35L105,35A10,10 0,0 1,115 45L115,105A10,10 0,0 1,105 115L45,115A10,10 0,0 1,35 105L35,45A10,10 0,0 1,45 35z"/>
|
||||
<path android:fillColor="#ffffff" android:pathData="M108.52,52.43L83.94,40.72C78.53,37.49 71.8,37.43 66.33,40.57L41.48,52.43C41.38,52.48 41.29,52.53 41.2,52.58C35.3,55.96 33.25,63.47 36.62,69.37C37.77,71.37 39.45,73.01 41.48,74.1L48.33,77.37V93.7C48.34,101 53.09,107.46 60.06,109.63C64.92,111.03 69.95,111.72 75,111.67C80.05,111.72 85.08,111.04 89.94,109.64C96.91,107.47 101.66,101.02 101.67,93.72V77.36L108.33,74.17V101.67C108.33,103.51 109.82,105 111.67,105C113.51,105 115,103.51 115,101.67V61.67C115.02,57.75 111.93,54.14 108.52,52.43ZM95,93.72C95,98.08 92.17,101.95 88,103.26C83.77,104.47 79.39,105.05 75,105C70.6,105.05 66.23,104.47 62,103.26C57.83,101.95 55,98.08 55,93.72V80.54L66.06,85.81C68.78,87.43 71.9,88.28 75.07,88.27C78.09,88.29 81.06,87.49 83.66,85.96L95,80.54V93.72ZM105.67,68.08L80.53,80.08C77.02,82.12 72.68,82.07 69.23,79.93L44.63,68.23C41.89,66.75 40.86,63.33 42.34,60.59C42.84,59.66 43.59,58.9 44.51,58.37L69.49,46.44C73,44.4 77.34,44.46 80.79,46.59L105.37,58.3C107.18,59.3 108.31,61.2 108.33,63.27C108.34,65.22 107.33,67.05 105.67,68.08Z"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,8 @@
|
||||
<vector android:height="50dp" android:viewportHeight="150"
|
||||
android:viewportWidth="150" android:width="50dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#3C95FF" android:pathData="M75,75m-75,0a75,75 0,1 1,150 0a75,75 0,1 1,-150 0"/>
|
||||
<group>
|
||||
<clip-path android:pathData="M35,35h80v80h-80z"/>
|
||||
<path android:fillColor="#ffffff" android:pathData="M108.52,52.43L83.94,40.72C78.53,37.49 71.8,37.43 66.33,40.57L41.48,52.43C41.38,52.48 41.29,52.53 41.2,52.58C35.3,55.96 33.25,63.47 36.62,69.37C37.77,71.37 39.45,73.01 41.48,74.1L48.33,77.37V93.7C48.34,101 53.09,107.46 60.06,109.63C64.92,111.03 69.95,111.72 75,111.67C80.05,111.72 85.08,111.04 89.94,109.64C96.91,107.47 101.66,101.02 101.67,93.72V77.36L108.33,74.17V101.67C108.33,103.51 109.82,105 111.67,105C113.51,105 115,103.51 115,101.67V61.67C115.02,57.75 111.93,54.14 108.52,52.43ZM95,93.72C95,98.08 92.17,101.95 88,103.26C83.77,104.47 79.39,105.05 75,105C70.6,105.05 66.23,104.47 62,103.26C57.83,101.95 55,98.08 55,93.72V80.54L66.06,85.81C68.78,87.43 71.9,88.28 75.07,88.27C78.09,88.29 81.06,87.49 83.66,85.96L95,80.54V93.72ZM105.67,68.08L80.53,80.08C77.02,82.12 72.68,82.07 69.23,79.93L44.63,68.23C41.89,66.75 40.86,63.33 42.34,60.59C42.84,59.66 43.59,58.9 44.51,58.37L69.49,46.44C73,44.4 77.34,44.46 80.79,46.59L105.37,58.3C107.18,59.3 108.31,61.2 108.33,63.27C108.34,65.22 107.33,67.05 105.67,68.08Z"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:fontProviderAuthority="com.google.android.gms.fonts"
|
||||
app:fontProviderPackage="com.google.android.gms"
|
||||
app:fontProviderQuery="name=Inter&weight=700"
|
||||
app:fontProviderCerts="@array/com_google_android_gms_fonts_certs">
|
||||
</font-family>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 982 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">MyDnevnik</string>
|
||||
<string name="title_header">Welcome to MyDnevnik</string>
|
||||
<string name="title_marks">Marks</string>
|
||||
<string name="title_schedule">Schedule</string>
|
||||
<string name="title_hw">Home work</string>
|
||||
<string name="title_settings">Settings</string>
|
||||
<string name="title_leave_from_acconut">Leave</string>
|
||||
<string name="title_welcome">Welcome</string>
|
||||
<string name="title_login">Username/password</string>
|
||||
<string name="title_password">Password</string>
|
||||
<string name="title_forget_password">Forgot your password?</string>
|
||||
<string name="title_remember_me">Remember me</string>
|
||||
<string name="title_sign_in">Sign in</string>
|
||||
<string name="title_sign_up">Sign up</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="purple_200">#FFBB86FC</color>
|
||||
<color name="purple_500">#FF6200EE</color>
|
||||
<color name="purple_700">#FF3700B3</color>
|
||||
<color name="teal_200">#FF03DAC5</color>
|
||||
<color name="teal_700">#FF018786</color>
|
||||
<color name="black">#FF000000</color>
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
</resources>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<array name="com_google_android_gms_fonts_certs">
|
||||
<item>@array/com_google_android_gms_fonts_certs_dev</item>
|
||||
<item>@array/com_google_android_gms_fonts_certs_prod</item>
|
||||
</array>
|
||||
<string-array name="com_google_android_gms_fonts_certs_dev">
|
||||
<item>
|
||||
MIIEqDCCA5CgAwIBAgIJANWFuGx90071MA0GCSqGSIb3DQEBBAUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAeFw0wODA0MTUyMzM2NTZaFw0zNTA5MDEyMzM2NTZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBANbOLggKv+IxTdGNs8/TGFy0PTP6DHThvbbR24kT9ixcOd9W+EaBPWW+wPPKQmsHxajtWjmQwWfna8mZuSeJS48LIgAZlKkpFeVyxW0qMBujb8X8ETrWy550NaFtI6t9+u7hZeTfHwqNvacKhp1RbE6dBRGWynwMVX8XW8N1+UjFaq6GCJukT4qmpN2afb8sCjUigq0GuMwYXrFVee74bQgLHWGJwPmvmLHC69EH6kWr22ijx4OKXlSIx2xT1AsSHee70w5iDBiK4aph27yH3TxkXy9V89TDdexAcKk/cVHYNnDBapcavl7y0RiQ4biu8ymM8Ga/nmzhRKya6G0cGw8CAQOjgfwwgfkwHQYDVR0OBBYEFI0cxb6VTEM8YYY6FbBMvAPyT+CyMIHJBgNVHSMEgcEwgb6AFI0cxb6VTEM8YYY6FbBMvAPyT+CyoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJANWFuGx90071MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADggEBABnTDPEF+3iSP0wNfdIjIz1AlnrPzgAIHVvXxunW7SBrDhEglQZBbKJEk5kT0mtKoOD1JMrSu1xuTKEBahWRbqHsXclaXjoBADb0kkjVEJu/Lh5hgYZnOjvlba8Ld7HCKePCVePoTJBdI4fvugnL8TsgK05aIskyY0hKI9L8KfqfGTl1lzOv2KoWD0KWwtAWPoGChZxmQ+nBli+gwYMzM1vAkP+aayLe0a1EQimlOalO762r0GXO0ks+UeXde2Z4e+8S/pf7pITEI/tP+MxJTALw9QUWEv9lKTk+jkbqxbsh8nfBUapfKqYn0eidpwq2AzVp3juYl7//fKnaPhJD9gs=
|
||||
</item>
|
||||
</string-array>
|
||||
<string-array name="com_google_android_gms_fonts_certs_prod">
|
||||
<item>
|
||||
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK
|
||||
</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<array name="preloaded_fonts" translatable="false">
|
||||
<item>@font/inter_bold</item>
|
||||
</array>
|
||||
</resources>
|
||||
@@ -0,0 +1,16 @@
|
||||
<resources>
|
||||
<string name="app_name">MyDnevnik</string>
|
||||
<string name="title_header">Добро пожаловать в дневник</string>
|
||||
<string name="title_marks">Оценки</string>
|
||||
<string name="title_schedule">Расписание</string>
|
||||
<string name="title_hw">Домашнее занадние</string>
|
||||
<string name="title_settings">Настройки</string>
|
||||
<string name="title_leave_from_acconut">Выйти из аккаунта</string>
|
||||
<string name="title_welcome">Добро пожаловать в дневник</string>
|
||||
<string name="title_login">Логин</string>
|
||||
<string name="title_password">Пароль</string>
|
||||
<string name="title_forget_password">Забыли пароль?</string>
|
||||
<string name="title_remember_me">Запомнить меня</string>
|
||||
<string name="title_sign_in">Войти</string>
|
||||
<string name="title_sign_up">Нет аккаунта? Расскажем как его зарегистрировать и подключить к школе</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.MyDnevnik" parent="android:Theme.Material.Light.NoActionBar">
|
||||
<item name="android:statusBarColor">@color/purple_700</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
Sample backup rules file; uncomment and customize as necessary.
|
||||
See https://developer.android.com/guide/topics/data/autobackup
|
||||
for details.
|
||||
Note: This file is ignored for devices older that API 31
|
||||
See https://developer.android.com/about/versions/12/backup-restore
|
||||
-->
|
||||
<full-backup-content>
|
||||
<!--
|
||||
<include domain="sharedpref" path="."/>
|
||||
<exclude domain="sharedpref" path="device.xml"/>
|
||||
-->
|
||||
</full-backup-content>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
Sample data extraction rules file; uncomment and customize as necessary.
|
||||
See https://developer.android.com/about/versions/12/backup-restore#xml-changes
|
||||
for details.
|
||||
-->
|
||||
<data-extraction-rules>
|
||||
<cloud-backup>
|
||||
<!-- TODO: Use <include> and <exclude> to control what is backed up.
|
||||
<include .../>
|
||||
<exclude .../>
|
||||
-->
|
||||
</cloud-backup>
|
||||
<!--
|
||||
<device-transfer>
|
||||
<include .../>
|
||||
<exclude .../>
|
||||
</device-transfer>
|
||||
-->
|
||||
</data-extraction-rules>
|
||||
@@ -0,0 +1,17 @@
|
||||
package ru.megboyzz.dnevnik
|
||||
|
||||
import org.junit.Test
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
class ExampleUnitTest {
|
||||
@Test
|
||||
fun addition_isCorrect() {
|
||||
assertEquals(4, 2 + 2)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
buildscript {
|
||||
ext {
|
||||
compose_version = '1.1.0'
|
||||
}
|
||||
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
plugins {
|
||||
id 'com.android.application' version '7.2.1' apply false
|
||||
id 'com.android.library' version '7.2.1' apply false
|
||||
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
# Project-wide Gradle settings.
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
# any settings specified in this file.
|
||||
# For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
# AndroidX package structure to make it clearer which packages are bundled with the
|
||||
# Android operating system, and which are packaged with your app"s APK
|
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
android.useAndroidX=true
|
||||
# Kotlin code style for this project: "official" or "obsolete":
|
||||
kotlin.code.style=official
|
||||
# Enables namespacing of each library's R class so that its R class includes only the
|
||||
# resources declared in the library itself and none from the library's dependencies,
|
||||
# thereby reducing the size of the R class for that library
|
||||
android.nonTransitiveRClass=true
|
||||
@@ -0,0 +1,6 @@
|
||||
#Mon Sep 26 23:09:42 MSK 2022
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
@@ -0,0 +1,185 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## 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='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# 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 or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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=`expr $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"
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
@@ -0,0 +1,89 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@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 Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@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="-Xmx64m" "-Xms64m"
|
||||
|
||||
@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 execute
|
||||
|
||||
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 execute
|
||||
|
||||
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
|
||||
|
||||
: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 %*
|
||||
|
||||
: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
|
||||
@@ -0,0 +1,16 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
rootProject.name = "MyDnevnik"
|
||||
include ':app'
|
||||