mirror of
https://github.com/f-droid/fdroidclient.git
synced 2026-04-18 13:57:34 -04:00
Flesh out About page a bit more
This commit is contained in:
@@ -39,6 +39,7 @@ android {
|
||||
}
|
||||
buildFeatures {
|
||||
compose = true
|
||||
buildConfig = true
|
||||
}
|
||||
packaging {
|
||||
resources {
|
||||
|
||||
@@ -4,9 +4,8 @@
|
||||
<application
|
||||
android:name=".App"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.Fdroidclient">
|
||||
<activity
|
||||
|
||||
@@ -37,24 +37,24 @@ class MainViewModel @Inject constructor(
|
||||
|
||||
private val scope = CoroutineScope(viewModelScope.coroutineContext + AndroidUiDispatcher.Main)
|
||||
val categories = listOf(
|
||||
Pair(app.getString(R.string.category_Internet), R.drawable.category_internet),
|
||||
Pair(app.getString(R.string.category_Games), R.drawable.category_games),
|
||||
Pair(app.getString(R.string.category_Navigation), R.drawable.category_navigation),
|
||||
Pair(app.getString(R.string.category_Multimedia), R.drawable.category_money),
|
||||
Pair(app.getString(R.string.category_Security), R.drawable.category_security),
|
||||
Pair(app.getString(R.string.category_Reading), R.drawable.category_reading),
|
||||
Pair(app.getString(R.string.category_Time), R.drawable.category_theming),
|
||||
Pair(app.getString(R.string.category_Money), R.drawable.category_money),
|
||||
Pair(app.getString(R.string.category_Theming), R.drawable.category_theming),
|
||||
Pair(app.getString(R.string.category_Connectivity), R.drawable.category_connectivity),
|
||||
Pair(app.getString(R.string.category_Phone_SMS), R.drawable.category_system),
|
||||
Pair(app.getString(R.string.category_Internet), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Games), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Navigation), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Multimedia), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Security), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Reading), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Time), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Money), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Theming), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Connectivity), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Phone_SMS), R.drawable.ic_launcher),
|
||||
Pair(
|
||||
app.getString(R.string.category_Science_Education),
|
||||
R.drawable.category_science_education
|
||||
R.drawable.ic_launcher
|
||||
),
|
||||
Pair(app.getString(R.string.category_Sports_Health), R.drawable.category_security),
|
||||
Pair(app.getString(R.string.category_System), R.drawable.category_system),
|
||||
Pair(app.getString(R.string.category_Writing), R.drawable.category_writing),
|
||||
Pair(app.getString(R.string.category_Sports_Health), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_System), R.drawable.ic_launcher),
|
||||
Pair(app.getString(R.string.category_Writing), R.drawable.ic_launcher),
|
||||
)
|
||||
|
||||
val initialApps = buildList {
|
||||
|
||||
@@ -1,20 +1,37 @@
|
||||
package org.fdroid.basic.ui.main
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.systemBars
|
||||
import androidx.compose.foundation.layout.windowInsetsBottomHeight
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewScreenSizes
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.fdroid.basic.BuildConfig.VERSION_NAME
|
||||
import org.fdroid.basic.R
|
||||
import org.fdroid.fdroid.ui.theme.FDroidContent
|
||||
|
||||
@@ -35,20 +52,76 @@ fun About(onBackClicked: () -> Unit) {
|
||||
)
|
||||
},
|
||||
) { paddingValues ->
|
||||
Text(
|
||||
stringResource(R.string.about_title_full),
|
||||
val scrollableState = rememberScrollState()
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.padding(16.dp)
|
||||
.padding(horizontal = 16.dp)
|
||||
.padding(top = paddingValues.calculateTopPadding())
|
||||
.verticalScroll(scrollableState)
|
||||
) {
|
||||
AboutHeader(modifier = Modifier.padding(top = 32.dp))
|
||||
Text(
|
||||
text = "F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. This app makes it easy to browse, install, and keep track of updates on your device.",
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
modifier = Modifier.padding(top = 24.dp),
|
||||
)
|
||||
Column(modifier = Modifier.padding(top = 24.dp, bottom = 16.dp)) {
|
||||
val uriHandler = LocalUriHandler.current
|
||||
Text(
|
||||
text = "Links",
|
||||
fontWeight = FontWeight.Bold,
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
)
|
||||
Text(
|
||||
text = "Homepage",
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier
|
||||
.padding(top = 4.dp)
|
||||
.clickable { uriHandler.openUri("https://f-droid.org") }
|
||||
)
|
||||
Text(
|
||||
text = "Gitlab",
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
color = MaterialTheme.colorScheme.secondary,
|
||||
modifier = Modifier
|
||||
.padding(top = 4.dp)
|
||||
.clickable { uriHandler.openUri("https://gitlab.com/fdroid") }
|
||||
)
|
||||
}
|
||||
Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.systemBars))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun AboutHeader(modifier: Modifier = Modifier) {
|
||||
Column(
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
modifier = modifier.fillMaxWidth()
|
||||
) {
|
||||
Image(
|
||||
painter = painterResource(id = R.drawable.ic_launcher),
|
||||
contentDescription = null, // decorative element
|
||||
)
|
||||
Text(
|
||||
text = "${stringResource(R.string.about_version)} $VERSION_NAME",
|
||||
style = MaterialTheme.typography.bodyLarge,
|
||||
modifier = Modifier
|
||||
.padding(top = 16.dp)
|
||||
.alpha(0.75f)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@PreviewScreenSizes
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun AboutPreview() {
|
||||
FDroidContent {
|
||||
About { }
|
||||
About {}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
fun AboutPreviewDark() = AboutPreview()
|
||||
|
||||
@@ -107,12 +107,12 @@ fun CategoryBox(category: Pair<String, Int>, onCategoryTap: (String) -> Unit) {
|
||||
@Composable
|
||||
fun CategoryCarouselPreview() {
|
||||
val categories = listOf(
|
||||
Pair(stringResource(R.string.category_Time), R.drawable.category_theming),
|
||||
Pair(stringResource(R.string.category_Games), R.drawable.category_games),
|
||||
Pair(stringResource(R.string.category_Money), R.drawable.category_money),
|
||||
Pair(stringResource(R.string.category_Reading), R.drawable.category_reading),
|
||||
Pair(stringResource(R.string.category_Theming), R.drawable.category_theming),
|
||||
Pair(stringResource(R.string.category_Connectivity), R.drawable.category_connectivity),
|
||||
Pair(stringResource(R.string.category_Time), R.drawable.ic_launcher),
|
||||
Pair(stringResource(R.string.category_Games), R.drawable.ic_launcher),
|
||||
Pair(stringResource(R.string.category_Money), R.drawable.ic_launcher),
|
||||
Pair(stringResource(R.string.category_Reading), R.drawable.ic_launcher),
|
||||
Pair(stringResource(R.string.category_Theming), R.drawable.ic_launcher),
|
||||
Pair(stringResource(R.string.category_Connectivity), R.drawable.ic_launcher),
|
||||
)
|
||||
FDroidContent {
|
||||
CategoryCarousel(categories, onTitleTap = {}) {}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<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>
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_connectivity.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_development.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_games.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_graphics.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_internet.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_money.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_navigation.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_reading.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_science_education.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_security.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_system.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_theming.png
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../app//src/main/res/drawable/category_writing.png
|
||||
BIN
basic/src/main/res/drawable/ic_launcher.png
Normal file
BIN
basic/src/main/res/drawable/ic_launcher.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -1,170 +0,0 @@
|
||||
<?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>
|
||||
@@ -1,6 +0,0 @@
|
||||
<?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" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
@@ -1,6 +0,0 @@
|
||||
<?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" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
Reference in New Issue
Block a user