From ffd8db4c65773e9fdb6c973b9fc4d35a03a33f38 Mon Sep 17 00:00:00 2001 From: Sarang S <85063520+eigengravy@users.noreply.github.com> Date: Fri, 19 Aug 2022 00:16:20 +0530 Subject: [PATCH] Download all plugins from repository (#23) --- .../settings/extensions/ExtensionsFragment.kt | 2 ++ .../lagradost/cloudstream3/utils/AppUtils.kt | 24 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 28 insertions(+) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsFragment.kt index 38832dd8..143794d1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/extensions/ExtensionsFragment.kt @@ -25,6 +25,7 @@ import com.lagradost.cloudstream3.plugins.RepositoryManager import com.lagradost.cloudstream3.ui.result.setText import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar +import com.lagradost.cloudstream3.utils.AppUtils.downloadAllPluginsDialog import com.lagradost.cloudstream3.utils.Coroutines.ioSafe import com.lagradost.cloudstream3.utils.Coroutines.main import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe @@ -213,6 +214,7 @@ class ExtensionsFragment : Fragment() { RepositoryManager.addRepository(newRepo) extensionViewModel.loadStats() extensionViewModel.loadRepositories() + this@ExtensionsFragment.activity?.downloadAllPluginsDialog(url, fixedName) } dialog.dismissSafe(activity) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt index 39cc9fbe..9a9d370a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/AppUtils.kt @@ -25,6 +25,7 @@ import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.RequiresApi import androidx.annotation.WorkerThread +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.text.HtmlCompat @@ -52,6 +53,7 @@ import com.lagradost.cloudstream3.plugins.RepositoryManager import com.lagradost.cloudstream3.ui.WebviewFragment import com.lagradost.cloudstream3.ui.result.ResultFragment import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings +import com.lagradost.cloudstream3.ui.settings.extensions.PluginsViewModel.Companion.downloadAll import com.lagradost.cloudstream3.ui.settings.extensions.RepositoryData import com.lagradost.cloudstream3.utils.Coroutines.ioSafe import com.lagradost.cloudstream3.utils.Coroutines.main @@ -257,6 +259,28 @@ object AppUtils { ) } afterRepositoryLoadedEvent.invoke(true) + downloadAllPluginsDialog(url, repo.name) + } + } + + fun Activity.downloadAllPluginsDialog(repositoryUrl: String, repositoryName: String) { + runOnUiThread { + val context = this + val builder: AlertDialog.Builder = AlertDialog.Builder(this) + builder.setTitle( + repositoryName + ) + builder.setMessage( + R.string.download_all_plugins_from_repo + ) + builder.apply { + setPositiveButton(R.string.download) { _, _ -> + downloadAll(context, repositoryUrl, null) + } + + setNegativeButton(R.string.cancel) { _, _ -> } + } + builder.show() } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4a910c23..fad7a555 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -602,4 +602,6 @@ View community repositories Public list Uppercase all subtitles + + Download all plugins from this repository?