feat(swipe to queue): left swipe + configurable actions + play next

This commit is contained in:
Se7en-dev committed 2026-08-31 15:18:29 +02:00
1 parent 47fe539e76
commit 973580e230
42 files changed
+1426 -175

No files matched your search

@@ -476,26 +476,75 @@
"advancedOptions": [
{
"type": "choice",
"key": "swipe_direction",
"title": "Swipe Direction",
"description": "Choose direction of the swipe gesture",
"key": "left_action",
"title": "Left Swipe Action",
"description": "Choose the action for a left swipe",
"entries": [
"Left",
"Right"
"Disabled",
"Play next",
"Add to queue"
],
"values": [
"0x0",
"0x1",
"0x2"
],
"defaultIndex": 2,
"distinctFrom": "right_action",
"token": "RL_SWIPE_TO_QUEUE_LEFT_ACTION"
},
{
"type": "choice",
"key": "right_action",
"title": "Right Swipe Action",
"description": "Choose the action for a right swipe",
"entries": [
"Disabled",
"Play next",
"Add to queue"
],
"values": [
"0x0",
"0x1",
"0x2"
],
"defaultIndex": 0,
"distinctFrom": "left_action",
"token": "RL_SWIPE_TO_QUEUE_RIGHT_ACTION"
},
{
"type": "choice",
"key": "remove_direction",
"title": "Remove Track from Queue",
"description": "Choose the swipe direction used to remove items from the play queue",
"entries": [
"Left swipe",
"Right swipe",
"Both"
],
"values": [
"0x4",
"0x8"
"0x8",
"0xc"
],
"defaultIndex": 0,
"token": "RL_SWIPE_TO_QUEUE_DIRECTION"
"token": "RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION"
},
{
"type": "color",
"key": "background_color",
"title": "Background Color",
"title": "Add to Queue Color",
"default": -14748953,
"defaultLabel": "Cyan",
"token": "RL_SWIPE_TO_QUEUE_ADD_COLOR"
},
{
"type": "color",
"key": "play_next_color",
"title": "Play Next Color",
"default": -14749031,
"token": "RL_SWIPE_TO_QUEUE_COLOR"
"defaultLabel": "Green",
"token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR"
}
]
},
@@ -161,6 +161,7 @@ fun RadiantSegmented(
onSelect: (Int) -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
disabledIndices: Set<Int> = emptySet(),
) {
if (radiantStyle.native) {
SingleChoiceSegmentedButtonRow(modifier = modifier.fillMaxWidth()) {
@@ -168,7 +169,7 @@ fun RadiantSegmented(
SegmentedButton(
selected = index == selectedIndex,
onClick = { onSelect(index) },
enabled = enabled,
enabled = enabled && index !in disabledIndices,
shape = SegmentedButtonDefaults.itemShape(index = index, count = options.size),
icon = {},
label = { Text(text = label, maxLines = 1) },
@@ -196,6 +197,7 @@ fun RadiantSegmented(
) {
options.forEachIndexed { index, label ->
val selected = index == selectedIndex
val segmentEnabled = enabled && index !in disabledIndices
val pillShape = RoundedCornerShape(13.dp)
val alpha by animateFloatAsState(
targetValue = if (selected) 1f else 0f,
@@ -218,7 +220,7 @@ fun RadiantSegmented(
} else Modifier
)
.clickable(
enabled = enabled,
enabled = segmentEnabled,
role = Role.RadioButton,
onClick = { onSelect(index) },
),
@@ -226,7 +228,11 @@ fun RadiantSegmented(
Text(
text = label,
style = MaterialTheme.typography.labelLarge,
color = if (selected) scheme.onPrimary else scheme.onSurfaceVariant,
color = when {
selected -> scheme.onPrimary
segmentEnabled -> scheme.onSurfaceVariant
else -> scheme.onSurface.copy(alpha = 0.38f)
},
maxLines = 1,
)
}
@@ -166,6 +166,11 @@ fun PatchAdvancedOptionsSheet(
title = choice.title,
entries = choice.entries,
selectedIndex = state.choice(patch, choice),
forceDropdown = choice.forceDropdown,
disabledIndices = patch.conflictingChoices(choice)
.map { state.choice(patch, it) }
.filter { it != 0 }
.toSet(),
onSelect = { state.setChoice(patch, choice, it) },
)
}
@@ -205,6 +210,11 @@ fun PatchAdvancedOptionsSheet(
title = option.title,
entries = option.entries,
selectedIndex = state.choice(patch, option),
forceDropdown = option.forceDropdown,
disabledIndices = patch.conflictingChoices(option)
.map { state.choice(patch, it) }
.filter { it != 0 }
.toSet(),
onSelect = { state.setChoice(patch, option, it) },
)
}
@@ -213,6 +223,7 @@ fun PatchAdvancedOptionsSheet(
title = option.title,
color = state.color(patch, option),
defaultColor = option.default,
manifestDefaultLabel = option.defaultLabel,
onColorChange = { state.setColor(patch, option, it) },
)
}
@@ -382,6 +393,8 @@ private fun ChoiceOptionRow(
selectedIndex: Int,
onSelect: (Int) -> Unit,
title: String = "",
forceDropdown: Boolean = false,
disabledIndices: Set<Int> = emptySet(),
modifier: Modifier = Modifier,
) {
Column(
@@ -397,7 +410,7 @@ private fun ChoiceOptionRow(
textAlign = TextAlign.Center,
)
}
if (entries.size > 3) {
if (forceDropdown || entries.size > 3) {
var expanded by rememberSaveable { mutableStateOf(false) }
val selectedLabel = entries.getOrNull(selectedIndex).orEmpty()
@@ -420,6 +433,7 @@ private fun ChoiceOptionRow(
entries.forEachIndexed { index, entry ->
DropdownMenuItem(
text = { Text(entry) },
enabled = index !in disabledIndices,
onClick = {
onSelect(index)
expanded = false
@@ -435,6 +449,7 @@ private fun ChoiceOptionRow(
SegmentedButton(
selected = index == selectedIndex,
onClick = { onSelect(index) },
enabled = index !in disabledIndices,
shape = SegmentedButtonDefaults.itemShape(index = index, count = entries.size),
icon = {},
label = {
@@ -457,17 +472,16 @@ private fun ColorOptionRow(
title: String,
color: Int,
defaultColor: Int,
manifestDefaultLabel: String?,
onColorChange: (Int) -> Unit,
) {
var showPicker by rememberSaveable { mutableStateOf(false) }
val selectedColor = color.withOpaqueAlpha()
val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha()
val opaqueDefault = defaultColor.withOpaqueAlpha()
val defaultLabel = if (opaqueDefault == TIDAL_GREEN) {
val defaultLabel = manifestDefaultLabel ?: if (opaqueDefault == TIDAL_GREEN) {
stringResource(R.string.patch_color_green)
} else {
stringResource(R.string.patch_waze_color_waze_default)
}
} else stringResource(R.string.patch_waze_color_waze_default)
val presets = listOf(
defaultLabel,
stringResource(R.string.patch_waze_color_tidal_cyan),
@@ -179,7 +179,12 @@ class PatchOptionsModel(
fun setChoiceValue(spec: PatchSpec, option: OptionSpec.Choice, index: Int) {
if (index !in option.entries.indices) return
optionInts = optionInts + (keyOf(spec, option) to index)
val selectedKey = keyOf(spec, option)
optionInts = normalizeChoiceSelections(
specs = listOf(spec),
values = optionInts + (selectedKey to index),
preferredKey = selectedKey,
)
}
fun colorValue(spec: PatchSpec, option: OptionSpec.Color): Int =
@@ -204,7 +209,14 @@ class PatchOptionsModel(
val prefix = "${spec.id}/"
optionBools = optionBools.filterKeys { !it.startsWith(prefix) }
optionFloats = optionFloats.filterKeys { !it.startsWith(prefix) }
optionInts = optionInts.filterKeys { !it.startsWith(prefix) }
optionInts = normalizeChoiceSelections(
specs = listOf(spec),
values = optionInts.filterKeys { !it.startsWith(prefix) },
)
}
private fun normalizeChoiceSelections(specs: List<PatchSpec>) {
optionInts = normalizeChoiceSelections(specs, optionInts)
}
val optionState: PatchOptionState = PatchOptionState(
@@ -282,6 +294,7 @@ class PatchOptionsModel(
val loaded = if (component == null) builtinSpecs else loadManifestSpecs(component) ?: builtinSpecs
mainThread {
specs = loaded
normalizeChoiceSelections(loaded)
validatePatchSelection()
specsLoading = false
}
@@ -351,6 +364,7 @@ class PatchOptionsModel(
?: loadCachedReleaseManifestSpecs() ?: builtinSpecs
mainThread {
specs = loaded
normalizeChoiceSelections(loaded)
validatePatchSelection()
specsLoading = false
}
@@ -415,6 +429,7 @@ class PatchOptionsModel(
}
init {
normalizeChoiceSelections(specs)
validatePatchSelection()
screenModelScope.launchBlock { fetchPkgNameState() }
// Default source is the latest release's manifest; custom selections drive themselves.
@@ -125,6 +125,8 @@ sealed interface OptionSpec {
val defaultIndex: Int = 0,
val values: List<String> = emptyList(),
val requiresOption: String? = null,
val forceDropdown: Boolean = false,
val distinctFrom: String? = null,
val token: String? = null,
) : OptionSpec
@@ -136,6 +138,7 @@ sealed interface OptionSpec {
override val title: String = "",
override val description: String = "",
val default: Int = 0,
val defaultLabel: String? = null,
/** Placeholder name (without the surrounding `__`) baked into the `.patch`/extension files. */
val token: String? = null,
) : OptionSpec
@@ -231,6 +234,41 @@ val OptionSpec.variantGate: Int?
fun OptionSpec.hiddenForVariant(selectedVariant: Int): Boolean =
variantGate.let { it != null && it != selectedVariant }
fun PatchSpec.conflictingChoices(option: OptionSpec.Choice): List<OptionSpec.Choice> =
advancedOptions.filterIsInstance<OptionSpec.Choice>().filter { other ->
other.key != option.key &&
(option.distinctFrom == other.key || other.distinctFrom == option.key)
}
internal fun normalizeChoiceSelections(
specs: List<PatchSpec>,
values: Map<String, Int>,
preferredKey: String? = null,
): Map<String, Int> {
val normalized = values.toMutableMap()
for (spec in specs) {
val choices = spec.advancedOptions.filterIsInstance<OptionSpec.Choice>()
fun fullKey(option: OptionSpec.Choice) = "${spec.id}/${option.key}"
fun selected(option: OptionSpec.Choice): Int =
(normalized[fullKey(option)] ?: option.defaultIndex)
.coerceIn(0, option.entries.lastIndex.coerceAtLeast(0))
for (leftIndex in choices.indices) {
val left = choices[leftIndex]
for (rightIndex in leftIndex + 1 until choices.size) {
val right = choices[rightIndex]
if (left.distinctFrom != right.key && right.distinctFrom != left.key) continue
val selected = selected(left)
if (selected == 0 || selected != selected(right)) continue
val loser = if (preferredKey == fullKey(right)) left else right
normalized[fullKey(loser)] = 0
}
}
}
return if (normalized == values) values else normalized
}
sealed interface OptionLock {
data object Free : OptionLock
data class NeedsVariant(val title: String) : OptionLock
@@ -43,6 +43,7 @@ import com.meowarex.rlmobile.ui.components.ResetToDefaultButton
import com.meowarex.rlmobile.ui.screens.patchopts.OptionLock
import com.meowarex.rlmobile.ui.screens.patchopts.OptionSpec
import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptionState
import com.meowarex.rlmobile.ui.screens.patchopts.conflictingChoices
import com.meowarex.rlmobile.ui.screens.patchopts.hiddenForVariant
import com.meowarex.rlmobile.ui.screens.patchopts.optionLock
import com.meowarex.rlmobile.ui.screens.patchopts.PatchSpec
@@ -172,6 +173,11 @@ fun PatchAdvancedOptionsSheet(
title = choice.title,
entries = choice.entries,
selectedIndex = state.choice(patch, choice),
forceDropdown = choice.forceDropdown,
disabledIndices = patch.conflictingChoices(choice)
.map { state.choice(patch, it) }
.filter { it != 0 }
.toSet(),
onSelect = { state.setChoice(patch, choice, it) },
)
}
@@ -211,6 +217,11 @@ fun PatchAdvancedOptionsSheet(
title = option.title,
entries = option.entries,
selectedIndex = state.choice(patch, option),
forceDropdown = option.forceDropdown,
disabledIndices = patch.conflictingChoices(option)
.map { state.choice(patch, it) }
.filter { it != 0 }
.toSet(),
onSelect = { state.setChoice(patch, option, it) },
)
}
@@ -219,6 +230,7 @@ fun PatchAdvancedOptionsSheet(
title = option.title,
color = state.color(patch, option),
defaultColor = option.default,
manifestDefaultLabel = option.defaultLabel,
onColorChange = { state.setColor(patch, option, it) },
)
}
@@ -382,6 +394,8 @@ private fun ChoiceOptionRow(
selectedIndex: Int,
onSelect: (Int) -> Unit,
title: String = "",
forceDropdown: Boolean = false,
disabledIndices: Set<Int> = emptySet(),
modifier: Modifier = Modifier,
) {
Column(
@@ -397,7 +411,7 @@ private fun ChoiceOptionRow(
textAlign = TextAlign.Center,
)
}
if (entries.size > 3) {
if (forceDropdown || entries.size > 3) {
var expanded by rememberSaveable { mutableStateOf(false) }
val selectedLabel = entries.getOrNull(selectedIndex).orEmpty()
@@ -416,6 +430,7 @@ private fun ChoiceOptionRow(
entries.forEachIndexed { index, entry ->
DropdownMenuItem(
text = { Text(entry) },
enabled = index !in disabledIndices,
onClick = {
onSelect(index)
expanded = false
@@ -430,6 +445,7 @@ private fun ChoiceOptionRow(
options = entries,
selectedIndex = selectedIndex,
onSelect = onSelect,
disabledIndices = disabledIndices,
)
}
}
@@ -439,17 +455,16 @@ private fun ColorOptionRow(
title: String,
color: Int,
defaultColor: Int,
manifestDefaultLabel: String?,
onColorChange: (Int) -> Unit,
) {
var showPicker by rememberSaveable { mutableStateOf(false) }
val selectedColor = color.withOpaqueAlpha()
val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha()
val opaqueDefault = defaultColor.withOpaqueAlpha()
val defaultLabel = if (opaqueDefault == TIDAL_GREEN) {
val defaultLabel = manifestDefaultLabel ?: if (opaqueDefault == TIDAL_GREEN) {
stringResource(R.string.patch_color_green)
} else {
stringResource(R.string.patch_waze_color_waze_default)
}
} else stringResource(R.string.patch_waze_color_waze_default)
val presets = listOf(
defaultLabel,
stringResource(R.string.patch_waze_color_tidal_cyan),
+173 -29
View File
@@ -8,9 +8,13 @@
# instance fields
.field private final background:Landroid/graphics/drawable/ColorDrawable;
.field private final addBackground:Landroid/graphics/drawable/ColorDrawable;
.field private final icon:Landroid/graphics/drawable/Drawable;
.field private final addIcon:Landroid/graphics/drawable/Drawable;
.field private final playNextBackground:Landroid/graphics/drawable/ColorDrawable;
.field private final playNextIcon:Landroid/graphics/drawable/Drawable;
.field private pendingRequest:Lradiant/swipe/QueueRequest;
@@ -32,12 +36,26 @@
.end method
.method private constructor <init>(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V
.locals 3
.locals 4
const/4 v0, 0x0
# ItemTouchHelper.LEFT (0x4) or ItemTouchHelper.RIGHT (0x8)
const/16 v1, __RL_SWIPE_TO_QUEUE_DIRECTION__
const/4 v1, 0x0
const/16 v2, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
if-eqz v2, :check_right
or-int/lit8 v1, v1, 0x4
:check_right
const/16 v2, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
if-eqz v2, :directions_ready
or-int/lit8 v1, v1, 0x8
:directions_ready
invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;-><init>(II)V
@@ -49,11 +67,19 @@
new-instance v1, Landroid/graphics/drawable/ColorDrawable;
const v2, __RL_SWIPE_TO_QUEUE_COLOR__
const v2, __RL_SWIPE_TO_QUEUE_ADD_COLOR__
invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;-><init>(I)V
iput-object v1, p0, Lradiant/SwipeToQueue;->background:Landroid/graphics/drawable/ColorDrawable;
iput-object v1, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable;
new-instance v1, Landroid/graphics/drawable/ColorDrawable;
const v2, __RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR__
invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;-><init>(I)V
iput-object v1, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable;
sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I
@@ -72,7 +98,30 @@
invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V
:store_icon
iput-object v0, p0, Lradiant/SwipeToQueue;->icon:Landroid/graphics/drawable/Drawable;
iput-object v0, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable;
invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v0
sget v1, Lcom/aspiro/wamp/R$drawable;->ic_play_next:I
invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
if-eqz v0, :store_play_next_icon
invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v0
const/4 v1, -0x1
invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V
:store_play_next_icon
iput-object v0, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable;
return-void
.end method
@@ -135,7 +184,7 @@
.end method
.method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I
.locals 2
.locals 3
iget-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest;
@@ -149,7 +198,22 @@
if-eqz v0, :not_swipeable
const/16 v0, __RL_SWIPE_TO_QUEUE_DIRECTION__
const/4 v0, 0x0
const/16 v1, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
if-eqz v1, :check_right
or-int/lit8 v0, v0, 0x4
:check_right
const/16 v1, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
if-eqz v1, :directions_ready
or-int/lit8 v0, v0, 0x8
:directions_ready
return v0
@@ -176,22 +240,26 @@
int-to-float v0, v0
const/16 v8, __RL_SWIPE_TO_QUEUE_DIRECTION__
const/4 v9, 0x4
if-ne v8, v9, :expect_right
cmpg-float v8, v11, v0
if-gez v8, :wrong_direction
if-ltz v8, :left_action
goto :clear_active
:expect_right
cmpl-float v8, v11, v0
if-lez v8, :wrong_direction
if-gtz v8, :right_action
goto :wrong_direction
:left_action
const/16 v8, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
goto :action_ready
:right_action
const/16 v8, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
:action_ready
if-eqz v8, :wrong_direction
goto :clear_active
@@ -217,11 +285,13 @@
move-result v4
const/16 v8, __RL_SWIPE_TO_QUEUE_DIRECTION__
const/4 v8, 0x0
const/4 v9, 0x4
int-to-float v8, v8
if-ne v8, v9, :right_bounds
cmpg-float v8, v11, v8
if-gez v8, :right_bounds
invoke-virtual {v0}, Landroid/view/View;->getRight()I
@@ -248,7 +318,34 @@
if-lez v5, :done
iget-object v6, p0, Lradiant/SwipeToQueue;->background:Landroid/graphics/drawable/ColorDrawable;
const/4 v8, 0x0
int-to-float v8, v8
cmpg-float v8, v11, v8
if-ltz v8, :draw_left_background
const/16 v8, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
goto :background_action_ready
:draw_left_background
const/16 v8, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
:background_action_ready
const/4 v9, 0x1
if-ne v8, v9, :add_background
iget-object v6, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable;
goto :background_ready
:add_background
iget-object v6, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable;
:background_ready
invoke-virtual {v6, v2, v3, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
@@ -280,6 +377,24 @@
if-eqz v10, :draw_alpha
const/4 v9, 0x0
int-to-float v9, v9
cmpg-float v9, v11, v9
if-ltz v9, :stamp_left_action
const/16 v9, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
goto :stamp_action
:stamp_left_action
const/16 v9, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
:stamp_action
iput v9, v10, Lradiant/swipe/QueueRequest;->action:I
iput-object v10, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest;
# HapticFeedbackConstants.CLOCK_TICK
@@ -334,7 +449,34 @@
:draw_background
invoke-virtual {v6, p1}, Landroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V
iget-object v6, p0, Lradiant/SwipeToQueue;->icon:Landroid/graphics/drawable/Drawable;
const/4 v8, 0x0
int-to-float v8, v8
cmpg-float v8, v11, v8
if-ltz v8, :draw_left_icon
const/16 v8, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
goto :icon_action_ready
:draw_left_icon
const/16 v8, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
:icon_action_ready
const/4 v9, 0x1
if-ne v8, v9, :draw_add_icon
iget-object v6, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable;
goto :icon_ready
:draw_add_icon
iget-object v6, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable;
:icon_ready
if-eqz v6, :done
@@ -357,11 +499,13 @@
div-int/lit8 v9, v9, 0x2
const/16 v10, __RL_SWIPE_TO_QUEUE_DIRECTION__
const/4 v10, 0x0
const/4 v11, 0x4
int-to-float v10, v10
if-ne v10, v11, :right_icon
cmpg-float v10, v11, v10
if-gez v10, :right_icon
sub-int v10, v1, v9
@@ -41,7 +41,7 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.method public invoke(I)Ljava/lang/Object;
.locals 10
iget-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->callback:Lu5/b$a$a;
@@ -166,6 +166,15 @@
invoke-virtual {v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
const/4 v8, 0x1
if-ne p1, v8, :append_track
invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append_track
invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -174,6 +183,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -154,6 +154,17 @@
invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
iget v0, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->action:I
const/4 v2, 0x1
if-ne v0, v2, :append
invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append
invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -39,8 +39,8 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.locals 7
.method public invoke(I)Ljava/lang/Object;
.locals 8
iget-wide v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J
@@ -73,12 +73,14 @@
iget-wide v4, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J
invoke-direct/range {v0 .. v5}, Lradiant/swipe/ArtistTrackCreditsQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V
move v6, p1
invoke-direct/range {v0 .. v6}, Lradiant/swipe/ArtistTrackCreditsQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V
:emit
iget-object v6, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l;
iget-object v7, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l;
invoke-interface {v6, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
:done
sget-object v0, Lkotlin/u;->a:Lkotlin/u;
@@ -86,6 +88,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/ArtistTrackCreditsQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -7,6 +7,8 @@
# instance fields
.field public final action:I
.field public final context:Landroid/content/Context;
.field public final moduleUuid:Ljava/lang/String;
@@ -17,7 +19,7 @@
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
@@ -30,5 +32,7 @@
iput-wide p4, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J
iput p6, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->action:I
return-void
.end method
@@ -158,12 +158,12 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.locals 7
.method public invoke(I)Ljava/lang/Object;
.locals 8
iget-object v6, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l;
iget-object v7, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l;
if-eqz v6, :done
if-eqz v7, :done
iget-object v4, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String;
@@ -198,12 +198,14 @@
iget-object v3, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String;
invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
move v6, p1
invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
move-object v1, v0
:emit
invoke-interface {v6, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
:done
sget-object v0, Lkotlin/u;->a:Lkotlin/u;
@@ -211,6 +213,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/CompactGridMediaQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -11,6 +11,16 @@
if-eqz p1, :done
iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I
const/4 v1, 0x1
if-lt v0, v1, :done
const/4 v1, 0x2
if-gt v0, v1, :done
iget-object v8, p1, Lradiant/swipe/ComposeSearchQueueEvent;->context:Landroid/content/Context;
if-eqz v8, :done
@@ -198,6 +208,17 @@
invoke-virtual {v4, v9}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_track
invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append_track
invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
@@ -237,6 +258,17 @@
move-result-object v9
iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_album
invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_album
invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
@@ -252,6 +284,17 @@
move-result-object v9
iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_playlist
invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append_playlist
invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
@@ -263,6 +306,17 @@
move-result-object v9
iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_mix
invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_mix
invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
:done
@@ -180,7 +180,7 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.method public invoke(I)Ljava/lang/Object;
.locals 4
iget-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->callback:Lam0/l;
@@ -201,7 +201,7 @@
new-instance p0, Lradiant/swipe/ComposeSearchQueueEvent;
invoke-direct {p0, v1, v2, v3}, Lradiant/swipe/ComposeSearchQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;I)V
invoke-direct {p0, v1, v2, v3, p1}, Lradiant/swipe/ComposeSearchQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;II)V
invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
@@ -211,6 +211,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSearchQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -17,6 +17,8 @@
# instance fields
.field public final action:I
.field public final context:Landroid/content/Context;
.field public final id:Ljava/lang/String;
@@ -25,7 +27,7 @@
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;I)V
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;II)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
@@ -36,5 +38,7 @@
iput p3, p0, Lradiant/swipe/ComposeSearchQueueEvent;->type:I
iput p4, p0, Lradiant/swipe/ComposeSearchQueueEvent;->action:I
return-void
.end method
@@ -10,5 +10,8 @@
.method public abstract invoke()Ljava/lang/Object;
.end method
.method public abstract invoke(I)Ljava/lang/Object;
.end method
.method public abstract setContext(Landroid/content/Context;)V
.end method
@@ -82,11 +82,9 @@
move-result v8
const/16 v9, __RL_SWIPE_TO_QUEUE_DIRECTION__
cmpg-float v9, v6, v1
const/4 v10, 0x4
if-ne v9, v10, :right_exposure
if-gez v9, :right_exposure
add-float v9, v3, v6
@@ -108,11 +106,41 @@
:exposure_ready
invoke-virtual {v7, v9, v1, v10, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z
iget v11, v5, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I
invoke-virtual {v5, v6}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I
move-result v11
const/4 v12, 0x1
if-ne v11, v12, :add_color
const v11, __RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR__
goto :color_ready
:add_color
const v11, __RL_SWIPE_TO_QUEUE_ADD_COLOR__
:color_ready
invoke-virtual {v7, v11}, Landroid/graphics/Canvas;->drawColor(I)V
iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->icon:Landroid/graphics/drawable/Drawable;
invoke-virtual {v5, v6}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I
move-result v11
const/4 v12, 0x1
if-ne v11, v12, :add_icon
iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable;
goto :icon_ready
:add_icon
iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable;
:icon_ready
if-eqz v11, :background_done
@@ -134,11 +162,13 @@
move-result v14
const/16 v15, __RL_SWIPE_TO_QUEUE_DIRECTION__
const/4 v15, 0x0
const/4 v1, 0x4
int-to-float v15, v15
if-ne v15, v1, :right_icon
cmpg-float v15, v6, v15
if-gez v15, :right_icon
int-to-float v1, v12
@@ -31,9 +31,9 @@
.field final draw:Lradiant/swipe/ComposeSwipeState$Draw;
.field icon:Landroid/graphics/drawable/Drawable;
.field addIcon:Landroid/graphics/drawable/Drawable;
.field backgroundColor:I
.field playNextIcon:Landroid/graphics/drawable/Drawable;
# direct methods
@@ -135,6 +135,36 @@
# virtual methods
.method actionForOffset(F)I
.locals 2
const/4 v0, 0x0
int-to-float v0, v0
cmpg-float v1, p1, v0
if-ltz v1, :left
cmpl-float p1, p1, v0
if-gtz p1, :right
const/4 p1, 0x0
return p1
:left
const/16 p1, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__
return p1
:right
const/16 p1, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__
return p1
.end method
.method animateReset()V
.locals 7
@@ -336,14 +366,14 @@
move-result v0
invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z
invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I
move-result v0
move-result v2
goto :complete_ready
:not_complete
const/4 v0, 0x0
const/4 v2, 0x0
:complete_ready
const/4 v1, 0x0
@@ -358,7 +388,7 @@
invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V
if-eqz v0, :done
if-eqz v2, :done
invoke-static {}, Lradiant/swipe/ComposeTapGuard;->suppressAfterSwipe()V
@@ -366,7 +396,7 @@
if-eqz v0, :done
invoke-interface {v0}, Lradiant/swipe/ComposeSwipeAction;->invoke()Ljava/lang/Object;
invoke-interface {v0, v2}, Lradiant/swipe/ComposeSwipeAction;->invoke(I)Ljava/lang/Object;
goto :done
@@ -380,28 +410,13 @@
.end method
.method isCorrectDirection(F)Z
.locals 3
.locals 1
const/16 v0, __RL_SWIPE_TO_QUEUE_DIRECTION__
invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I
const/4 v1, 0x4
move-result v0
const/4 v2, 0x0
if-ne v0, v1, :expect_right
cmpg-float v0, p1, v2
if-gez v0, :wrong
const/4 v0, 0x1
return v0
:expect_right
cmpl-float v0, p1, v2
if-lez v0, :wrong
if-eqz v0, :wrong
const/4 v0, 0x1
@@ -606,10 +621,6 @@
:load_resources
iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context;
const v1, __RL_SWIPE_TO_QUEUE_COLOR__
iput v1, p0, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I
sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I
invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable;
@@ -627,7 +638,26 @@
invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V
:store_icon
iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->icon:Landroid/graphics/drawable/Drawable;
iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable;
sget v1, Lcom/aspiro/wamp/R$drawable;->ic_play_next:I
invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v1
if-eqz v1, :store_play_next_icon
invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
move-result-object v1
const/4 v2, -0x1
invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V
:store_play_next_icon
iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable;
:context_ready
if-eqz p1, :enabled_ready
@@ -11,6 +11,16 @@
if-eqz p1, :done
iget v4, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v5, 0x1
if-lt v4, v5, :done
const/4 v5, 0x2
if-gt v4, v5, :done
iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String;
iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String;
@@ -172,6 +182,17 @@
if-eqz v6, :done
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_album
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_album
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
@@ -193,6 +214,17 @@
if-eqz v6, :done
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_mix
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_mix
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
@@ -208,6 +240,17 @@
move-result-object v12
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_playlist
invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append_playlist
invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
@@ -236,6 +279,17 @@
invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_track
invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append_track
invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -249,6 +303,16 @@
if-eqz p1, :done
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-lt v0, v1, :done
const/4 v1, 0x2
if-gt v0, v1, :done
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I
const/4 v1, 0x3
@@ -362,6 +426,17 @@
move-result-object v4
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_playlist
invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append_playlist
invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
:done
@@ -375,6 +450,16 @@
if-eqz p1, :done
iget v4, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v5, 0x1
if-lt v4, v5, :done
const/4 v5, 0x2
if-gt v4, v5, :done
iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String;
iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String;
@@ -536,6 +621,17 @@
if-eqz v6, :done
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_album
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_album
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
@@ -557,6 +653,17 @@
if-eqz v6, :done
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_mix
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_mix
invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
@@ -572,6 +679,17 @@
move-result-object v12
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_playlist
invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append_playlist
invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
@@ -600,6 +718,17 @@
invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
const/4 v1, 0x1
if-ne v0, v1, :append_track
invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append_track
invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -8,6 +8,8 @@
# instance fields
.field public final action:I
.field public final context:Landroid/content/Context;
.field public final itemId:Ljava/lang/String;
@@ -20,7 +22,7 @@
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
@@ -35,5 +37,7 @@
iput p5, p0, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I
iput p6, p0, Lradiant/swipe/DynamicMediaQueueEvent;->action:I
return-void
.end method
@@ -162,6 +162,17 @@
invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
iget v0, p1, Lradiant/swipe/DynamicTrackQueueEvent;->action:I
const/4 v2, 0x1
if-ne v0, v2, :append
invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append
invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -39,8 +39,8 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.locals 7
.method public invoke(I)Ljava/lang/Object;
.locals 8
iget-wide v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J
@@ -73,12 +73,14 @@
iget-wide v4, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J
invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicTrackQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V
move v6, p1
invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicTrackQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V
:emit
iget-object v6, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l;
iget-object v7, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l;
invoke-interface {v6, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
:done
sget-object v0, Lkotlin/u;->a:Lkotlin/u;
@@ -86,6 +88,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/DynamicTrackQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -7,6 +7,8 @@
# instance fields
.field public final action:I
.field public final context:Landroid/content/Context;
.field public final moduleUuid:Ljava/lang/String;
@@ -17,7 +19,7 @@
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
@@ -30,5 +32,7 @@
iput-wide p4, p0, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J
iput p6, p0, Lradiant/swipe/DynamicTrackQueueEvent;->action:I
return-void
.end method
@@ -472,7 +472,9 @@
# virtual methods
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 8
.locals 9
iget v8, p1, Lradiant/swipe/QueueRequest;->action:I
iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object;
@@ -506,7 +508,7 @@
invoke-virtual {v1, v2}, Lradiant/swipe/AlbumItemQueueAction;->setContext(Landroid/content/Context;)V
invoke-virtual {v1}, Lradiant/swipe/AlbumItemQueueAction;->invoke()Ljava/lang/Object;
invoke-virtual {v1, v8}, Lradiant/swipe/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object;
return-void
@@ -622,6 +624,15 @@
move-result-object v5
const/4 v0, 0x1
if-ne v8, v0, :append_track
invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append_track
invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -63,7 +63,9 @@
check-cast v2, Lcom/aspiro/wamp/model/FavoriteTrack;
invoke-virtual {v0, v1, v2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V
iget p1, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-virtual {v0, v1, v2, p1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;I)V
:done
return-void
@@ -333,6 +333,8 @@
iget-object v1, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference;
iget p0, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v1
@@ -408,6 +410,15 @@
check-cast v7, Lcom/aspiro/wamp/model/Playlist;
const/4 v0, 0x1
if-ne p0, v0, :append_playlist
invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append_playlist
invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
@@ -427,6 +438,17 @@
check-cast v7, Lcom/aspiro/wamp/model/Album;
const/4 v0, 0x1
if-ne p0, v0, :append_album
invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v7
goto :retain
:append_album
invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v7
@@ -436,6 +458,17 @@
:queue_mix
check-cast v7, Lcom/aspiro/wamp/mix/model/Mix;
const/4 v0, 0x1
if-ne p0, v0, :append_mix
invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v7
goto :retain
:append_mix
invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v7
@@ -122,6 +122,8 @@
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 7
iget v6, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/MyAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a;
move-result-object p1
@@ -158,12 +160,24 @@
iget-object v5, v1, Lfd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;
iget-object v6, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo;
iget-object p0, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo;
invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
const/4 v1, 0x1
if-ne v6, v1, :append
invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object p1
goto :retain
:append
invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object p1
:retain
if-eqz p1, :done
iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->j:Lio/reactivex/disposables/CompositeDisposable;
@@ -152,7 +152,9 @@
# virtual methods
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 7
.locals 8
iget v7, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/MyMixesAndRadioResolver;->current(Lradiant/swipe/QueueRequest;)Lve/a;
@@ -194,12 +196,24 @@
invoke-direct {v5, v6}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;-><init>(Ljava/lang/String;)V
iget-object v6, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo;
iget-object p0, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo;
invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
const/4 v1, 0x1
if-ne v7, v1, :append
invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object p1
goto :retain
:append
invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object p1
:retain
if-eqz p1, :done
iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->h:Lio/reactivex/disposables/CompositeDisposable;
@@ -157,6 +157,8 @@
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 6
iget v5, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/MyPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b;
move-result-object p1
@@ -185,9 +187,18 @@
iget-object v4, v1, Lhf/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;
iget-object v5, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo;
iget-object p0, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo;
invoke-static {v2, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
const/4 v0, 0x1
if-ne v5, v0, :append
invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append
invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
:done
return-void
@@ -243,7 +243,9 @@
# virtual methods
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 8
.locals 9
iget v8, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/PlaylistItemsResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object;
move-result-object v0
@@ -301,6 +303,15 @@
:append
invoke-virtual {v2}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v3
const/4 v0, 0x1
if-ne v8, v0, :append_track
invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append_track
invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
@@ -39,8 +39,8 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.locals 6
.method public invoke(I)Ljava/lang/Object;
.locals 7
iget-object v0, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l;
@@ -62,7 +62,9 @@
const/4 v5, 0x3
invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
move v6, p1
invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l;
@@ -74,6 +76,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/PublicPlaylistQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -4,6 +4,41 @@
# direct methods
.method private static activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity;
.locals 1
:unwrap
instance-of v0, p0, Landroidx/fragment/app/FragmentActivity;
if-nez v0, :ready
instance-of v0, p0, Landroid/content/ContextWrapper;
if-eqz v0, :invalid
check-cast p0, Landroid/content/ContextWrapper;
invoke-virtual {p0}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context;
move-result-object v0
if-eq v0, p0, :invalid
move-object p0, v0
goto :unwrap
:ready
check-cast p0, Landroidx/fragment/app/FragmentActivity;
return-object p0
:invalid
const/4 p0, 0x0
return-object p0
.end method
.method public static album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
.locals 8
@@ -304,6 +339,210 @@
return-void
.end method
.method public static playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
.locals 3
const/4 v0, 0x0
if-eqz p1, :done
invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
move-result v1
if-eqz v1, :play
if-eqz p4, :done
invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity;
move-result-object p0
if-eqz p0, :done
iget-object v1, p4, Lh4/a;->b:Lo3/a$a;
invoke-interface {v1, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a;
move-result-object v1
iget-object v1, v1, Lo3/a;->d:Lc3/l$a;
invoke-interface {v1, p1, p2, p3}, Lc3/l$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l;
move-result-object p1
invoke-virtual {p1, p0}, Lc3/l;->b(Landroidx/fragment/app/FragmentActivity;)V
goto :done
:play
invoke-static {p0, p1, p2, p3, p4}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v0
:done
return-object v0
.end method
.method public static playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
.locals 2
const/4 v0, 0x0
if-eqz p1, :done
invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
move-result v1
if-eqz v1, :play
if-eqz p4, :done
invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity;
move-result-object p0
if-eqz p0, :done
iget-object v1, p4, Lh4/a;->h:Lu3/a$a;
invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a;
move-result-object v1
iget-object v1, v1, Lu3/a;->d:Lj3/q$a;
invoke-interface {v1, p1, p2, p3}, Lj3/q$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q;
move-result-object p1
invoke-virtual {p1, p0}, Lj3/q;->b(Landroidx/fragment/app/FragmentActivity;)V
goto :done
:play
invoke-static {p0, p1, p2, p3, p4}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v0
:done
return-object v0
.end method
.method public static playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
.locals 2
if-eqz p1, :done
invoke-virtual {p1}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I
move-result v0
if-lez v0, :done
invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
move-result v0
if-eqz v0, :play
invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity;
move-result-object p0
if-eqz p0, :done
invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App;
move-result-object v0
invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c;
move-result-object v0
check-cast v0, Le5/z$n2;
iget-object v0, v0, Le5/z$n2;->v8:Ldagger/internal/f;
invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;
invoke-interface {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u;
move-result-object p1
invoke-virtual {p1, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/u;->b(Landroidx/fragment/app/FragmentActivity;)V
goto :done
:play
invoke-static {p0, p1, p2, p3}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
:done
return-void
.end method
.method public static playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
.locals 2
const/4 v0, 0x0
if-eqz p1, :done
invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
move-result v1
if-eqz v1, :play
invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity;
move-result-object p0
if-eqz p0, :done
invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App;
move-result-object v1
invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c;
move-result-object v1
check-cast v1, Le5/z$n2;
iget-object v1, v1, Le5/z$n2;->K9:Ldagger/internal/f;
invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lm3/i$a;
invoke-interface {v1, p1, p2, p3}, Lm3/i$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/i;
move-result-object p1
invoke-virtual {p1, p0}, Lm3/i;->b(Landroidx/fragment/app/FragmentActivity;)V
const/4 v0, 0x1
goto :done
:play
invoke-static {p0, p1, p2, p3}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
move-result v0
:done
return v0
.end method
.method public static track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
.locals 2
@@ -2,8 +2,17 @@
.super Ljava/lang/Object;
.source "QueueRequest.smali"
# static fields
.field public static final ACTION_NONE:I = 0x0
.field public static final ACTION_PLAY_NEXT:I = 0x1
.field public static final ACTION_ADD_TO_QUEUE:I = 0x2
# instance fields
.field public action:I
.field public final id:I
.field public final media:Ljava/lang/Object;
@@ -122,6 +122,8 @@
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 7
iget v6, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/SearchAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a;
move-result-object p1
@@ -158,12 +160,24 @@
iget-object v5, v1, Lld/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;
iget-object v6, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo;
iget-object p0, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo;
invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
const/4 v1, 0x1
if-ne v6, v1, :append
invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object p1
goto :retain
:append
invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object p1
:retain
if-eqz p1, :done
iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->g:Lio/reactivex/disposables/CompositeDisposable;
@@ -155,7 +155,9 @@
# virtual methods
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 6
.locals 7
iget v6, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/SearchPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b;
@@ -189,9 +191,18 @@
invoke-direct {v4, v5}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;-><init>(Ljava/lang/String;)V
iget-object v5, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo;
iget-object p0, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo;
invoke-static {v2, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
const/4 v0, 0x1
if-ne v6, v0, :append
invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append
invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
:done
return-void
@@ -303,7 +303,7 @@
# virtual methods
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 4
.locals 7
invoke-direct {p0, p1}, Lradiant/swipe/SuggestionsResolver;->current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;
@@ -311,18 +311,75 @@
if-eqz v0, :done
iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v0
invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l;
move-result-object v1
if-eqz v1, :done
iget v2, p1, Lradiant/swipe/QueueRequest;->action:I
const/4 v3, 0x1
if-ne v2, v3, :default_action
invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
move-result v2
if-eqz v2, :default_action
invoke-virtual {v0}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getMediaItem()Lcom/aspiro/wamp/model/Track;
move-result-object v2
invoke-virtual {v2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I
move-result v3
invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v3
new-instance v4, Lcom/aspiro/wamp/model/MediaItemParent;
invoke-direct {v4, v2}, Lcom/aspiro/wamp/model/MediaItemParent;-><init>(Lcom/aspiro/wamp/model/MediaItem;)V
invoke-static {v4}, Lkotlin/collections/u;->h(Ljava/lang/Object;)Ljava/util/List;
move-result-object v4
check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;
iget-object v5, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->j:Lcom/tidal/android/navigation/NavigationInfo;
invoke-static {v3, v4, v5}, Lcom/aspiro/wamp/playqueue/source/model/b;->p(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;
move-result-object v6
new-instance v4, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;
const-string v3, "suggestions"
invoke-direct {v4, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;-><init>(Ljava/lang/String;)V
iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/fragment/app/Fragment;
invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0, v2, v4, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:default_action
iget p1, p1, Lradiant/swipe/QueueRequest;->position:I
invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
@@ -212,7 +212,9 @@
# virtual methods
.method public execute(Lradiant/swipe/QueueRequest;)V
.locals 8
.locals 9
iget v8, p1, Lradiant/swipe/QueueRequest;->action:I
invoke-direct {p0, p1}, Lradiant/swipe/UnifiedSearchResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object;
move-result-object v0
@@ -271,6 +273,15 @@
invoke-virtual {p1, v6}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v0
const/4 v2, 0x1
if-ne v8, v2, :queue_append_track
invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:queue_append_track
invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
@@ -285,6 +296,15 @@
iget-object v6, v0, Lbm/a;->a:Lcom/aspiro/wamp/model/Album;
invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v7
const/4 v0, 0x1
if-ne v8, v0, :append_album
invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_album
invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v0
if-eqz v0, :done
@@ -299,6 +319,15 @@
iget-object v5, v0, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist;
invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v6
const/4 v0, 0x1
if-ne v8, v0, :append_playlist
invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
:append_playlist
invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V
goto :done
@@ -313,6 +342,15 @@
iget-object v6, v0, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix;
invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context;
move-result-object v7
const/4 v0, 0x1
if-ne v8, v0, :append_mix
invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
goto :done
:append_mix
invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable;
move-result-object v0
if-eqz v0, :done
@@ -198,12 +198,12 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.locals 7
.method public invoke(I)Ljava/lang/Object;
.locals 8
iget-object v6, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l;
iget-object v7, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l;
if-eqz v6, :done
if-eqz v7, :done
iget-object v4, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String;
@@ -245,12 +245,14 @@
iget-object v3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String;
invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
move v6, p1
invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
move-object v1, v0
:emit
invoke-interface {v6, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
:done
sget-object v0, Lkotlin/u;->a:Lkotlin/u;
@@ -258,6 +260,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/VerticalMediaQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
@@ -8,7 +8,7 @@
# direct methods
.method public static handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;J)V
.method public static handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;JI)V
.locals 10
if-eqz p0, :done
@@ -101,6 +101,15 @@
invoke-virtual {v9, v3}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V
const/4 v0, 0x1
if-ne p4, v0, :append
invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
goto :done
:append
invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
:done
@@ -108,7 +117,7 @@
.end method
.method public static handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z
.locals 5
.locals 6
instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c;
@@ -138,15 +147,39 @@
move-result-object v0
const/16 v1, 0x3a
invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I
move-result v1
if-lez v1, :not_handled
const/4 v2, 0x0
invoke-virtual {v0, v2, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v4
add-int/lit8 v1, v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v1
sget-object v3, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference;
const/4 v4, 0x0
const/4 v5, 0x0
sput-object v4, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference;
sput-object v5, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference;
if-eqz v3, :handled
@@ -156,7 +189,7 @@
check-cast v3, Landroid/content/Context;
invoke-static {p0, v3, v1, v2}, Lradiant/swipe/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;J)V
invoke-static {p0, v3, v1, v2, v4}, Lradiant/swipe/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;JI)V
:handled
const/4 v0, 0x1
@@ -169,7 +202,7 @@
return v0
.end method
.method public static marker(J)Ljava/lang/String;
.method public static marker(JI)Ljava/lang/String;
.locals 2
new-instance v0, Ljava/lang/StringBuilder;
@@ -178,6 +211,12 @@
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const/16 v1, 0x3a
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
@@ -31,7 +31,7 @@
# virtual methods
.method public invoke()Ljava/lang/Object;
.method public invoke(I)Ljava/lang/Object;
.locals 5
iget-object v0, p0, Lradiant/swipe/ViewAllTrackQueueAction;->callback:Lam0/l;
@@ -52,7 +52,7 @@
invoke-static {v3}, Lradiant/swipe/ViewAllTrackQueue;->setContext(Landroid/content/Context;)V
invoke-static {v1, v2}, Lradiant/swipe/ViewAllTrackQueue;->marker(J)Ljava/lang/String;
invoke-static {v1, v2, p1}, Lradiant/swipe/ViewAllTrackQueue;->marker(JI)Ljava/lang/String;
move-result-object v3
@@ -80,6 +80,18 @@
return-object v0
.end method
.method public invoke()Ljava/lang/Object;
.locals 1
const/4 v0, 0x2
invoke-virtual {p0, v0}, Lradiant/swipe/ViewAllTrackQueueAction;->invoke(I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public setContext(Landroid/content/Context;)V
.locals 0
+58 -9
View File
@@ -476,26 +476,75 @@
"advancedOptions": [
{
"type": "choice",
"key": "swipe_direction",
"title": "Swipe Direction",
"description": "Choose direction of the swipe gesture",
"key": "left_action",
"title": "Left Swipe Action",
"description": "Choose the action for a left swipe",
"entries": [
"Left",
"Right"
"Disabled",
"Play next",
"Add to queue"
],
"values": [
"0x0",
"0x1",
"0x2"
],
"defaultIndex": 2,
"distinctFrom": "right_action",
"token": "RL_SWIPE_TO_QUEUE_LEFT_ACTION"
},
{
"type": "choice",
"key": "right_action",
"title": "Right Swipe Action",
"description": "Choose the action for a right swipe",
"entries": [
"Disabled",
"Play next",
"Add to queue"
],
"values": [
"0x0",
"0x1",
"0x2"
],
"defaultIndex": 0,
"distinctFrom": "left_action",
"token": "RL_SWIPE_TO_QUEUE_RIGHT_ACTION"
},
{
"type": "choice",
"key": "remove_direction",
"title": "Remove Track from Queue",
"description": "Choose the swipe direction used to remove items from the play queue",
"entries": [
"Left swipe",
"Right swipe",
"Both"
],
"values": [
"0x4",
"0x8"
"0x8",
"0xc"
],
"defaultIndex": 0,
"token": "RL_SWIPE_TO_QUEUE_DIRECTION"
"token": "RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION"
},
{
"type": "color",
"key": "background_color",
"title": "Background Color",
"title": "Add to Queue Color",
"default": -14748953,
"defaultLabel": "Cyan",
"token": "RL_SWIPE_TO_QUEUE_ADD_COLOR"
},
{
"type": "color",
"key": "play_next_color",
"title": "Play Next Color",
"default": -14749031,
"token": "RL_SWIPE_TO_QUEUE_COLOR"
"defaultLabel": "Green",
"token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR"
}
]
},
+28 -9
View File
@@ -1,6 +1,6 @@
--- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali
+++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali
@@ -107,6 +107,124 @@
@@ -107,6 +107,143 @@
.end method
@@ -54,7 +54,7 @@
+ return v0
+.end method
+
+.method public final Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V
+.method public final Z(ILcom/aspiro/wamp/model/FavoriteTrack;I)V
+ .locals 6
+
+ move v5, p1
@@ -102,10 +102,29 @@
+
+ move-object v2, p2
+
+ const/4 p1, 0x1
+
+ if-ne p3, p1, :rl_favorite_append
+
+ invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z
+ move-result p1
+ if-nez p1, :rl_favorite_play_next
+ const/4 v0, 0x0
+ goto :rl_favorite_result
+ :rl_favorite_play_next
+ invoke-static {v1, v2, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
+
+ move-result v0
+
+ goto :rl_favorite_result
+
+ :rl_favorite_append
+ invoke-virtual/range {v0 .. v4}, Lh4/a;->q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z
+
+ move-result v0
+
+ :rl_favorite_result
+
+ if-nez v0, :done
+
+ # if nothing is playing, call row click handler to play the track directly instead of adding it to queue
@@ -125,7 +144,7 @@
# virtual methods
.method public final M()Ln8/b;
.locals 1
@@ -2265,9 +2418,16 @@
@@ -2265,9 +2437,16 @@
iput-object p0, p1, Lo4/g;->e:Lo4/g$e;
.line 224
@@ -334,7 +353,7 @@
.line 32
.line 33
- const/4 v1, 0x4
+ const/16 v1, __RL_SWIPE_TO_QUEUE_DIRECTION__
+ const/16 v1, __RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION__
.line 34
:cond_1
@@ -393,7 +412,7 @@
--- a/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali
+++ b/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali
@@ -1176,6 +1176,8 @@
@@ -1176,8 +1176,10 @@
.line 69
.line 70
.line 71
@@ -406,7 +425,7 @@
.line 74
--- a/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali
+++ b/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali
@@ -5193,6 +5193,8 @@
@@ -5193,8 +5193,10 @@
.line 127
.line 128
.line 129
@@ -419,7 +438,7 @@
.line 132
--- a/com/aspiro/wamp/search/v2/UnifiedSearchView.smali
+++ b/com/aspiro/wamp/search/v2/UnifiedSearchView.smali
@@ -1596,6 +1596,8 @@
@@ -1596,8 +1596,10 @@
.line 60
.line 61
.line 62
@@ -432,7 +451,7 @@
.line 65
--- a/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali
+++ b/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali
@@ -1204,6 +1204,8 @@
@@ -1204,8 +1204,10 @@
.line 69
.line 70
.line 71
@@ -458,7 +477,7 @@
.line 41
--- a/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali
+++ b/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali
@@ -876,8 +876,10 @@
@@ -876,7 +876,9 @@
.line 96
invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V