diff --git a/app/src/main/java/com/deniscerri/ytdl/core/packages/PackageBase.kt b/app/src/main/java/com/deniscerri/ytdl/core/packages/PackageBase.kt index 964b8afa..3663589b 100644 --- a/app/src/main/java/com/deniscerri/ytdl/core/packages/PackageBase.kt +++ b/app/src/main/java/com/deniscerri/ytdl/core/packages/PackageBase.kt @@ -194,6 +194,7 @@ abstract class PackageBase { try { File(FileUtil.getDefaultApksPath()).mkdirs() val tempApk = File(FileUtil.getDefaultApksPath(), "${packageFolderName}_${release.version.replace(".", "")}.apk") + tempApk.delete() val request = Request.Builder() .url(release.assets.first().browser_download_url) diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt index 38ca47f9..7be25cdf 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/generateyoutubepotokens/GenerateYoutubePoTokensFragment.kt @@ -86,7 +86,7 @@ class GenerateYoutubePoTokensFragment : Fragment() { private fun initBGUtils() { val useBgUtils = preferences.getBoolean("use_bgutils_potoken_generator", false) - val bgUtilsMethod = preferences.getString("bgutils_potoken_method", "generation_script") + val bgUtilsMethod = preferences.getString("bgutils_potoken_method", "server") requireView().findViewById(R.id.bgutils_potoken_provider_collapsible).isVisible = useBgUtils diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt index b99d215d..05119c3a 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/terminal/TerminalFragment.kt @@ -206,6 +206,7 @@ class TerminalFragment : Fragment() { topAppBar.menu?.forEach { it.isVisible = false } topAppBar.menu?.findItem(R.id.export_clipboard)?.isVisible = true topAppBar.menu?.findItem(R.id.add)?.isVisible = true + topAppBar.menu?.findItem(R.id.exit)?.isVisible = true topAppBar.menu?.findItem(R.id.delete)?.isVisible = true topAppBar.setOnMenuItemClickListener { menuItem: MenuItem -> diff --git a/app/src/main/java/com/deniscerri/ytdl/util/ApkInstallUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/ApkInstallUtil.kt index cb5e16cf..df066bbe 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/ApkInstallUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/ApkInstallUtil.kt @@ -38,12 +38,15 @@ object ApkInstallUtil { return caller.registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> - val success = result.resultCode == Activity.RESULT_OK - pendingInstallCallback?.invoke( - if (success) Result.success(Unit) - else Result.failure(Exception("Install cancelled or failed")) - ) + + val callback = pendingInstallCallback pendingInstallCallback = null + + if (result.resultCode == Activity.RESULT_OK || result.resultCode == Activity.RESULT_CANCELED) { + callback?.invoke(Result.success(Unit)) + } else { + callback?.invoke(Result.failure(Exception("Install cancelled or failed"))) + } } } diff --git a/app/src/main/java/com/deniscerri/ytdl/util/BackupSettingsUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/BackupSettingsUtil.kt index 4a61e6ac..f0bea32d 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/BackupSettingsUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/BackupSettingsUtil.kt @@ -21,6 +21,7 @@ object BackupSettingsUtil { prefs.remove("app_language") prefs.remove("cache_downloads") prefs.remove("use_alarm_for_scheduling") + prefs.remove("use_bgutils_potoken_generator") val res = prefs.map { BackupSettingsItem( key = it.key, diff --git a/app/src/main/java/com/deniscerri/ytdl/util/BgUtilsPoTokenGeneratorUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/BgUtilsPoTokenGeneratorUtil.kt index 197ee770..97717d14 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/BgUtilsPoTokenGeneratorUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/BgUtilsPoTokenGeneratorUtil.kt @@ -1,5 +1,6 @@ package com.deniscerri.ytdl.util +import android.R.attr.action import android.content.Context import android.content.Intent import android.os.Build @@ -178,8 +179,7 @@ object BgUtilsPoTokenGeneratorUtil { shutdownJob = scope.launch { delay(idleDelayMs) if (activeJobCount.get() == 0) { - val intent = Intent(context, BgUtilsPoTokenGeneratorService::class.java) - context.stopService(intent) + stopServer(context) } } } diff --git a/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt index d8c5b09a..6fba79b0 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt @@ -666,7 +666,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } fun getVersion(context: Context, channel: String) : String { val prefVersion = if (listOf("stable", "nightly", "master").contains(channel)) { - return RuntimeManager.getInstance().version(context) ?: "" + RuntimeManager.getInstance().version(context) ?: "" } else "" if (prefVersion.isNotBlank()) return prefVersion @@ -865,7 +865,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } val useBgUtils = sharedPreferences.getBoolean("use_bgutils_potoken_generator", false) - val bgUtilsMethod = sharedPreferences.getString("bgutils_potoken_method", "generation_script") + val bgUtilsMethod = sharedPreferences.getString("bgutils_potoken_method", "server") if (useBgUtils && bgUtilsMethod == "generation_script") { val serverPath = File(BgUtilsPoTokenGeneratorUtil.getServerFolder(context), "server").absolutePath this.addOption("--extractor-args", "youtubepot-bgutilscript:server_home=${serverPath}") diff --git a/app/src/main/java/com/deniscerri/ytdl/work/YTDLPCoroutineWorker.kt b/app/src/main/java/com/deniscerri/ytdl/work/YTDLPCoroutineWorker.kt index 44ea0dc3..3faaba11 100644 --- a/app/src/main/java/com/deniscerri/ytdl/work/YTDLPCoroutineWorker.kt +++ b/app/src/main/java/com/deniscerri/ytdl/work/YTDLPCoroutineWorker.kt @@ -2,7 +2,7 @@ package com.deniscerri.ytdl.work import android.app.ActivityManager import android.content.Context -import android.preference.PreferenceManager +import androidx.preference.PreferenceManager import androidx.work.CoroutineWorker import androidx.work.WorkerParameters import com.deniscerri.ytdl.services.BgUtilsPoTokenGeneratorService @@ -23,7 +23,7 @@ abstract class YTDLPCoroutineWorker( override suspend fun doWork(): Result { val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) val useBgUtilPoTokenServer = sharedPreferences.getBoolean("use_bgutils_potoken_generator", false) - val bgUtilsMethod = sharedPreferences.getString("bgutils_potoken_method", "generation_script") + val bgUtilsMethod = sharedPreferences.getString("bgutils_potoken_method", "server") val requiresServer = useBgUtilPoTokenServer && bgUtilsMethod == "server" diff --git a/app/src/main/res/xml/processing_preferences.xml b/app/src/main/res/xml/processing_preferences.xml index d73f1005..2cfc58e2 100644 --- a/app/src/main/res/xml/processing_preferences.xml +++ b/app/src/main/res/xml/processing_preferences.xml @@ -294,7 +294,7 @@