Implemented About screen with links and email addresses
This commit is contained in:
		| @@ -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) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -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,8 +114,13 @@ fun LearnComposable() { | ||||
|                     .padding(innerPadding) | ||||
|                     .verticalScroll(rememberScrollState()) | ||||
|             ) { | ||||
|                 Column ( | ||||
|                         modifier = Modifier | ||||
|                             .padding(16.dp, 16.dp, 16.dp, 36.dp) | ||||
|                         ) { | ||||
|  | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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) | ||||
|                 } | ||||
|             } | ||||
|         ) | ||||
|         )*/ | ||||
|     } | ||||
| } | ||||
| @@ -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> | ||||
| @@ -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> | ||||
		Reference in New Issue
	
	Block a user
	 b3s23
					b3s23