diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/WebViewActivity.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/WebViewActivity.kt index 088fef8f..95922354 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/WebViewActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/WebViewActivity.kt @@ -4,6 +4,7 @@ import android.annotation.SuppressLint import android.content.SharedPreferences import android.os.Build import android.os.Bundle +import android.view.MenuItem import android.webkit.CookieManager import android.webkit.WebView import android.widget.Toast @@ -14,6 +15,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView +import androidx.core.view.forEach import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.preference.PreferenceManager @@ -21,6 +23,8 @@ import com.deniscerri.ytdl.R import com.deniscerri.ytdl.database.models.CookieItem import com.deniscerri.ytdl.database.viewmodel.CookieViewModel import com.deniscerri.ytdl.ui.BaseActivity +import com.deniscerri.ytdl.util.Extensions.isYoutubeURL +import com.deniscerri.ytdl.util.UiUtil import com.google.accompanist.web.AccompanistWebChromeClient import com.google.accompanist.web.AccompanistWebViewClient import com.google.accompanist.web.WebView @@ -35,7 +39,7 @@ import kotlinx.coroutines.withContext class WebViewActivity : BaseActivity() { private lateinit var cookiesViewModel: CookieViewModel - private lateinit var webView: WebView + private var webView: WebView? = null private lateinit var webViewCompose: ComposeView private lateinit var toolbar: MaterialToolbar private lateinit var generateBtn: MaterialButton @@ -53,6 +57,23 @@ class WebViewActivity : BaseActivity() { lifecycleScope.launch { val appbar = findViewById(R.id.webview_appbarlayout) toolbar = appbar.findViewById(R.id.webviewToolbar) + if (!url.isYoutubeURL()) { + toolbar.menu.forEach { it.isVisible = false } + }else { + toolbar.setOnMenuItemClickListener { m : MenuItem -> + when(m.itemId) { + R.id.get_data_sync_id -> { + webView?.evaluateJavascript("ytcfg.get('DATASYNC_ID')") { id -> + UiUtil.copyToClipboard(id.replace("\"", ""), this@WebViewActivity) + } + } + else -> {} + } + true + } + } + + generateBtn = toolbar.findViewById(R.id.generate) webViewCompose = findViewById(R.id.webview_compose) cookieManager = CookieManager.getInstance() @@ -61,6 +82,7 @@ class WebViewActivity : BaseActivity() { webViewClient = object : AccompanistWebViewClient() { override fun onPageFinished(view: WebView?, url: String?) { + webView = view super.onPageFinished(view, url) kotlin.runCatching { toolbar.title = view?.title ?: "" diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/AdvancedSettingsFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/AdvancedSettingsFragment.kt index 4f9cc864..ef46de50 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/AdvancedSettingsFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/AdvancedSettingsFragment.kt @@ -44,6 +44,26 @@ class AdvancedSettingsFragment : BaseSettingsFragment() { false } + findPreference("youtube_other_extractor_args")?.apply { + fun setValue() { + val pf = prefs.getString("youtube_other_extractor_args", "")!! + if (pf.length > 50) { + this.summary = pf.take(50) + "..." + }else { + this.summary = pf + } + } + + setOnPreferenceChangeListener { preference, newValue -> + setValue() + true + } + + setValue() + + + } + val formatImportanceAudio: Preference? = findPreference("format_importance_audio") val formatImportanceVideo: Preference? = findPreference("format_importance_video") diff --git a/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt index a7048bfd..a65ba246 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt @@ -1303,7 +1303,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co val dataSyncID = sharedPreferences.getString("youtube_data_sync_id", "")!! if (dataSyncID.isNotBlank()) { - extractorArgs.add("player-skip=webpage,configs") + extractorArgs.add("player_skip=webpage,configs") extractorArgs.add("data_sync_id=${dataSyncID}") } @@ -1322,7 +1322,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } if (dataSyncID.isBlank()) { - extractorArgs.add("player-skip=webpage,configs") + extractorArgs.add("player_skip=webpage,configs") extractorArgs.add("visitor_data=${value.visitorData}") } diff --git a/app/src/main/res/layout/webview_activity.xml b/app/src/main/res/layout/webview_activity.xml index fc4c1688..d62ef1c7 100644 --- a/app/src/main/res/layout/webview_activity.xml +++ b/app/src/main/res/layout/webview_activity.xml @@ -29,6 +29,7 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_scrollFlags="scroll" + app:menu="@menu/webview_menu" app:navigationContentDescription="@string/back" app:navigationIcon="?attr/homeAsUpIndicator"> diff --git a/app/src/main/res/menu/webview_menu.xml b/app/src/main/res/menu/webview_menu.xml new file mode 100644 index 00000000..8b9a4864 --- /dev/null +++ b/app/src/main/res/menu/webview_menu.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/advanced_preferences.xml b/app/src/main/res/xml/advanced_preferences.xml index 6f296101..46b349a5 100644 --- a/app/src/main/res/xml/advanced_preferences.xml +++ b/app/src/main/res/xml/advanced_preferences.xml @@ -35,7 +35,6 @@ android:defaultValue="" android:icon="@drawable/ic_code" android:key="youtube_other_extractor_args" - app:useSimpleSummaryProvider="true" android:title="@string/other_youtube_extractor_args" />