Compare commits

...

2 Commits

Author SHA1 Message Date
d72cd46830 Merge pull request 'Implemented About screen with links and email addresses' (#27) from dev into main
All checks were successful
Gitea Android Builder / Build (push) Successful in 1m54s
Reviewed-on: #27
2025-03-10 23:00:26 +03:00
b3s23
30102eb8aa Implemented About screen with links and email addresses 2025-03-11 00:59:38 +05:00
5 changed files with 117 additions and 4 deletions

View File

@ -4,10 +4,16 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Menu
@ -15,6 +21,7 @@ import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.DrawerValue
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@ -27,15 +34,30 @@ import androidx.compose.material3.rememberDrawerState
import androidx.compose.material3.rememberTopAppBarState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.ClipboardManager
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.ExperimentalTextApi
import androidx.compose.ui.text.LinkAnnotation
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextLinkStyles
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.text.withLink
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.fragment.app.Fragment
import kotlinx.coroutines.launch
import ru.vendetti.bitcoin_summarizer.ui.theme.BitcoinSummarizerTheme
import ru.vendetti.bitcoin_summarizer.ui.theme.Flame
class AboutFragment: Fragment() {
override fun onCreateView(
@ -55,7 +77,7 @@ class AboutFragment: Fragment() {
}
}
@OptIn(ExperimentalMaterial3Api::class)
@OptIn(ExperimentalMaterial3Api::class, ExperimentalTextApi::class)
@Composable
@Preview
fun AboutComposable() {
@ -112,7 +134,90 @@ fun AboutComposable() {
.padding(innerPadding)
.verticalScroll(rememberScrollState())
) {
Column(
modifier = Modifier
.padding(16.dp, 16.dp, 16.dp, 36.dp)
) {
Icon(
painter = painterResource(id = R.mipmap.ic_launcher_foreground),
contentDescription = null,
modifier = Modifier
.width(160.dp)
.height(160.dp)
.align(Alignment.CenterHorizontally)
)
Spacer(modifier = Modifier.height(16.dp))
Text(
"Репозиторий проекта",
modifier = Modifier
.align(alignment = Alignment.CenterHorizontally),
fontSize = 24.sp
)
Spacer(modifier = Modifier.height(16.dp))
val repositoryLinkString = buildAnnotatedString {
withLink(LinkAnnotation.Url(
url = "https://git.vendetti.ru/andy/bitcoin-summarizer/tags",
styles = TextLinkStyles(style = SpanStyle(color = Flame))
)
) {
append("Ссылка на репозиторий")
}
}
Text(text = repositoryLinkString)
Spacer(modifier = Modifier.height(16.dp))
HorizontalDivider()
Spacer(modifier = Modifier.height(16.dp))
Text(
"Авторы",
modifier = Modifier
.align(alignment = Alignment.CenterHorizontally),
fontSize = 24.sp
)
Spacer(modifier = Modifier.height(16.dp))
Text("Студенты гр. 9ИСП-42-21, ГБПОУ УКРТБ")
Spacer(modifier = Modifier.height(16.dp))
Text("Васильев Андрей Дмитриевич - Back-end: CI/CD (Continuous Integration), Api interactions, Database interactions")
Spacer(modifier = Modifier.height(8.dp))
SelectionContainer {
Text("andy@vendetti.ru", color = Flame)
}
Spacer(modifier = Modifier.height(16.dp))
Text("Зубарев Артемий Альбертович - Front-end: Charts, App navigation (Cicerone)")
Spacer(modifier = Modifier.height(8.dp))
SelectionContainer {
Text("artemiy.work32@gmail.com", color = Flame)
}
Spacer(modifier = Modifier.height(16.dp))
HorizontalDivider()
Spacer(modifier = Modifier.height(16.dp))
Text(
"Используемый API",
modifier = Modifier
.align(alignment = Alignment.CenterHorizontally),
fontSize = 24.sp
)
val apiLinkString = buildAnnotatedString {
withLink(LinkAnnotation.Url(
url = "https://alternative.me/crypto/api/",
styles = TextLinkStyles(style = SpanStyle(color = Flame))
)
) {
append("Ссылка на API")
}
}
Text(text = apiLinkString)
}
}
}
}

View File

@ -6,6 +6,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
@ -33,6 +34,7 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.fragment.app.Fragment
import kotlinx.coroutines.launch
import ru.vendetti.bitcoin_summarizer.ui.theme.BitcoinSummarizerTheme
@ -112,7 +114,12 @@ fun LearnComposable() {
.padding(innerPadding)
.verticalScroll(rememberScrollState())
) {
Column (
modifier = Modifier
.padding(16.dp, 16.dp, 16.dp, 36.dp)
) {
}
}
}
}

View File

@ -54,7 +54,7 @@ fun MyHamburgerModal(
}
}
)
NavigationDrawerItem(
/*NavigationDrawerItem(
colors = NavigationDrawerItemDefaults.colors(
selectedContainerColor = MaterialTheme.colorScheme.tertiary,
selectedTextColor = MaterialTheme.colorScheme.onTertiary,
@ -67,6 +67,6 @@ fun MyHamburgerModal(
App.INSTANCE.router.replaceScreen(Screens.Learn)
}
}
)
)*/
}
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<background android:drawable="@color/black2"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -7,4 +7,5 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="black2">#221E22</color>
</resources>