diff --git a/app/src/main/java/com/deniscerri/ytdl/database/dao/ResultDao.kt b/app/src/main/java/com/deniscerri/ytdl/database/dao/ResultDao.kt index 73a04233..f55edd79 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/dao/ResultDao.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/dao/ResultDao.kt @@ -74,6 +74,9 @@ interface ResultDao { @Query("SELECT * FROM results WHERE url=:url LIMIT 1") fun getResultByURL(url: String) : ResultItem? + @Query("SELECT url FROM results") + fun getURLs() : List + @Query("SELECT * FROM results WHERE url=:url") fun getAllByURL(url: String) : List diff --git a/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt b/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt index c86833fe..2df2f780 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/repository/ResultRepository.kt @@ -61,6 +61,10 @@ class ResultRepository(private val resultDao: ResultDao, commandTemplateDao: Com return resultDao.getFilteredListIds(playlistTitle) } + fun getURLs() : List { + return resultDao.getURLs() + } + suspend fun getHomeRecommendations(){ deleteAll() val category = sharedPreferences.getString("recommendations_home", "") diff --git a/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/ResultViewModel.kt b/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/ResultViewModel.kt index 9cea7087..9b676496 100644 --- a/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/ResultViewModel.kt +++ b/app/src/main/java/com/deniscerri/ytdl/database/viewmodel/ResultViewModel.kt @@ -409,6 +409,10 @@ class ResultViewModel(private val application: Application) : AndroidViewModel(a return repository.getFilteredIDs(playlistFilter.value) } + fun getURLs() : List { + return repository.getURLs() + } + fun reverseResults(resultItems: List): List { val latestResult = resultItems.max() val newIdsMap = mutableListOf>() diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/HomeFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/HomeFragment.kt index b09d6121..6845a2c8 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/HomeFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/HomeFragment.kt @@ -548,6 +548,15 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, SearchSuggesti searchBar!!.setOnMenuItemClickListener { m: MenuItem -> when (m.itemId) { + R.id.copy_urls -> { + lifecycleScope.launch { + val urls = withContext(Dispatchers.IO){ + resultViewModel.getURLs() + } + + UiUtil.copyToClipboard(urls.distinct().joinToString("\n"), requireActivity()) + } + } R.id.delete_results -> { lifecycleScope.launch { withContext(Dispatchers.IO){ diff --git a/app/src/main/res/menu/main_menu.xml b/app/src/main/res/menu/main_menu.xml index b52a4e17..4b306c46 100644 --- a/app/src/main/res/menu/main_menu.xml +++ b/app/src/main/res/menu/main_menu.xml @@ -13,6 +13,12 @@ android:title="@string/remove_search_history" app:showAsAction="never" /> + +