Implemented incoming and outgoing raids.

This commit is contained in:
Koen J 2025-07-03 14:30:01 +02:00
commit 5b954727a1
4 changed files with 18 additions and 14 deletions

View file

@ -707,11 +707,12 @@ class LiveEventViewCount extends LiveEvent {
} }
} }
class LiveEventRaid extends LiveEvent { class LiveEventRaid extends LiveEvent {
constructor(targetUrl, targetName, targetThumbnail) { constructor(targetUrl, targetName, targetThumbnail, isOutgoing) {
super(100); super(100);
this.targetUrl = targetUrl; this.targetUrl = targetUrl;
this.targetName = targetName; this.targetName = targetName;
this.targetThumbnail = targetThumbnail; this.targetThumbnail = targetThumbnail;
this.isOutgoing = isOutgoing;
} }
} }

View file

@ -3,6 +3,7 @@ package com.futo.platformplayer.api.media.models.live
import com.caoccao.javet.values.reference.V8ValueObject import com.caoccao.javet.values.reference.V8ValueObject
import com.futo.platformplayer.engine.IV8PluginConfig import com.futo.platformplayer.engine.IV8PluginConfig
import com.futo.platformplayer.ensureIsBusy import com.futo.platformplayer.ensureIsBusy
import com.futo.platformplayer.getOrDefault
import com.futo.platformplayer.getOrThrow import com.futo.platformplayer.getOrThrow
class LiveEventRaid: IPlatformLiveEvent { class LiveEventRaid: IPlatformLiveEvent {
@ -11,11 +12,13 @@ class LiveEventRaid: IPlatformLiveEvent {
val targetName: String; val targetName: String;
val targetThumbnail: String; val targetThumbnail: String;
val targetUrl: String; val targetUrl: String;
val isOutgoing: Boolean;
constructor(name: String, url: String, thumbnail: String) { constructor(name: String, url: String, thumbnail: String, isOutgoing: Boolean) {
this.targetName = name; this.targetName = name;
this.targetUrl = url; this.targetUrl = url;
this.targetThumbnail = thumbnail; this.targetThumbnail = thumbnail;
this.isOutgoing = isOutgoing;
} }
companion object { companion object {
@ -25,7 +28,8 @@ class LiveEventRaid: IPlatformLiveEvent {
return LiveEventRaid( return LiveEventRaid(
obj.getOrThrow(config, "targetName", contextName), obj.getOrThrow(config, "targetName", contextName),
obj.getOrThrow(config, "targetUrl", contextName), obj.getOrThrow(config, "targetUrl", contextName),
obj.getOrThrow(config, "targetThumbnail", contextName)); obj.getOrThrow(config, "targetThumbnail", contextName),
obj.getOrDefault<Boolean>(config, "isOutgoing", contextName, true) ?: true);
} }
} }
} }

View file

@ -14,9 +14,6 @@ import android.widget.ImageView
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.graphics.blue
import androidx.core.graphics.green
import androidx.core.graphics.red
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.LinearSmoothScroller import androidx.recyclerview.widget.LinearSmoothScroller
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -70,7 +67,7 @@ class LiveChatOverlay : LinearLayout {
private val _overlayRaid_Thumbnail: ImageView; private val _overlayRaid_Thumbnail: ImageView;
private val _overlayRaid_ButtonGo: Button; private val _overlayRaid_ButtonGo: Button;
private val _overlayRaid_ButtonPrevent: Button; private val _overlayRaid_ButtonDismiss: Button;
private val _textViewers: TextView; private val _textViewers: TextView;
@ -151,7 +148,7 @@ class LiveChatOverlay : LinearLayout {
_overlayRaid_Name = findViewById(R.id.raid_name); _overlayRaid_Name = findViewById(R.id.raid_name);
_overlayRaid_Thumbnail = findViewById(R.id.raid_thumbnail); _overlayRaid_Thumbnail = findViewById(R.id.raid_thumbnail);
_overlayRaid_ButtonGo = findViewById(R.id.raid_button_go); _overlayRaid_ButtonGo = findViewById(R.id.raid_button_go);
_overlayRaid_ButtonPrevent = findViewById(R.id.raid_button_prevent); _overlayRaid_ButtonDismiss = findViewById(R.id.raid_button_prevent);
_overlayRaid.visibility = View.GONE; _overlayRaid.visibility = View.GONE;
@ -160,7 +157,7 @@ class LiveChatOverlay : LinearLayout {
onRaidNow.emit(it); onRaidNow.emit(it);
} }
} }
_overlayRaid_ButtonPrevent.setOnClickListener { _overlayRaid_ButtonDismiss.setOnClickListener {
_currentRaid?.let { _currentRaid?.let {
_currentRaid = null; _currentRaid = null;
_overlayRaid.visibility = View.GONE; _overlayRaid.visibility = View.GONE;
@ -373,6 +370,8 @@ class LiveChatOverlay : LinearLayout {
} }
else else
_overlayRaid.visibility = View.GONE; _overlayRaid.visibility = View.GONE;
_overlayRaid_ButtonGo.visibility = if (raid?.isOutgoing == true) View.VISIBLE else View.GONE
} }
} }
fun setViewCount(viewCount: Int) { fun setViewCount(viewCount: Int) {

View file

@ -263,8 +263,8 @@
android:textSize="13dp" android:textSize="13dp"
android:letterSpacing="0" android:letterSpacing="0"
android:fontFamily="@font/inter_regular" android:fontFamily="@font/inter_regular"
android:layout_marginStart="20dp" android:layout_marginStart="5dp"
android:backgroundTint="#2F2F2F" android:backgroundTint="@color/colorPrimary"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:text="@string/go_now"/> android:text="@string/go_now"/>
<Button <Button
@ -277,9 +277,9 @@
android:textSize="13dp" android:textSize="13dp"
android:letterSpacing="0" android:letterSpacing="0"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="5dp"
android:backgroundTint="#481414" android:backgroundTint="#2F2F2F"
android:text="@string/prevent"/> android:text="@string/dismiss"/>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>