From ad808263d1a98f46ff9f0b5f3ce992a049b11e19 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Sat, 9 Jul 2022 15:13:13 +0300 Subject: [PATCH] Story downloader test video download dead xd --- .../lite/downloaders/StoryDownloader.java | 39 +++++++++++++++++++ .../com/vk/dto/common/ImageSize.smali | 10 +++++ .../com/vk/stories/view/StoryView.smali | 2 + 3 files changed, 51 insertions(+) create mode 100644 app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java new file mode 100644 index 000000000..905eac3f8 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java @@ -0,0 +1,39 @@ +package ru.vtosters.lite.downloaders; +import static com.vtosters.lite.R.*; +import static ru.vtosters.lite.downloaders.VideoDownloader.downloadVideo; +import static ru.vtosters.lite.utils.Globals.getIdentifier; +import static ru.vtosters.lite.utils.Globals.getString; + +import android.app.DownloadManager; +import android.content.Context; +import android.net.Uri; +import android.os.Environment; + +import com.vk.core.util.AlertDialogs; +import com.vk.dto.common.ImageSize; +import com.vk.dto.stories.model.StoryEntry; + +import java.util.List; + +public class StoryDownloader{ + public static void injectAction(AlertDialogs.b dialogBuilder, StoryEntry story) { + Context ctx = dialogBuilder.a().show().getContext(); + dialogBuilder.a(string.download, () -> { + // if story is a pic + if (story.T1()) { + List imageSizes = story.E.Q.t1(); + String url = imageSizes.get(imageSizes.size() - 1).url; + DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); + request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); + request.setTitle("photo" + story.E.a); + request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DCIM, "/Stories/photo" + story.E.a + ".jpg"); + ((DownloadManager) ctx.getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request); + return; + } + // if story is a video + if (story.M1() && story.F != null) { + downloadVideo(story.F, ctx); // dead + } + }); + } +} diff --git a/smali/smali_classes2/com/vk/dto/common/ImageSize.smali b/smali/smali_classes2/com/vk/dto/common/ImageSize.smali index 02946beca..b445f6bd8 100644 --- a/smali/smali_classes2/com/vk/dto/common/ImageSize.smali +++ b/smali/smali_classes2/com/vk/dto/common/ImageSize.smali @@ -38,6 +38,8 @@ # instance fields .field private final a:Ljava/lang/String; +.field public final url:Ljava/lang/String; + .field private final b:I .field private final c:I @@ -177,6 +179,8 @@ .line 17 iput-object p1, p0, Lcom/vk/dto/common/ImageSize;->a:Ljava/lang/String; + iput-object p1, p0, Lcom/vk/dto/common/ImageSize;->url:Ljava/lang/String; + .line 18 iput p2, p0, Lcom/vk/dto/common/ImageSize;->c:I @@ -266,6 +270,8 @@ iput-object p2, p0, Lcom/vk/dto/common/ImageSize;->a:Ljava/lang/String; + iput-object p2, p0, Lcom/vk/dto/common/ImageSize;->url:Ljava/lang/String; + const/16 p2, 0x87 const-string v0, "width" @@ -585,6 +591,10 @@ invoke-virtual {p1, v0}, Lcom/vk/core/serialize/Serializer;->a(Ljava/lang/String;)V + iget-object v0, p0, Lcom/vk/dto/common/ImageSize;->url:Ljava/lang/String; + + invoke-virtual {p1, v0}, Lcom/vk/core/serialize/Serializer;->a(Ljava/lang/String;)V + .line 2 iget v0, p0, Lcom/vk/dto/common/ImageSize;->c:I diff --git a/smali/smali_classes4/com/vk/stories/view/StoryView.smali b/smali/smali_classes4/com/vk/stories/view/StoryView.smali index 06b660a4f..d53d31ed9 100644 --- a/smali/smali_classes4/com/vk/stories/view/StoryView.smali +++ b/smali/smali_classes4/com/vk/stories/view/StoryView.smali @@ -5846,6 +5846,8 @@ move-result-object v1 + invoke-static {v1, v0}, Lru/vtosters/lite/downloaders/StoryDownloader;->injectAction(Lcom/vk/core/util/AlertDialogs$b;Lcom/vk/dto/stories/model/StoryEntry;)V + .line 3 iget v2, v0, Lcom/vk/dto/stories/model/StoryEntry;->c:I