mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-09-25 02:39:04 +00:00
Merge branch 'master' of gitlab.futo.org:videostreaming/grayjay
This commit is contained in:
commit
d44a71f3be
4 changed files with 47 additions and 2 deletions
|
@ -72,6 +72,10 @@ class PackageBridge : V8Package {
|
||||||
fun buildSpecVersion(): Int {
|
fun buildSpecVersion(): Int {
|
||||||
return JSClientConstants.PLUGIN_SPEC_VERSION;
|
return JSClientConstants.PLUGIN_SPEC_VERSION;
|
||||||
}
|
}
|
||||||
|
@V8Property
|
||||||
|
fun buildPlatform(): String {
|
||||||
|
return "android";
|
||||||
|
}
|
||||||
|
|
||||||
@V8Function
|
@V8Function
|
||||||
fun dispose(value: V8Value) {
|
fun dispose(value: V8Value) {
|
||||||
|
|
|
@ -2,9 +2,11 @@ package com.futo.platformplayer.fragment.mainactivity.main
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.AttributeSet
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.core.view.allViews
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.futo.platformplayer.Settings
|
import com.futo.platformplayer.Settings
|
||||||
import com.futo.platformplayer.UIDialogs
|
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.StateMeta
|
||||||
import com.futo.platformplayer.states.StatePlatform
|
import com.futo.platformplayer.states.StatePlatform
|
||||||
import com.futo.platformplayer.views.FeedStyle
|
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.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
@ -114,6 +118,25 @@ class ContentSearchResultsFragment : MainFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
setPreviewsEnabled(Settings.instance.search.previewFeedItems);
|
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() {
|
override fun cleanup() {
|
||||||
|
|
|
@ -45,6 +45,10 @@ open class ChannelView : LinearLayout {
|
||||||
_buttonSubscribe = findViewById(R.id.button_subscribe);
|
_buttonSubscribe = findViewById(R.id.button_subscribe);
|
||||||
_platformIndicator = findViewById(R.id.platform_indicator);
|
_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) {
|
if (_tiny) {
|
||||||
_buttonSubscribe.visibility = View.GONE;
|
_buttonSubscribe.visibility = View.GONE;
|
||||||
_textMetadata.visibility = View.GONE;
|
_textMetadata.visibility = View.GONE;
|
||||||
|
@ -66,8 +70,11 @@ open class ChannelView : LinearLayout {
|
||||||
open fun bind(content: IPlatformContent) {
|
open fun bind(content: IPlatformContent) {
|
||||||
isClickable = true;
|
isClickable = true;
|
||||||
|
|
||||||
if(content !is IPlatformChannelContent)
|
if(content !is IPlatformChannelContent) {
|
||||||
return
|
currentChannel = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
currentChannel = content;
|
||||||
|
|
||||||
_creatorThumbnail.setThumbnail(content.thumbnail, false);
|
_creatorThumbnail.setThumbnail(content.thumbnail, false);
|
||||||
_textName.text = content.name;
|
_textName.text = content.name;
|
||||||
|
|
|
@ -13,6 +13,17 @@ class RadioGroupView : FlexboxLayout {
|
||||||
|
|
||||||
val selectedOptions = arrayListOf<Any?>();
|
val selectedOptions = arrayListOf<Any?>();
|
||||||
val onSelectedChange = Event1<List<Any?>>();
|
val onSelectedChange = Event1<List<Any?>>();
|
||||||
|
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) {
|
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
|
||||||
flexWrap = FlexWrap.WRAP;
|
flexWrap = FlexWrap.WRAP;
|
||||||
_padding_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, _padding_dp, context.resources.displayMetrics).toInt();
|
_padding_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, _padding_dp, context.resources.displayMetrics).toInt();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue