diff --git a/app/app/build.gradle.kts b/app/app/build.gradle.kts index 0a4fd886..861dfa03 100644 --- a/app/app/build.gradle.kts +++ b/app/app/build.gradle.kts @@ -46,8 +46,8 @@ android { applicationId = "com.github.livingwithhippos.unchained" minSdk = 27 targetSdk = 36 - versionCode = 57 - versionName = "1.6.0" + versionCode = 58 + versionName = "1.6.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/app/proguard-rules.pro b/app/app/proguard-rules.pro index d4009dac..f72f8c45 100644 --- a/app/app/proguard-rules.pro +++ b/app/app/proguard-rules.pro @@ -39,12 +39,5 @@ -dontwarn org.openjsse.net.ssl.OpenJSSE -dontwarn aQute.bnd.annotation.spi.ServiceProvider -# Please add these rules to your existing keep rules in order to suppress warnings. -# This is generated automatically by the Android Gradle plugin. --dontwarn javax.xml.stream.FactoryConfigurationError --dontwarn javax.xml.stream.Location --dontwarn javax.xml.stream.XMLEventFactory --dontwarn javax.xml.stream.XMLInputFactory --dontwarn javax.xml.stream.XMLOutputFactory --dontwarn javax.xml.stream.XMLResolver --dontwarn javax.xml.stream.util.XMLEventAllocator \ No newline at end of file +# Keep Protobuf Lite generated classes +-keep class * extends com.google.protobuf.GeneratedMessageLite { *; } \ No newline at end of file diff --git a/app/app/src/main/java/com/github/livingwithhippos/unchained/data/local/RepositoryDataDao.kt b/app/app/src/main/java/com/github/livingwithhippos/unchained/data/local/RepositoryDataDao.kt index 9798a75a..9051c3a8 100644 --- a/app/app/src/main/java/com/github/livingwithhippos/unchained/data/local/RepositoryDataDao.kt +++ b/app/app/src/main/java/com/github/livingwithhippos/unchained/data/local/RepositoryDataDao.kt @@ -56,6 +56,11 @@ interface RepositoryDataDao { ) suspend fun getEnabledPlugins(): Map> + @Query("SELECT * FROM plugin WHERE plugin.search_enabled = 1") + suspend fun getEnabledPluginsOnly(): List + + @Query("SELECT * FROM plugin") suspend fun getAllPlugins(): List + @Query( "SELECT * FROM repository_info JOIN " + "plugin ON plugin.repository = repository_info.link " + diff --git a/app/app/src/main/java/com/github/livingwithhippos/unchained/data/repository/DatabasePluginRepository.kt b/app/app/src/main/java/com/github/livingwithhippos/unchained/data/repository/DatabasePluginRepository.kt index f440131e..4c3f9406 100644 --- a/app/app/src/main/java/com/github/livingwithhippos/unchained/data/repository/DatabasePluginRepository.kt +++ b/app/app/src/main/java/com/github/livingwithhippos/unchained/data/repository/DatabasePluginRepository.kt @@ -118,7 +118,14 @@ constructor(private val repositoryDataDao: RepositoryDataDao) { suspend fun getEnabledPlugins(): Map> = repositoryDataDao.getEnabledPlugins() + suspend fun getEnabledPluginsOnly(): List = + repositoryDataDao.getEnabledPluginsOnly() + + suspend fun getAllPlugins(): List = repositoryDataDao.getAllPlugins() + suspend fun enablePlugin(name: String, enabled: Boolean) { - repositoryDataDao.enablePlugin(name, enabled) + // since in the db they are stored in lowercase, we need to convert the name to lowercase + // before updating + repositoryDataDao.enablePlugin(name.lowercase(), enabled) } } diff --git a/app/app/src/main/java/com/github/livingwithhippos/unchained/downloaddetails/viewmodel/DownloadDetailsViewModel.kt b/app/app/src/main/java/com/github/livingwithhippos/unchained/downloaddetails/viewmodel/DownloadDetailsViewModel.kt index d556f2c1..624b9a3e 100644 --- a/app/app/src/main/java/com/github/livingwithhippos/unchained/downloaddetails/viewmodel/DownloadDetailsViewModel.kt +++ b/app/app/src/main/java/com/github/livingwithhippos/unchained/downloaddetails/viewmodel/DownloadDetailsViewModel.kt @@ -99,7 +99,7 @@ constructor( } fun getDefaultPlayer(): String? { - return preferences.getString("default_media_player", null) + return preferences.getString("default_media_player", "vlc") } fun getButtonVisibilityPreference(buttonKey: String, default: Boolean = true): Boolean { diff --git a/app/app/src/main/java/com/github/livingwithhippos/unchained/search/view/PluginSearchFragment.kt b/app/app/src/main/java/com/github/livingwithhippos/unchained/search/view/PluginSearchFragment.kt index ffd8d38a..d3adb9fd 100644 --- a/app/app/src/main/java/com/github/livingwithhippos/unchained/search/view/PluginSearchFragment.kt +++ b/app/app/src/main/java/com/github/livingwithhippos/unchained/search/view/PluginSearchFragment.kt @@ -48,13 +48,19 @@ class PluginSearchFragment : UnchainedFragment(), SearchItemListener { setup(binding) - viewModel.pluginLiveData.observe(viewLifecycleOwner) { parsedPlugins -> + viewModel.pluginLiveData.observe(viewLifecycleOwner) { event -> + val parsedPlugins = event.getContentIfNotHandled() ?: return@observe setupAndShowSheet(inflater, parsedPlugins) } return binding.root } + override fun onResume() { + context?.let { viewModel.fetchPluginsAndServices(it, show = false) } + super.onResume() + } + override fun onDestroyView() { super.onDestroyView() _binding = null @@ -68,9 +74,10 @@ class PluginSearchFragment : UnchainedFragment(), SearchItemListener { sideSheetDialog.setContentView(R.layout.sidesheet_search_plugins_options) sideSheetDialog.findViewById