diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ae388c2a..cb865f69 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,8 +4,6 @@ diff --git a/app/src/main/java/app/suhasdissa/vibeyou/backend/database/dao/SearchDao.kt b/app/src/main/java/app/suhasdissa/vibeyou/backend/database/dao/SearchDao.kt index 24db8985..3f99b2f7 100644 --- a/app/src/main/java/app/suhasdissa/vibeyou/backend/database/dao/SearchDao.kt +++ b/app/src/main/java/app/suhasdissa/vibeyou/backend/database/dao/SearchDao.kt @@ -13,4 +13,7 @@ interface SearchDao { @Query("SELECT * from SearchQuery") fun getSearchHistory(): List + + @Query("DELETE from SearchQuery") + fun deleteAll() } diff --git a/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/LocalMusicRepository.kt b/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/LocalMusicRepository.kt index 336a14e9..f4c1e91d 100644 --- a/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/LocalMusicRepository.kt +++ b/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/LocalMusicRepository.kt @@ -13,6 +13,7 @@ import app.suhasdissa.vibeyou.backend.data.Artist import app.suhasdissa.vibeyou.backend.data.Song import app.suhasdissa.vibeyou.backend.database.dao.SearchDao import app.suhasdissa.vibeyou.backend.database.entities.SearchQuery +import app.suhasdissa.vibeyou.utils.Pref import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -269,7 +270,11 @@ class LocalMusicRepository( return ContentUris.withAppendedId(sArtworkUri, albumId) } - fun saveSearchQuery(query: String) = searchDao.addSearchQuery(SearchQuery(id = 0, query)) + fun saveSearchQuery(query: String) { + if (Pref.sharedPreferences.getBoolean(Pref.disableSearchHistoryKey, false)) return + + searchDao.addSearchQuery(SearchQuery(id = 0, query)) + } fun getSearchHistory() = searchDao.getSearchHistory() companion object { diff --git a/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/PipedMusicRepository.kt b/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/PipedMusicRepository.kt index 22805349..76321310 100644 --- a/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/PipedMusicRepository.kt +++ b/app/src/main/java/app/suhasdissa/vibeyou/backend/repository/PipedMusicRepository.kt @@ -13,6 +13,7 @@ import app.suhasdissa.vibeyou.backend.models.SearchFilter import app.suhasdissa.vibeyou.backend.models.artists.Channel import app.suhasdissa.vibeyou.backend.models.artists.ChannelTab import app.suhasdissa.vibeyou.backend.models.playlists.PlaylistInfo +import app.suhasdissa.vibeyou.utils.Pref import app.suhasdissa.vibeyou.utils.RetrofitHelper import app.suhasdissa.vibeyou.utils.asAlbum import app.suhasdissa.vibeyou.utils.asArtist @@ -111,6 +112,10 @@ class PipedMusicRepository( fun searchLocalSong(query: String): List = songsDao.search(query).map { it.asSong } - fun saveSearchQuery(query: String) = searchDao.addSearchQuery(SearchQuery(id = 0, query)) + fun saveSearchQuery(query: String) { + if (Pref.sharedPreferences.getBoolean(Pref.disableSearchHistoryKey, false)) return + + searchDao.addSearchQuery(SearchQuery(id = 0, query)) + } fun getSearchHistory() = searchDao.getSearchHistory() } diff --git a/app/src/main/java/app/suhasdissa/vibeyou/ui/screens/settings/DatabaseSettingsScreen.kt b/app/src/main/java/app/suhasdissa/vibeyou/ui/screens/settings/DatabaseSettingsScreen.kt index b92d294a..363682b4 100644 --- a/app/src/main/java/app/suhasdissa/vibeyou/ui/screens/settings/DatabaseSettingsScreen.kt +++ b/app/src/main/java/app/suhasdissa/vibeyou/ui/screens/settings/DatabaseSettingsScreen.kt @@ -1,6 +1,7 @@ package app.suhasdissa.vibeyou.ui.screens.settings import android.annotation.SuppressLint +import android.app.Activity import android.widget.Toast import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts @@ -16,14 +17,19 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.lifecycle.viewmodel.compose.viewModel +import app.suhasdissa.vibeyou.MellowMusicApplication import app.suhasdissa.vibeyou.R import app.suhasdissa.vibeyou.backend.viewmodel.DatabaseViewModel import app.suhasdissa.vibeyou.ui.components.SettingItem +import app.suhasdissa.vibeyou.utils.Pref +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import java.text.SimpleDateFormat import java.util.Date @@ -62,6 +68,20 @@ fun DatabaseSettingsScreen( .padding(innerPadding) .nestedScroll(topBarBehavior.nestedScrollConnection) ) { + item { + val scope = rememberCoroutineScope() + + SwitchPref( + prefKey = Pref.disableSearchHistoryKey, + title = stringResource(R.string.disable_search_history) + ) { newValue -> + if (newValue) scope.launch(Dispatchers.IO) { + val app = ((context as Activity).application as MellowMusicApplication) + app.container.database.searchDao().deleteAll() + } + } + } + item { SettingItem( title = stringResource(R.string.backup), diff --git a/app/src/main/java/app/suhasdissa/vibeyou/utils/Pref.kt b/app/src/main/java/app/suhasdissa/vibeyou/utils/Pref.kt index 6ab404e6..aa446aef 100644 --- a/app/src/main/java/app/suhasdissa/vibeyou/utils/Pref.kt +++ b/app/src/main/java/app/suhasdissa/vibeyou/utils/Pref.kt @@ -14,6 +14,7 @@ object Pref { const val latestSongsSortOrderKey = "LatestSongsSortOrderKey" const val latestReverseSongsPrefKey = "LatestReverseSongsPrefKey" const val customPipedInstanceKey = "CustomPipedInstanceKey" + const val disableSearchHistoryKey = "DisableSearchHistory" lateinit var sharedPreferences: SharedPreferences diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3bc85bc0..776c27e3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -84,4 +84,5 @@ Delete Playlist Delete playlist and songs Clear Playlist + Disable search history