diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/componets/asd.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/componets/Card.kt similarity index 100% rename from app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/componets/asd.kt rename to app/src/main/java/in/sminnovations/attendanceapp/screens/home/ui/componets/Card.kt diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/settingsComponents/ClickableCard.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/settingsComponents/ClickableCard.kt new file mode 100644 index 0000000..c41ead7 --- /dev/null +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/settingsComponents/ClickableCard.kt @@ -0,0 +1,125 @@ +package `in`.sminnovations.attendanceapp.screens.settings.components.settingsComponents + +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.combinedClickable +import androidx.compose.foundation.indication +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +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.font.FontWeight +import androidx.compose.ui.unit.dp + + + +@Composable +fun ClickableCard( + title:String, + subtitle:String, + onClick: (Boolean) -> Unit, + icon: ImageVector +) { + Row( + modifier = Modifier +// .background(MaterialTheme.colorScheme.surfaceContainer) + .clickable{ onClick(true)} + .fillMaxWidth() + .padding(16.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + imageVector = icon, + contentDescription = null, + modifier = Modifier.size(24.dp) + ) + Spacer(modifier = Modifier.width(16.dp)) + Column( + modifier = Modifier + .weight(1f) + ) { + Text( + text = title, + fontWeight = FontWeight.Bold, + style = MaterialTheme.typography.bodyLarge, + ) + Text( + text = subtitle, + style = MaterialTheme.typography.bodyMedium, + ) + } + } + +} + + +@OptIn( ExperimentalFoundationApi::class) +@Composable +fun CombinedClickableCard( + title:String, + subtitle:String, + onClick: (Boolean) -> Unit, + onDoubleClick: ((Boolean) -> Unit?)? =null, + onLongClick: ((Boolean) -> Unit?)? =null, + icon: ImageVector +) { + val interactionSource = remember { MutableInteractionSource() } + Row( + modifier = Modifier +// .background(MaterialTheme.colorScheme.surfaceContainer) + .combinedClickable ( + onClick = { onClick(true) }, + onDoubleClick = { + if (onDoubleClick != null) { + onDoubleClick(true) + } + }, + onLongClick = { + if (onLongClick != null) { + onLongClick(true) + } + } + ) + .fillMaxWidth() + .padding(16.dp) + .indication(interactionSource,null) + , + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + imageVector = icon, + contentDescription = null, + modifier = Modifier.size(24.dp) + ) + Spacer(modifier = Modifier.width(16.dp)) + Column( + modifier = Modifier + .weight(1f) + ) { + Text( + text = title, + fontWeight = FontWeight.Bold, + style = MaterialTheme.typography.bodyLarge, + ) + Text( + text = subtitle, + style = MaterialTheme.typography.bodyMedium, + ) + } + } + +} diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AboutCard.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AboutCard.kt index 0701f4a..2ef5780 100644 --- a/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AboutCard.kt +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AboutCard.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import `in`.sminnovations.attendanceapp.R -import `in`.sminnovations.attendanceapp.data.dataStore.SettingsData +import `in`.sminnovations.attendanceapp.screens.settings.data.SettingsData import `in`.sminnovations.attendanceapp.screens.settings.components.settingsComponents.ClickableCard import `in`.sminnovations.attendanceapp.screens.settings.components.settingsComponents.CombinedClickableCard import kotlinx.coroutines.launch diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AppearenceCard.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AppearenceCard.kt index f698520..1fd0db6 100644 --- a/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AppearenceCard.kt +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/components/subSetting/AppearenceCard.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import `in`.sminnovations.attendanceapp.R -import `in`.sminnovations.attendanceapp.data.dataStore.SettingsData +import `in`.sminnovations.attendanceapp.screens.settings.data.SettingsData import `in`.sminnovations.attendanceapp.screens.settings.components.settingsComponents.RadioCard import `in`.sminnovations.attendanceapp.screens.settings.components.settingsComponents.SwitchCard import kotlinx.coroutines.launch diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/viewModel/SettingsViewModel.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/viewModel/SettingsViewModel.kt new file mode 100644 index 0000000..878e272 --- /dev/null +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/settings/viewModel/SettingsViewModel.kt @@ -0,0 +1,20 @@ +package `in`.sminnovations.attendanceapp.screens.settings.viewModel + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.google.firebase.firestore.FirebaseFirestore +import dagger.hilt.android.lifecycle.HiltViewModel +import `in`.sminnovations.attendanceapp.screens.login.data.LoginDataStore +import kotlinx.coroutines.launch +import javax.inject.Inject + +@HiltViewModel +class SettingsViewModel @Inject constructor( + private val loginDataStore: LoginDataStore, + private val firebaseFirestore: FirebaseFirestore +) : ViewModel() { + + + + +} \ No newline at end of file