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?