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 {
constructor(targetUrl, targetName, targetThumbnail) {
constructor(targetUrl, targetName, targetThumbnail, isOutgoing) {
super(100);
this.targetUrl = targetUrl;
this.targetName = targetName;
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.futo.platformplayer.engine.IV8PluginConfig
import com.futo.platformplayer.ensureIsBusy
import com.futo.platformplayer.getOrDefault
import com.futo.platformplayer.getOrThrow
class LiveEventRaid: IPlatformLiveEvent {
@ -11,11 +12,13 @@ class LiveEventRaid: IPlatformLiveEvent {
val targetName: String;
val targetThumbnail: 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.targetUrl = url;
this.targetThumbnail = thumbnail;
this.isOutgoing = isOutgoing;
}
companion object {
@ -25,7 +28,8 @@ class LiveEventRaid: IPlatformLiveEvent {
return LiveEventRaid(
obj.getOrThrow(config, "targetName", 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.TextView
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.LinearSmoothScroller
import androidx.recyclerview.widget.RecyclerView
@ -70,7 +67,7 @@ class LiveChatOverlay : LinearLayout {
private val _overlayRaid_Thumbnail: ImageView;
private val _overlayRaid_ButtonGo: Button;
private val _overlayRaid_ButtonPrevent: Button;
private val _overlayRaid_ButtonDismiss: Button;
private val _textViewers: TextView;
@ -151,7 +148,7 @@ class LiveChatOverlay : LinearLayout {
_overlayRaid_Name = findViewById(R.id.raid_name);
_overlayRaid_Thumbnail = findViewById(R.id.raid_thumbnail);
_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;
@ -160,7 +157,7 @@ class LiveChatOverlay : LinearLayout {
onRaidNow.emit(it);
}
}
_overlayRaid_ButtonPrevent.setOnClickListener {
_overlayRaid_ButtonDismiss.setOnClickListener {
_currentRaid?.let {
_currentRaid = null;
_overlayRaid.visibility = View.GONE;
@ -373,6 +370,8 @@ class LiveChatOverlay : LinearLayout {
}
else
_overlayRaid.visibility = View.GONE;
_overlayRaid_ButtonGo.visibility = if (raid?.isOutgoing == true) View.VISIBLE else View.GONE
}
}
fun setViewCount(viewCount: Int) {

View file

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