From 7f304950a8baa309a60bd118bd9283efc9cd5efe Mon Sep 17 00:00:00 2001 From: aliveoutside <53598473+aliveoutside@users.noreply.github.com> Date: Sat, 22 Oct 2022 20:32:16 +0300 Subject: [PATCH] [music] support new catalogs --- .../ru/vtosters/lite/hooks/JsonInjectors.java | 49 +++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java b/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java index cf1824375..7d4b1d06e 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java @@ -165,7 +165,8 @@ public class JsonInjectors { var isPicture = pic.endsWith(".png") || pic.endsWith(".jpg") || pic.endsWith(".jpeg") || pic.endsWith(".webp"); - if (isVerified(peerid)) text = AndroidUtils.getString(R.string.i_bought) + " VTosters Premium"; + if (isVerified(peerid)) + text = AndroidUtils.getString(R.string.i_bought) + " VTosters Premium"; if (isPrometheus(peerid)) text = AndroidUtils.getString(R.string.i_bought) + " VTosters Premium Gold Prime Pro Plus"; if (isDeveloper(peerid)) text = AndroidUtils.getString(R.string.i_created_poop); @@ -253,6 +254,27 @@ public class JsonInjectors { } } + var section = json.optJSONObject("section"); + if (section != null) { + var blocks = section.optJSONArray("blocks"); + if (blocks != null) { + for (int i = 0; i < blocks.length(); i++) { + var block = blocks.optJSONObject(i); + var layout = block.optJSONObject("layout"); + if (layout != null) { + var name = layout.optString("name"); + if (name.equals("header_extended")) { + if (layout.has("top_title")) blocks.remove(i); + try { + layout.put("name", "header"); + } catch (JSONException e) { + e.printStackTrace(); + } + } + } + } + } + } return json; } @@ -380,6 +402,26 @@ public class JsonInjectors { if (oldItems != null && oldItems.optJSONObject(0).optString("url").contains("general")) { json.optJSONArray("playlists").put(getPlaylist()); + var blocks = oldItems.optJSONObject(0).optJSONArray("blocks"); + if (blocks != null) { + for (int i = 0; i < blocks.length(); i++) { + var block = blocks.optJSONObject(i); + var layout = block.optJSONObject("layout"); + if (layout != null) { + var name = layout.optString("name"); + if (name.equals("header_extended")) { + if (layout.has("top_title")) blocks.remove(i); + try { + layout.put("name", "header"); + } catch (JSONException e) { + e.printStackTrace(); + } + } + } + } + } + + if (podcastcatalog()) { var podcasts = fetchCatalogPodcast(); if (podcasts != null) { @@ -449,11 +491,10 @@ public class JsonInjectors { } } - if (CacheDatabaseDelegate.hasTracks() && !LibVKXClient.isIntegrationEnabled()){ // inj in playlist list - var blocks = oldItems.optJSONObject(0).optJSONArray("blocks"); + if (CacheDatabaseDelegate.hasTracks() && !LibVKXClient.isIntegrationEnabled()) { // inj in playlist list var newBlocks = new JSONArray(); - if (blocks != null){ + if (blocks != null) { newBlocks .put(getCatalogHeader()) .put(getCatalogPlaylist())