CheckInCheckOutDataStore

This commit is contained in:
sathwikcs
2024-10-19 11:49:55 +05:30
parent 8187c0b2dc
commit a5a314f39f
2 changed files with 86 additions and 3 deletions

View File

@@ -0,0 +1,86 @@
package `in`.sminnovations.attendanceapp.screens.home.data
import android.content.Context
import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject
import javax.inject.Singleton
private const val DATASTORE_NAME = "check_in_check_out_prefs"
private val Context.dataStore by preferencesDataStore(name = DATASTORE_NAME)
@Singleton
class CheckInCheckOutDataStore @Inject constructor(@ApplicationContext context: Context) {
private val dataStore = context.dataStore
private val CHECK_IN_KEY = stringPreferencesKey("check_in_id")
private val CHECK_OUT_KEY = stringPreferencesKey("check_out_id")
private val CHECK_IN_Date = stringPreferencesKey("check_in_date_id")
private val IS_CHECK_IN = booleanPreferencesKey("is_checked_in_id")
private val IS_CHECK_OUT = booleanPreferencesKey("is_checked_in_id")
val checkInId: Flow<String> = dataStore.data.map { preferences ->
preferences[CHECK_IN_KEY] ?: ""
}
val checkOutId: Flow<String> = dataStore.data.map { preferences ->
preferences[CHECK_OUT_KEY] ?: ""
}
val checkInDate: Flow<String> = dataStore.data.map { preferences ->
preferences[CHECK_IN_Date] ?: ""
}
val isCheckedIn : Flow<Boolean> = dataStore.data.map { preferences ->
preferences[IS_CHECK_IN] ?: false
}
val isCheckedOut : Flow<Boolean> = dataStore.data.map { preferences ->
preferences[IS_CHECK_OUT] ?: false
}
suspend fun saveLoginData(checkIn: String, checkOut: String) {
dataStore.edit { preferences ->
preferences[CHECK_IN_KEY] = checkIn
preferences[CHECK_OUT_KEY] = checkOut
}
}
suspend fun saveLoginDate(checkDate: String) {
dataStore.edit { preferences ->
preferences[CHECK_IN_Date] = checkDate
}
}
suspend fun saveIsLogIn(isCheckIn: Boolean) {
dataStore.edit { preferences ->
preferences[IS_CHECK_IN] = isCheckIn
}
}
suspend fun saveIsLogOut(isCheckOut: Boolean) {
dataStore.edit { preferences ->
preferences[IS_CHECK_OUT] = isCheckOut
}
}
suspend fun clearLoginData() {
dataStore.edit { preferences ->
preferences.remove(CHECK_IN_Date)
preferences.remove(IS_CHECK_OUT)
preferences.remove(IS_CHECK_IN)
preferences.remove(CHECK_IN_KEY)
preferences.remove(CHECK_OUT_KEY)
}
}
}

View File

@@ -1,3 +0,0 @@
package `in`.sminnovations.attendanceapp.screens.home.data
class EmployeeData