From ae145691c544a27deaca00ed9254c5ece4889cb7 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Thu, 14 Jul 2022 21:15:29 +0300 Subject: [PATCH] Fixed vkx inj + some fixes --- .../libvkx/client/LibVKXBoomModel.java | 40 +++++++++++++++++++ .../client/LibVKXBoomModelProvider.java | 19 +++++++++ .../libvkx/client/LibVKXClient.java | 16 +++++++- .../lite/ui/fragments/MediaFragment.java | 12 ++++++ smali/res/xml/preferences_interface.xml | 2 +- .../vk/music/model/IpcPlayerModelImpl.smali | 10 ----- .../com/vk/music/model/PlayerModelImpl.smali | 9 +++++ .../com/vtosters/lite/VKApplication.smali | 4 ++ 8 files changed, 99 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModel.java create mode 100644 app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModelProvider.java diff --git a/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModel.java b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModel.java new file mode 100644 index 000000000..01412ab26 --- /dev/null +++ b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModel.java @@ -0,0 +1,40 @@ +package bruhcollective.itaysonlab.libvkx.client; +import android.content.Context; +import android.util.Log; + +import com.vk.dto.music.MusicTrack; +import com.vk.music.common.BoomModel; +import com.vk.music.common.MusicPlaybackLaunchContext; +import com.vk.music.player.PlayerModel; + +import b.h.g.g.PackageManagerHelper; + +public class LibVKXBoomModel implements BoomModel{ + private final PlayerModel playerModel; + + public LibVKXBoomModel(PlayerModel playerModel) { + this.playerModel = playerModel; + } + + // Has/Hasn't application + @Override + public boolean b() { + return PackageManagerHelper.a(ClientConstants.PACKAGE, 128) != null; + } + + @Override + public void a(Context context, int i, int i1, String s, From from, MusicPlaybackLaunchContext musicPlaybackLaunchContext){ + Log.d("libvkx:boom", "using LibVKXBoomModel"); + } + + @Override + public void a(Context context, MusicTrack musicTrack, From from, MusicPlaybackLaunchContext musicPlaybackLaunchContext) { + Log.d("libvkx:model", " track = "+musicTrack+" / from = "+from+" / context"+musicPlaybackLaunchContext); + // AudioSetForDownloadRequest + } + + @Override + public void a(Context context, From from) { + Log.d("libvkx:model", " from = "+from); + } +} diff --git a/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModelProvider.java b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModelProvider.java new file mode 100644 index 000000000..63247c97e --- /dev/null +++ b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXBoomModelProvider.java @@ -0,0 +1,19 @@ +package bruhcollective.itaysonlab.libvkx.client; +import android.util.Log; + +import com.vk.music.common.BoomModel; +import com.vk.music.n.BoomModelImpl; +import com.vk.music.player.PlayerModel; +import com.vk.music.restriction.MusicRestrictionManager; + +public class LibVKXBoomModelProvider{ + public static BoomModel createModel(PlayerModel playerModel, MusicRestrictionManager restrictionManager) { + if (LibVKXClient.isIntegrationEnabled()) { + Log.d("libvkx:boom", "using LibVKXBoomModel"); + return new LibVKXBoomModel(playerModel); + } else { + Log.d("libvkx:boom", "using BoomModelImpl"); + return new BoomModelImpl(playerModel, restrictionManager); + } + } +} diff --git a/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java index 8d46a36f5..bf670488d 100644 --- a/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java +++ b/app/src/main/java/bruhcollective/itaysonlab/libvkx/client/LibVKXClient.java @@ -1,9 +1,11 @@ package bruhcollective.itaysonlab.libvkx.client; import static ru.vtosters.lite.utils.Globals.getContext; +import static ru.vtosters.lite.utils.Globals.sendToast; import static ru.vtosters.lite.utils.Preferences.getBoolValue; import android.content.Context; +import android.os.Build; import android.os.RemoteException; import com.vk.dto.music.MusicTrack; @@ -32,8 +34,13 @@ public class LibVKXClient{ } public static boolean isVkxInstalled(){ - return PackageManagerHelper.a(ClientConstants.PACKAGE, 128) != null; - } + try { + getContext().getPackageManager().getPackageInfo("ua.itaysonlab.vkx", 0); + return true; + } catch (Exception unused) { + return false; + } + } // VKX check public static boolean isIntegrationEnabled(){ return getBoolValue("libvkx_integration", false) && isVkxInstalled(); @@ -44,6 +51,11 @@ public class LibVKXClient{ return false; } + if (Build.VERSION.SDK_INT >= 31) { + sendToast("Интеграция не поддерживается на версии Android >= 12"); + return false; + } + LibVKXClientImpl.LibVKXAction action = iLibVkxService -> LibVKXClient.lambdaplay(list, musicTrack, playerRefer, iLibVkxService); return getInstance().runOnService(action); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java index 87bcd0e53..b357ace17 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java @@ -1,6 +1,8 @@ package ru.vtosters.lite.ui.fragments; +import static ru.vtosters.lite.utils.Globals.edit; import static ru.vtosters.lite.utils.Globals.getIdentifier; +import static ru.vtosters.lite.utils.Globals.restartApplicationWithTimer; import static ru.vtosters.lite.utils.Themes.getAccentColor; import static ru.vtosters.lite.utils.Themes.getAlertStyle; import static ru.vtosters.lite.utils.Themes.getTextAttr; @@ -55,6 +57,7 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment{ private void prefs(){ findPreference("download_video").setOnPreferenceClickListener(new MediaFragment.download()); + findPreference("dateformat").setOnPreferenceChangeListener(new MediaFragment.restart()); } public class download implements Preference.OnPreferenceClickListener{ @@ -64,4 +67,13 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment{ return true; } } + + public static class restart implements Preference.OnPreferenceChangeListener{ + @Override + public boolean onPreferenceChange(Preference preference, Object o){ + edit().putString("dateformat", o.toString()).commit(); + restartApplicationWithTimer(); + return false; + } + } } diff --git a/smali/res/xml/preferences_interface.xml b/smali/res/xml/preferences_interface.xml index 888bfd030..04b359b54 100644 --- a/smali/res/xml/preferences_interface.xml +++ b/smali/res/xml/preferences_interface.xml @@ -49,7 +49,7 @@ android:defaultValue="false" android:key="friendsblock" android:summary="Скрыть блок рекомендаций друзей в друзьях" - android:title="Блок друзей" /> + android:title="Скрыть друзей" /> play(Lcom/vk/dto/music/MusicTrack;Ljava/util/List;Lcom/vk/music/common/MusicPlaybackLaunchContext;)Z - - move-result v0 - - if-eqz v0, :cond_b - - return-void - - :cond_b invoke-static {p0}, Lcom/vk/music/model/IpcPlayerModelImpl;->a(Lcom/vk/music/model/IpcPlayerModelImpl;)Lcom/vk/audioipc/core/AudioPlayer; move-result-object v0 diff --git a/smali/smali_classes3/com/vk/music/model/PlayerModelImpl.smali b/smali/smali_classes3/com/vk/music/model/PlayerModelImpl.smali index 587bf0c61..25cdee934 100644 --- a/smali/smali_classes3/com/vk/music/model/PlayerModelImpl.smali +++ b/smali/smali_classes3/com/vk/music/model/PlayerModelImpl.smali @@ -975,6 +975,15 @@ } .end annotation + invoke-static {p1, p2, p4}, Lbruhcollective/itaysonlab/libvkx/client/LibVKXClient;->play(Lcom/vk/dto/music/MusicTrack;Ljava/util/List;Lcom/vk/music/common/MusicPlaybackLaunchContext;)Z + + move-result v0 + + if-eqz v0, :cond_b + + return-void + + :cond_b const/4 v0, 0x4 new-array v0, v0, [Ljava/lang/Object; diff --git a/smali/smali_classes4/com/vtosters/lite/VKApplication.smali b/smali/smali_classes4/com/vtosters/lite/VKApplication.smali index 613fbce7b..7d1490aa1 100644 --- a/smali/smali_classes4/com/vtosters/lite/VKApplication.smali +++ b/smali/smali_classes4/com/vtosters/lite/VKApplication.smali @@ -827,6 +827,10 @@ invoke-direct {v2, v0, v3}, Lcom/vk/music/n/BoomModelImpl;->(Lcom/vk/music/player/PlayerModel;Lcom/vk/music/restriction/MusicRestrictionManager;)V + invoke-static {v1, v3}, Lbruhcollective/itaysonlab/libvkx/client/LibVKXBoomModelProvider;->createModel(Lcom/vk/music/player/PlayerModel;Lcom/vk/music/restriction/MusicRestrictionManager;)Lcom/vk/music/common/BoomModel; + + move-result-object v2 + invoke-virtual {v1, v2}, Lcom/vk/music/common/Music$a;->a(Lcom/vk/music/common/BoomModel;)V .line 12