1package com.parseable.android.ui.screens.about
3import android.content.Intent
5import androidx.compose.foundation.Image
6import androidx.compose.foundation.layout.*
7import androidx.compose.foundation.rememberScrollState
8import androidx.compose.foundation.verticalScroll
9import androidx.compose.material.icons.Icons
10import androidx.compose.material.icons.automirrored.filled.ArrowBack
11import androidx.compose.material.icons.filled.*
12import androidx.compose.material3.*
13import androidx.compose.runtime.Composable
14import androidx.compose.ui.Alignment
15import androidx.compose.ui.Modifier
16import androidx.compose.ui.platform.LocalContext
17import androidx.compose.ui.res.painterResource
18import androidx.compose.ui.text.font.FontWeight
19import androidx.compose.ui.unit.dp
20import com.parseable.android.BuildConfig
21import com.parseable.android.R
23private const val GITHUB_REPO_URL = "https://github.com/parseablehq/parseable-android"
24private const val PARSEABLE_WEBSITE_URL = "https://www.parseable.com"
26@OptIn(ExperimentalMaterial3Api::class)
31 val context = LocalContext.current
36 title = { Text("About") },
38 IconButton(onClick = onBack) {
39 Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
49 .verticalScroll(rememberScrollState())
51 verticalArrangement = Arrangement.spacedBy(16.dp),
55 modifier = Modifier.fillMaxWidth(),
56 elevation = CardDefaults.cardElevation(defaultElevation = 1.dp),
62 horizontalAlignment = Alignment.CenterHorizontally,
65 painter = painterResource(id = R.mipmap.ic_launcher),
66 contentDescription = "Parseable logo",
67 modifier = Modifier.size(80.dp),
69 Spacer(modifier = Modifier.height(12.dp))
72 style = MaterialTheme.typography.headlineSmall,
73 fontWeight = FontWeight.Bold,
76 text = "Android Client",
77 style = MaterialTheme.typography.titleMedium,
78 color = MaterialTheme.colorScheme.onSurfaceVariant,
80 Spacer(modifier = Modifier.height(8.dp))
82 text = "Version ${BuildConfig.VERSION_NAME}",
83 style = MaterialTheme.typography.bodyMedium,
84 color = MaterialTheme.colorScheme.onSurfaceVariant,
91 modifier = Modifier.fillMaxWidth(),
92 elevation = CardDefaults.cardElevation(defaultElevation = 1.dp),
94 Column(modifier = Modifier.padding(16.dp)) {
95 Row(verticalAlignment = Alignment.CenterVertically) {
98 contentDescription = null,
99 tint = MaterialTheme.colorScheme.primary,
101 Spacer(modifier = Modifier.width(8.dp))
104 style = MaterialTheme.typography.titleMedium,
105 fontWeight = FontWeight.Bold,
108 Spacer(modifier = Modifier.height(12.dp))
110 text = "Parseable is an open-source log analytics platform. " +
111 "This app connects to a Parseable server instance and lets you " +
112 "browse, search, filter, and live-tail log data.",
113 style = MaterialTheme.typography.bodyMedium,
120 modifier = Modifier.fillMaxWidth(),
121 elevation = CardDefaults.cardElevation(defaultElevation = 1.dp),
123 Column(modifier = Modifier.padding(16.dp)) {
124 Row(verticalAlignment = Alignment.CenterVertically) {
127 contentDescription = null,
128 tint = MaterialTheme.colorScheme.primary,
130 Spacer(modifier = Modifier.width(8.dp))
133 style = MaterialTheme.typography.titleMedium,
134 fontWeight = FontWeight.Bold,
137 Spacer(modifier = Modifier.height(12.dp))
141 context.startActivity(
142 Intent(Intent.ACTION_VIEW, Uri.parse(GITHUB_REPO_URL))
145 modifier = Modifier.fillMaxWidth(),
149 contentDescription = null,
150 modifier = Modifier.size(18.dp),
152 Spacer(modifier = Modifier.width(8.dp))
153 Text("GitHub Repository")
156 Spacer(modifier = Modifier.height(8.dp))
160 context.startActivity(
161 Intent(Intent.ACTION_VIEW, Uri.parse(PARSEABLE_WEBSITE_URL))
164 modifier = Modifier.fillMaxWidth(),
167 Icons.Filled.Language,
168 contentDescription = null,
169 modifier = Modifier.size(18.dp),
171 Spacer(modifier = Modifier.width(8.dp))
172 Text("Parseable Website")
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list