mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 08:45:27 +02:00
Option to clear cache
This commit is contained in:
parent
59c151d2a6
commit
5109449907
@ -1419,4 +1419,5 @@ Used in this dialog window. Should be short -->
|
|||||||
<string name="calculator_settings_support">History view</string>
|
<string name="calculator_settings_support">History view</string>
|
||||||
<string name="converter_settings_support">Unit groups, sorting, formatting</string>
|
<string name="converter_settings_support">Unit groups, sorting, formatting</string>
|
||||||
<string name="display_settings">Display</string>
|
<string name="display_settings">Display</string>
|
||||||
|
<string name="clear_cache">Clear cache</string>
|
||||||
</resources>
|
</resources>
|
@ -31,4 +31,7 @@ interface CurrencyRatesDao {
|
|||||||
|
|
||||||
@Query("SELECT DISTINCT * FROM currency_rates WHERE timestamp = (SELECT MAX(timestamp) FROM currency_rates) AND base_unit_id = :baseId")
|
@Query("SELECT DISTINCT * FROM currency_rates WHERE timestamp = (SELECT MAX(timestamp) FROM currency_rates) AND base_unit_id = :baseId")
|
||||||
suspend fun getLatestRates(baseId: String): List<CurrencyRatesEntity>
|
suspend fun getLatestRates(baseId: String): List<CurrencyRatesEntity>
|
||||||
|
|
||||||
|
@Query("DELETE FROM currency_rates")
|
||||||
|
suspend fun clear()
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ dependencies {
|
|||||||
implementation(libs.androidx.appcompat.appcompat)
|
implementation(libs.androidx.appcompat.appcompat)
|
||||||
|
|
||||||
implementation(project(":data:common"))
|
implementation(project(":data:common"))
|
||||||
|
implementation(project(":data:database"))
|
||||||
implementation(project(":data:model"))
|
implementation(project(":data:model"))
|
||||||
implementation(project(":data:userprefs"))
|
implementation(project(":data:userprefs"))
|
||||||
implementation(project(":data:licenses"))
|
implementation(project(":data:licenses"))
|
||||||
|
@ -21,6 +21,7 @@ package com.sadellie.unitto.feature.settings
|
|||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.Cached
|
||||||
import androidx.compose.material.icons.filled.Calculate
|
import androidx.compose.material.icons.filled.Calculate
|
||||||
import androidx.compose.material.icons.filled.Home
|
import androidx.compose.material.icons.filled.Home
|
||||||
import androidx.compose.material.icons.filled.Info
|
import androidx.compose.material.icons.filled.Info
|
||||||
@ -64,6 +65,7 @@ internal fun SettingsRoute(
|
|||||||
navigateUp = navigateUp,
|
navigateUp = navigateUp,
|
||||||
navControllerAction = navControllerAction,
|
navControllerAction = navControllerAction,
|
||||||
updateVibrations = viewModel::updateVibrations,
|
updateVibrations = viewModel::updateVibrations,
|
||||||
|
clearCache = viewModel::clearCache
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,6 +75,7 @@ private fun SettingsScreen(
|
|||||||
navigateUp: () -> Unit,
|
navigateUp: () -> Unit,
|
||||||
navControllerAction: (String) -> Unit,
|
navControllerAction: (String) -> Unit,
|
||||||
updateVibrations: (Boolean) -> Unit,
|
updateVibrations: (Boolean) -> Unit,
|
||||||
|
clearCache: () -> Unit,
|
||||||
) {
|
) {
|
||||||
val mContext = LocalContext.current
|
val mContext = LocalContext.current
|
||||||
|
|
||||||
@ -146,7 +149,15 @@ private fun SettingsScreen(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// RATE THIS APP
|
item("clear cache") {
|
||||||
|
UnittoListItem(
|
||||||
|
headlineText = stringResource(R.string.clear_cache),
|
||||||
|
icon = Icons.Default.Cached,
|
||||||
|
iconDescription = stringResource(R.string.clear_cache),
|
||||||
|
modifier = Modifier.clickable { clearCache() },
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (BuildConfig.STORE_LINK.isNotEmpty()) {
|
if (BuildConfig.STORE_LINK.isNotEmpty()) {
|
||||||
item("rate this app") {
|
item("rate this app") {
|
||||||
UnittoListItem(
|
UnittoListItem(
|
||||||
@ -179,5 +190,6 @@ private fun PreviewSettingsScreen() {
|
|||||||
navigateUp = {},
|
navigateUp = {},
|
||||||
navControllerAction = {},
|
navControllerAction = {},
|
||||||
updateVibrations = {},
|
updateVibrations = {},
|
||||||
|
clearCache = {}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ package com.sadellie.unitto.feature.settings
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.sadellie.unitto.data.common.stateIn
|
import com.sadellie.unitto.data.common.stateIn
|
||||||
|
import com.sadellie.unitto.data.database.CurrencyRatesDao
|
||||||
import com.sadellie.unitto.data.userprefs.GeneralPreferences
|
import com.sadellie.unitto.data.userprefs.GeneralPreferences
|
||||||
import com.sadellie.unitto.data.userprefs.UserPreferencesRepository
|
import com.sadellie.unitto.data.userprefs.UserPreferencesRepository
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
@ -30,6 +31,7 @@ import javax.inject.Inject
|
|||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
internal class SettingsViewModel @Inject constructor(
|
internal class SettingsViewModel @Inject constructor(
|
||||||
private val userPrefsRepository: UserPreferencesRepository,
|
private val userPrefsRepository: UserPreferencesRepository,
|
||||||
|
private val currencyRatesDao: CurrencyRatesDao,
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
val userPrefs = userPrefsRepository.generalPrefs
|
val userPrefs = userPrefsRepository.generalPrefs
|
||||||
.stateIn(viewModelScope, GeneralPreferences())
|
.stateIn(viewModelScope, GeneralPreferences())
|
||||||
@ -40,4 +42,8 @@ internal class SettingsViewModel @Inject constructor(
|
|||||||
fun updateVibrations(enabled: Boolean) = viewModelScope.launch {
|
fun updateVibrations(enabled: Boolean) = viewModelScope.launch {
|
||||||
userPrefsRepository.updateVibrations(enabled)
|
userPrefsRepository.updateVibrations(enabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun clearCache() = viewModelScope.launch {
|
||||||
|
currencyRatesDao.clear()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user