diff --git a/app/src/main/java/ru/vtosters/lite/hooks/ui/MusicBottomSheetHook.java b/app/src/main/java/ru/vtosters/lite/hooks/ui/MusicBottomSheetHook.java new file mode 100644 index 000000000..c105f0dff --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/hooks/ui/MusicBottomSheetHook.java @@ -0,0 +1,37 @@ +package ru.vtosters.lite.hooks.ui; + +import com.vk.dto.music.MusicTrack; +import com.vk.music.bottomsheets.a.MusicAction; +import com.vtosters.lite.R; + +import java.util.ArrayList; +import java.util.List; + +import bruhcollective.itaysonlab.libvkx.client.LibVKXClient; +import bruhcollective.itaysonlab.libvkx.client.LibVKXClientImpl; +import ru.vtosters.lite.utils.AndroidUtils; + +public class MusicBottomSheetHook { + public static ArrayList hook(ArrayList actions) { + if (LibVKXClient.isVkxInstalled()) { + actions.add(getPlayInVKXAction()); + } + return actions; + } + + public static boolean tryPlayInVKX(MusicTrack track) { + LibVKXClientImpl.LibVKXAction action = iLibVkxService -> LibVKXClient.lambdaplay(List.of(track), track, iLibVkxService); + return LibVKXClient.getInstance().runOnService(action); + } + + private static MusicAction getPlayInVKXAction() { + return new MusicAction( + AndroidUtils.getIdentifier("play_in_vkx", "id"), + R.drawable.ic_music_24, + AndroidUtils.getIdentifier("play_in_vkx", "string"), + R.color.caption_gray, + R.string.music_talkback_empty, + false + ); + } +} diff --git a/smali/res/values/ids.xml b/smali/res/values/ids.xml index d70f23ce4..06709c2b8 100644 --- a/smali/res/values/ids.xml +++ b/smali/res/values/ids.xml @@ -3914,4 +3914,5 @@ + diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml index 8724ee183..2523551b8 100644 --- a/smali/res/values/strings.xml +++ b/smali/res/values/strings.xml @@ -6091,6 +6091,8 @@ May look like a fake leaving the online" Download as mp3 Delete from cache + Play the track in VK X + Thank you for supporting the project! Support the project with a donation and get rewards diff --git a/smali/smali_classes3/com/vk/music/bottomsheets/track/MusicTrackBottomSheetClickListener.smali b/smali/smali_classes3/com/vk/music/bottomsheets/track/MusicTrackBottomSheetClickListener.smali index d262c0f5a..0bd9fe504 100644 --- a/smali/smali_classes3/com/vk/music/bottomsheets/track/MusicTrackBottomSheetClickListener.smali +++ b/smali/smali_classes3/com/vk/music/bottomsheets/track/MusicTrackBottomSheetClickListener.smali @@ -709,6 +709,12 @@ move-result p1 + invoke-static {v0}, Lru/vtosters/lite/hooks/ui/MusicBottomSheetHook;->tryPlayInVKX(Lcom/vk/dto/music/MusicTrack;)Z + + move-result v3 + + if-nez v3, :cond_7 + const v3, 0x7f0a0870 const/4 v4, 0x0 diff --git a/smali/smali_classes3/com/vk/music/bottomsheets/track/d/VkMusicTrackBottomSheetActionsFactory.smali b/smali/smali_classes3/com/vk/music/bottomsheets/track/d/VkMusicTrackBottomSheetActionsFactory.smali index f07c58a37..e7c1202bc 100644 --- a/smali/smali_classes3/com/vk/music/bottomsheets/track/d/VkMusicTrackBottomSheetActionsFactory.smali +++ b/smali/smali_classes3/com/vk/music/bottomsheets/track/d/VkMusicTrackBottomSheetActionsFactory.smali @@ -738,5 +738,11 @@ :cond_a :goto_3 + + # invoke static ru.vtosters.lite.hooks.ui.MusicBottomSheetHook.hook(ArrayList actions) + invoke-static {v3}, Lru/vtosters/lite/hooks/ui/MusicBottomSheetHook;->hook(Ljava/util/ArrayList;)Ljava/util/ArrayList; + + move-result-object v3 + return-object v3 .end method