Skip to content

Commit

Permalink
Move iconRow to its own file
Browse files Browse the repository at this point in the history
  • Loading branch information
greenart7c3 committed Feb 17, 2025
1 parent 7c1319d commit c6c6a63
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 49 deletions.
50 changes: 1 addition & 49 deletions app/src/main/java/com/greenart7c3/citrine/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.compose.setContent
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
Expand Down Expand Up @@ -40,7 +38,6 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
Expand All @@ -50,16 +47,12 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
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.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.compose.LocalLifecycleOwner
Expand All @@ -82,6 +75,7 @@ import com.greenart7c3.citrine.ui.HomeViewModel
import com.greenart7c3.citrine.ui.LogcatScreen
import com.greenart7c3.citrine.ui.SettingsScreen
import com.greenart7c3.citrine.ui.components.DatabaseInfo
import com.greenart7c3.citrine.ui.components.IconRow
import com.greenart7c3.citrine.ui.components.RelayInfo
import com.greenart7c3.citrine.ui.dialogs.ImportEventsDialog
import com.greenart7c3.citrine.ui.navigation.Route
Expand All @@ -96,48 +90,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

@OptIn(ExperimentalFoundationApi::class)
@Composable
fun IconRow(
center: Boolean = false,
title: String,
icon: ImageVector,
tint: Color,
onClick: () -> Unit,
onLongClick: (() -> Unit)? = null,
) {
Row(
modifier = Modifier
.fillMaxWidth()
.combinedClickable(
onClick = onClick,
onLongClick = onLongClick,
),
) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 15.dp),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = if (center) Arrangement.Center else Arrangement.Start,
) {
Icon(
icon,
null,
modifier = Modifier.size(22.dp),
tint = tint,
)
Text(
modifier = Modifier.padding(start = 16.dp),
text = title,
fontSize = 18.sp,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
}
}

class MainActivity : ComponentActivity() {
private val storageHelper = SimpleStorageHelper(this@MainActivity)

Expand Down
61 changes: 61 additions & 0 deletions app/src/main/java/com/greenart7c3/citrine/ui/components/IconRow.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package com.greenart7c3.citrine.ui.components

import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
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.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

@OptIn(ExperimentalFoundationApi::class)
@Composable
fun IconRow(
center: Boolean = false,
title: String,
icon: ImageVector,
tint: Color,
onClick: () -> Unit,
onLongClick: (() -> Unit)? = null,
) {
Row(
modifier = Modifier
.fillMaxWidth()
.combinedClickable(
onClick = onClick,
onLongClick = onLongClick,
),
) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 15.dp),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = if (center) Arrangement.Center else Arrangement.Start,
) {
Icon(
icon,
null,
modifier = Modifier.size(22.dp),
tint = tint,
)
Text(
modifier = Modifier.padding(start = 16.dp),
text = title,
fontSize = 18.sp,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
}
}

0 comments on commit c6c6a63

Please sign in to comment.