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 7232e9e6..6814c66c 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 @@ -19,6 +19,7 @@ import androidx.core.content.edit import androidx.core.content.res.ResourcesCompat import androidx.core.os.bundleOf import androidx.core.view.doOnLayout +import androidx.core.view.forEach import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.ViewModelProvider @@ -91,22 +92,13 @@ class TerminalFragment : Fragment() { virtualKeysView = view.findViewById(R.id.virtualKeys) bottomAppBar = view.findViewById(R.id.bottomAppBar) - var bundle = savedInstanceState if (arguments?.containsKey("id") == true) { sessionId = arguments?.getString("id") } - if (arguments?.containsKey("share") == true){ - if (bundle == null){ - bundle = Bundle() - } - bundle.putString("input", arguments?.getString("share")) - } - terminalViewModel.setTerminalView(terminalView) terminalViewModel.setVirtualKeysView(virtualKeysView) - initMenu() var templateCount = 0 var shortcutCount = 0 @@ -214,7 +206,10 @@ class TerminalFragment : Fragment() { @SuppressLint("UseKtx") private fun initMenu() { + 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.delete)?.isVisible = true topAppBar.setOnMenuItemClickListener { menuItem: MenuItem -> when (menuItem.itemId) { @@ -222,6 +217,12 @@ class TerminalFragment : Fragment() { findNavController().navigate(R.id.terminalFragment, bundleOf(Pair("new", true)), NavOptions.Builder().setPopUpTo(R.id.terminalFragment, true).build()) } + R.id.delete -> { + sessionId?.apply { + terminalViewModel.sessionBinder?.terminateSession(this) + requireActivity().onBackPressedDispatcher.onBackPressed() + } + } R.id.wrap -> { // var scrollView = requireView().findViewById(R.id.horizontalscroll_output) // if(scrollView != null){ @@ -273,6 +274,8 @@ class TerminalFragment : Fragment() { } val newSession = arguments?.getBoolean("new") ?: false + val sessionShareURL = arguments?.getString("share")?.ifEmpty { null } + val currentSession = sessionBinder.getSession(service.currentSession.value) session = if (newSession || currentSession == null) { sessionId = KeyShortcutHandler.generateUniqueSessionId(activity) @@ -292,7 +295,7 @@ class TerminalFragment : Fragment() { val termView = view as TerminalView termView.setTextSize( - sharedPreferences.getFloat("terminal_zoom", 35f).coerceIn(10f, 30f).toInt() + sharedPreferences.getFloat("terminal_zoom", 35f).toInt() ) termView.setTypeface(TerminalUtils.typeface) @@ -319,7 +322,14 @@ class TerminalFragment : Fragment() { reload(VirtualKeysInfo(virtualKeys, "", VirtualKeysConstants.CONTROL_CHARS_ALIASES)) } - terminalViewModel.setFont(ResourcesCompat.getFont(requireContext(), R.font.jetbrainsmono_medium)!!) + sessionShareURL?.apply { + CoroutineScope(Dispatchers.IO).launch { + delay(500) + withContext(Dispatchers.Main) { + session.write("yt-dlp \"$sessionShareURL\"") + } + } + } } } 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 34db5341..a3d5c30b 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 @@ -797,11 +797,11 @@ 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("data_sync_id=${dataSyncID}") - } +// val dataSyncID = sharedPreferences.getString("youtube_data_sync_id", "")!! +// if (dataSyncID.isNotBlank()) { +// extractorArgs.add("player_skip=webpage,configs") +// extractorArgs.add("data_sync_id=${dataSyncID}") +// } val generatedPoTokensRaw = sharedPreferences.getString("youtube_generated_po_tokens", "[]")!!.ifEmpty { "[]" } kotlin.runCatching { @@ -818,10 +818,10 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } } - if (dataSyncID.isBlank() && value.useVisitorData) { - extractorArgs.add("player_skip=webpage,configs") - extractorArgs.add("visitor_data=${value.visitorData}") - } +// if (dataSyncID.isBlank() && value.useVisitorData) { +// extractorArgs.add("player_skip=webpage,configs") +// extractorArgs.add("visitor_data=${value.visitorData}") +// } } } diff --git a/app/src/main/res/font/jetbrainsmono_medium.ttf b/app/src/main/res/font/jetbrainsmono_medium.ttf deleted file mode 100644 index 97671156..00000000 Binary files a/app/src/main/res/font/jetbrainsmono_medium.ttf and /dev/null differ diff --git a/app/src/main/res/layout/fragment_terminal.xml b/app/src/main/res/layout/fragment_terminal.xml index 61cbae95..05d153aa 100644 --- a/app/src/main/res/layout/fragment_terminal.xml +++ b/app/src/main/res/layout/fragment_terminal.xml @@ -46,7 +46,7 @@ android:id="@+id/bottomAppBar" style="@style/Widget.Material3.BottomAppBar" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="40dp" android:layout_gravity="bottom" app:menu="@menu/terminal_menu" /> diff --git a/app/src/main/res/menu/terminal_top_menu.xml b/app/src/main/res/menu/terminal_top_menu.xml index 544facb0..f9abc3b2 100644 --- a/app/src/main/res/menu/terminal_top_menu.xml +++ b/app/src/main/res/menu/terminal_top_menu.xml @@ -7,10 +7,10 @@ app:showAsAction="always" android:id="@+id/add"/> - - - - + - + + + + + +