diff --git a/app/src/main/java/ru/vtosters/lite/feature/discover/DiscoverTemplates.java b/app/src/main/java/ru/vtosters/lite/feature/discover/DiscoverTemplates.java new file mode 100644 index 000000000..c0c81970f --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/feature/discover/DiscoverTemplates.java @@ -0,0 +1,19 @@ +package ru.vtosters.lite.feature.discover; + +import com.vk.dto.discover.DiscoverItem; + +import java.util.ArrayList; + +public class DiscoverTemplates { + public static ArrayList getTemplates() { + var templates = DiscoverItem.Template.values(); + var arrayList = new ArrayList(); + + for (var template : templates) { + if (template != DiscoverItem.Template.GRID_MEDIA) { + arrayList.add(template.b()); + } + } + return arrayList; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/music/FFMpeg.java b/app/src/main/java/ru/vtosters/lite/music/FFMpeg.java index 40a5a56b0..a1a81689a 100644 --- a/app/src/main/java/ru/vtosters/lite/music/FFMpeg.java +++ b/app/src/main/java/ru/vtosters/lite/music/FFMpeg.java @@ -1,15 +1,18 @@ package ru.vtosters.lite.music; +import android.os.Build; import android.util.Log; import com.arthenica.ffmpegkit.FFmpegKit; import com.arthenica.ffmpegkit.ReturnCode; import com.vk.core.util.ToastUtils; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.IOUtils; @@ -49,27 +52,41 @@ public class FFMpeg { public static boolean convert(String in, String out) { checkFFMpegLibs(); - // write the list of all .ts files to a txt file in "in" directory var list = new File(in); - var listFile = new File(list, "list.txt"); - try { - listFile.createNewFile(); - var writer = new java.io.FileWriter(listFile); - for (var file : list.listFiles()) { - if (file.getName().endsWith(".ts")) { - writer.write("file " + file.getName() + "\n"); + var outputTs = new File(in, "all.ts"); + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + for (var file : list.listFiles()) { + if (file.getName().endsWith(".ts")) { + try { + outputStream.write(IOUtils.readAllBytes(file)); + } catch (IOException e) { + e.printStackTrace(); } } - writer.close(); - } catch (IOException e) { - e.printStackTrace(); } - // concatenate .ts files to a single .ts file - FFmpegKit.execute("-f concat -safe 0 -i " + in + "/list.txt -c copy " + in + "/all.ts"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + try { + Files.write(outputTs.toPath(), outputStream.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + try { + FileOutputStream fos = new FileOutputStream(outputTs); + fos.write(outputStream.toByteArray()); + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + // convert .ts file to .mp3 file via ffmpeg - var session = FFmpegKit.execute("-i " + in + "/all.ts -f mp3 -acodec mp3 -q:a 0 -y '" + out + "'"); + // var session = FFmpegKit.execute("-i " + in + "/all.ts -f mp3 -acodec mp3 -q:a 0 -y '" + out + "'"); + var session = FFmpegKit.execute("-i " + in + "/all.ts -map 0 -dn -c copy '" + out + "'"); + var rc = session.getReturnCode(); if (ReturnCode.isSuccess(rc)) { diff --git a/smali/smali_classes2/com/vk/api/discover/DiscoverCategoriesGet.smali b/smali/smali_classes2/com/vk/api/discover/DiscoverCategoriesGet.smali index 21cd6069d..1c9b84257 100644 --- a/smali/smali_classes2/com/vk/api/discover/DiscoverCategoriesGet.smali +++ b/smali/smali_classes2/com/vk/api/discover/DiscoverCategoriesGet.smali @@ -28,42 +28,50 @@ iput-object p1, p0, Lcom/vk/api/discover/DiscoverCategoriesGet;->F:Lcom/vk/dto/discover/DiscoverIntent; +# .line 2 +# invoke-static {}, Lcom/vk/dto/discover/DiscoverItem$Template;->values()[Lcom/vk/dto/discover/DiscoverItem$Template; +# +# move-result-object p1 +# +# .line 3 +# new-instance v0, Ljava/util/ArrayList; +# +# array-length v1, p1 +# +# invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V +# +# .line 4 +# array-length v1, p1 +# +# const/4 v2, 0x0 +# +# const/4 v3, 0x0 +# +# :goto_0 +# if-ge v3, v1, :cond_0 +# +# aget-object v4, p1, v3 +# +# .line 5 +# invoke-virtual {v4}, Lcom/vk/dto/discover/DiscoverItem$Template;->b()Ljava/lang/String; +# +# move-result-object v4 +# +# invoke-interface {v0, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z +# +# add-int/lit8 v3, v3, 0x1 +# +# goto :goto_0 +# +# :cond_0 + .line 2 - invoke-static {}, Lcom/vk/dto/discover/DiscoverItem$Template;->values()[Lcom/vk/dto/discover/DiscoverItem$Template; + # ru.vtosters.lite.feature.discover.DiscoverTemplates. ArrayList getTemplates() - move-result-object p1 + invoke-static {}, Lru/vtosters/lite/feature/discover/DiscoverTemplates;->getTemplates()Ljava/util/ArrayList; - .line 3 - new-instance v0, Ljava/util/ArrayList; + move-result-object v0 - array-length v1, p1 - - invoke-direct {v0, v1}, Ljava/util/ArrayList;->(I)V - - .line 4 - array-length v1, p1 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - :goto_0 - if-ge v3, v1, :cond_0 - - aget-object v4, p1, v3 - - .line 5 - invoke-virtual {v4}, Lcom/vk/dto/discover/DiscoverItem$Template;->b()Ljava/lang/String; - - move-result-object v4 - - invoke-interface {v0, v4}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z - - add-int/lit8 v3, v3, 0x1 - - goto :goto_0 - - :cond_0 const-string p1, "," invoke-static {p1, v0}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; diff --git a/smali/smali_classes2/com/vk/api/discover/DiscoverGet$a.smali b/smali/smali_classes2/com/vk/api/discover/DiscoverGet$a.smali index 5d4c74eb4..9a24b94ee 100644 --- a/smali/smali_classes2/com/vk/api/discover/DiscoverGet$a.smali +++ b/smali/smali_classes2/com/vk/api/discover/DiscoverGet$a.smali @@ -814,6 +814,11 @@ goto :goto_0 :cond_0 + + invoke-static {}, Lru/vtosters/lite/feature/discover/DiscoverTemplates;->getTemplates()Ljava/util/ArrayList; + + move-result-object v1 + const-string v0, "," invoke-static {v0, v1}, Landroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; diff --git a/smali/smali_classes2/com/vk/core/ui/themes/ThemeBinder.smali b/smali/smali_classes2/com/vk/core/ui/themes/ThemeBinder.smali index 5406681d1..243f13344 100644 --- a/smali/smali_classes2/com/vk/core/ui/themes/ThemeBinder.smali +++ b/smali/smali_classes2/com/vk/core/ui/themes/ThemeBinder.smali @@ -814,7 +814,13 @@ .method private final e(Landroid/view/View;)Z .locals 1 - .line 2 + if-nez p1, :cond_1 + + const/4 p1, 0x0 + + return p1 + + :cond_1 sget v0, Lcom/vk/core/ui/themes/ThemeBinder;->b:I invoke-virtual {p1, v0}, Landroid/view/View;->getTag(I)Ljava/lang/Object; diff --git a/smali/smali_classes2/com/vk/core/ui/themes/VKThemeHelper.smali b/smali/smali_classes2/com/vk/core/ui/themes/VKThemeHelper.smali index a1bba8508..f59b59fe3 100644 --- a/smali/smali_classes2/com/vk/core/ui/themes/VKThemeHelper.smali +++ b/smali/smali_classes2/com/vk/core/ui/themes/VKThemeHelper.smali @@ -788,6 +788,11 @@ .line 99 :cond_0 + if-nez p0, :cond_1 + + return-void + + :cond_1 sget-object v0, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; invoke-direct {v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->m()Lcom/vk/core/ui/themes/ThemeBinder;