From fdaf41b6054174578d567bad3ec4e582ecbd5ec6 Mon Sep 17 00:00:00 2001 From: Kelvin Date: Thu, 1 May 2025 16:31:51 +0200 Subject: [PATCH 1/2] BuildPlatform property --- .../com/futo/platformplayer/engine/packages/PackageBridge.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBridge.kt b/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBridge.kt index 1a77d82d..12ea05af 100644 --- a/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBridge.kt +++ b/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBridge.kt @@ -72,6 +72,10 @@ class PackageBridge : V8Package { fun buildSpecVersion(): Int { return JSClientConstants.PLUGIN_SPEC_VERSION; } + @V8Property + fun buildPlatform(): String { + return "android"; + } @V8Function fun dispose(value: V8Value) { From c26e9c281fbba8d542b8cc8b1b4421057d5d1ae4 Mon Sep 17 00:00:00 2001 From: Kelvin Date: Fri, 2 May 2025 12:10:47 +0200 Subject: [PATCH 2/2] Easier search type switching on results page, fix search result click channels --- .../main/ContentSearchResultsFragment.kt | 23 +++++++++++++++++++ .../views/adapters/ChannelView.kt | 11 +++++++-- .../views/others/RadioGroupView.kt | 11 +++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentSearchResultsFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentSearchResultsFragment.kt index f5d518f8..4d517b99 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentSearchResultsFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentSearchResultsFragment.kt @@ -2,9 +2,11 @@ package com.futo.platformplayer.fragment.mainactivity.main import android.annotation.SuppressLint import android.os.Bundle +import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.allViews import androidx.lifecycle.lifecycleScope import com.futo.platformplayer.Settings import com.futo.platformplayer.UIDialogs @@ -23,6 +25,8 @@ import com.futo.platformplayer.models.SearchType import com.futo.platformplayer.states.StateMeta import com.futo.platformplayer.states.StatePlatform import com.futo.platformplayer.views.FeedStyle +import com.futo.platformplayer.views.ToggleBar +import com.futo.platformplayer.views.others.RadioGroupView import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -114,6 +118,25 @@ class ContentSearchResultsFragment : MainFragment() { } setPreviewsEnabled(Settings.instance.search.previewFeedItems); + + initializeToolbar(); + } + + fun initializeToolbar(){ + if(_toolbarContentView.allViews.any { it is RadioGroupView }) + _toolbarContentView.removeView(_toolbarContentView.allViews.find { it is RadioGroupView }); + + val radioGroup = RadioGroupView(context); + radioGroup.onSelectedChange.subscribe { + + if (it.size != 1) + setSearchType(SearchType.VIDEO); + else + setSearchType((it[0] ?: SearchType.VIDEO) as SearchType); + } + radioGroup?.setOptions(listOf(Pair("Media", SearchType.VIDEO), Pair("Creators", SearchType.CREATOR), Pair("Playlists", SearchType.PLAYLIST)), listOf(_searchType), false, true) + + _toolbarContentView.addView(radioGroup); } override fun cleanup() { diff --git a/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelView.kt b/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelView.kt index 28225da9..1d467732 100644 --- a/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelView.kt +++ b/app/src/main/java/com/futo/platformplayer/views/adapters/ChannelView.kt @@ -45,6 +45,10 @@ open class ChannelView : LinearLayout { _buttonSubscribe = findViewById(R.id.button_subscribe); _platformIndicator = findViewById(R.id.platform_indicator); + //_textName.setOnClickListener { currentChannel?.let { onClick.emit(it) }; } + //_creatorThumbnail.setOnClickListener { currentChannel?.let { onClick.emit(it) }; } + //_textMetadata.setOnClickListener { currentChannel?.let { onClick.emit(it) }; } + if (_tiny) { _buttonSubscribe.visibility = View.GONE; _textMetadata.visibility = View.GONE; @@ -66,8 +70,11 @@ open class ChannelView : LinearLayout { open fun bind(content: IPlatformContent) { isClickable = true; - if(content !is IPlatformChannelContent) - return + if(content !is IPlatformChannelContent) { + currentChannel = null; + return; + } + currentChannel = content; _creatorThumbnail.setThumbnail(content.thumbnail, false); _textName.text = content.name; diff --git a/app/src/main/java/com/futo/platformplayer/views/others/RadioGroupView.kt b/app/src/main/java/com/futo/platformplayer/views/others/RadioGroupView.kt index 22a5d21f..8c26d1e1 100644 --- a/app/src/main/java/com/futo/platformplayer/views/others/RadioGroupView.kt +++ b/app/src/main/java/com/futo/platformplayer/views/others/RadioGroupView.kt @@ -13,6 +13,17 @@ class RadioGroupView : FlexboxLayout { val selectedOptions = arrayListOf(); val onSelectedChange = Event1>(); + constructor(context: Context) : super(context) { + flexWrap = FlexWrap.WRAP; + _padding_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, _padding_dp, context.resources.displayMetrics).toInt(); + + if (isInEditMode) { + setOptions(listOf("Example 1" to 1, "Example 2" to 2, "Example 3" to 3, "Example 4" to 4, "Example 5" to 5), listOf("Example 1", "Example 2"), + multiSelect = true, + atLeastOne = false + ); + } + } constructor(context: Context, attrs: AttributeSet) : super(context, attrs) { flexWrap = FlexWrap.WRAP; _padding_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, _padding_dp, context.resources.displayMetrics).toInt();