diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 000000000..134e0cfb0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,27 @@ +--- +name: Bug Report +about: Заготовка для репорта багов +title: Ошибка обновлении ленты новостей +labels: bug +assignees: '' + +--- + +**Опишите сам баг** +При обновлении новостей вылезает ошибка + +**Опишите действия для воспроизведения ошибки** +1. Обновил ленту интересных новостей +2. Пролистал до конца страницы + +**Опишите ожидаемый результат** +Интересная лента должна прогружать результаты + +**Скриншот ошибки** + +**Информация об устройстве:** + - Устройство: Samsung Galaxy J1 Mini + - OS: Android 9 | OneUi 3.0 + - Коммит: fa12e8f (В О Приложении написана версия коммита) + +**Дополнительная информация о баге или мыслях почему оно может происходить (если есть)** diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..351fadebd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,15 @@ +--- +name: Feature request +about: Предложение функции +title: Улучшение голосовых сообщений +labels: enhancement +assignees: '' + +--- + +**Опишите вашу идею максимально подробно и понятно** +Необходима функция улучшения голосовых сообщений. Она значительно улучшит запись голосовых сообщений и собеседнику будет лучше слышно меня + +**Опишите возможное решение/реализацию функции (если понимаете как это можно реализовать на Java/C++)** + +**Остальные мысли о предложенной функции** diff --git a/README.md b/README.md index ec1455629..86f19baf1 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ * Округление чисел * Сокращение постов **(Показать полностью)** * Результаты опросов без участия + * Возможность указывать папку для загрузки фото/видео/музыки/всего * Интеграция с LAST.FM (а также возможность скробблинга) * Новый раздел музыки * Возможность скачивать видео @@ -90,6 +91,7 @@ * Возможность видеть онлайн пользователей, если у вас скрыт онлайн через VK Messenger * Отключить уведомление о том, что вы сделали скриншот в беседе * Отключение редиректа через away.php + * Отключение отправки метрики * Внешний вид * **Milkshake** тема (дизайн новых версий ВК) * Название заголовков в докбаре @@ -103,8 +105,10 @@ * Возможность отключить блок историй наверху ленты * Возможность отключить боковую камеру в разделе «Новости» * Возможность отключить блок «Что у вас нового?» в разделе «Новости» - * Возможность менять раздел, который запускается при запуске + * Возможность показывать лайки у постов справа + * Возможность менять стартовый раздел при запуске приложения * Анимации фрагментов + * Возможность изменять размер закругления картинок (аватарок и прочего) * Возможность отключить редизайн видеопостов * Возможность отключить блок миниаппов/VK Pay/Superapp * Возможность отключить сокращение названий разделов в меню diff --git a/app/build.gradle b/app/build.gradle index 0505115cf..0c4f2ec79 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -73,12 +73,11 @@ android { defaultConfig { applicationId "ru.vtosters.lite.utils.lite" - minSdkVersion 21 + minSdk 22 targetSdkVersion 32 versionCode 1 versionName "1.0" - - multiDexEnabled true + multiDexEnabled false } compileOptions { @@ -89,7 +88,6 @@ android { } dependencies { - implementation "androidx.multidex:multidex:2.0.1" implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.exifinterface:exifinterface:1.3.3' implementation 'androidx.preference:preference:1.2.0' diff --git a/app/libs/classes-dex2jar.jar b/app/libs/classes-dex2jar.jar index 886991ee9..3f1b78816 100644 Binary files a/app/libs/classes-dex2jar.jar and b/app/libs/classes-dex2jar.jar differ diff --git a/app/libs/classes2-dex2jar.jar b/app/libs/classes2-dex2jar.jar index ea0425fab..f6ba7fa86 100644 Binary files a/app/libs/classes2-dex2jar.jar and b/app/libs/classes2-dex2jar.jar differ diff --git a/app/libs/classes3-dex2jar.jar b/app/libs/classes3-dex2jar.jar index 3b92d8876..5df53281c 100644 Binary files a/app/libs/classes3-dex2jar.jar and b/app/libs/classes3-dex2jar.jar differ diff --git a/app/libs/classes4-dex2jar.jar b/app/libs/classes4-dex2jar.jar index 2ee7dbd87..948918a93 100644 Binary files a/app/libs/classes4-dex2jar.jar and b/app/libs/classes4-dex2jar.jar differ diff --git a/app/libs/classes5-dex2jar.jar b/app/libs/classes5-dex2jar.jar index 198831243..859c43411 100644 Binary files a/app/libs/classes5-dex2jar.jar and b/app/libs/classes5-dex2jar.jar differ diff --git a/app/src/main/java/com/aefyr/tsg/g2/NotificationsHelper.java b/app/src/main/java/com/aefyr/tsg/g2/NotificationsHelper.java index 1479a6bb7..33b41d4f3 100755 --- a/app/src/main/java/com/aefyr/tsg/g2/NotificationsHelper.java +++ b/app/src/main/java/com/aefyr/tsg/g2/NotificationsHelper.java @@ -16,6 +16,7 @@ import com.aefyr.tsg.g2.stickersgrabber.TelegramStickersGrabber; import java.util.HashMap; import java.util.concurrent.atomic.AtomicLong; +import ru.vtosters.lite.utils.AndroidUtils; /** * Created by Aefyr on 20.05.2018. @@ -39,7 +40,7 @@ public class NotificationsHelper { downloadingPacksNotificationsIds = new HashMap<>(); if (oreo()) { - NotificationChannel notificationChan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Сервис стикеров Telegram в VTosters", NotificationManager.IMPORTANCE_HIGH); + NotificationChannel notificationChan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, AndroidUtils.getString("telegram_stickers_service"), NotificationManager.IMPORTANCE_HIGH); ((NotificationManager) c.getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(notificationChan); } } @@ -49,8 +50,8 @@ public class NotificationsHelper { downloadingPacksNotificationsIds.put(pack, notificationId); Notification.Builder builder = commonBuilder(); - builder.setContentTitle(pack.state == TelegramStickersPack.DOWNLOADING ? pack.title + ": загрузка" : pack.title + ": обновление"); - builder.setContentText("Получение информации"); + builder.setContentTitle(pack.state == TelegramStickersPack.DOWNLOADING ? pack.title + AndroidUtils.getString("telegram_stickers_downloading") : pack.title + AndroidUtils.getString("telegram_stickers_updating")); + builder.setContentText(AndroidUtils.getString("telegram_stickers_gettinginfo")); builder.setOngoing(true); manager.notify(notificationId, builder.build()); @@ -63,7 +64,7 @@ public class NotificationsHelper { lastNotificationTime.set(System.currentTimeMillis()); Notification.Builder builder = commonBuilder(); - builder.setContentTitle(pack.state == TelegramStickersPack.DOWNLOADING ? pack.title + ": загрузка" : pack.title + ": обновление"); + builder.setContentTitle(pack.state == TelegramStickersPack.DOWNLOADING ? pack.title + AndroidUtils.getString("telegram_stickers_downloading") : pack.title + AndroidUtils.getString("telegram_stickers_updating")); builder.setContentText(downloadProgress + "/" + pack.stickersCount); builder.setProgress(pack.stickersCount, downloadProgress, false); builder.setOngoing(true); @@ -77,13 +78,13 @@ public class NotificationsHelper { Notification.Builder builder = commonBuilder(); builder.setProgress(0, 0, false); builder.setOngoing(false); - builder.setContentTitle("Сервис стикеров Telegram в VTosters"); + builder.setContentTitle(AndroidUtils.getString("telegram_stickers_service")); String text; if (success) - text = wasUpdate ? pack.title + " успешно обновлен" : pack.title + " успешно загружен"; + text = wasUpdate ? pack.title + AndroidUtils.getString("telegram_stickers_updated") : pack.title + AndroidUtils.getString("telegram_stickers_downloaded"); else - text = wasUpdate ? pack.title + ": ошибка при обновлении" : pack.title + ": ошибка при загрузке"; + text = wasUpdate ? pack.title + AndroidUtils.getString("telegram_stickers_error_update") : pack.title + AndroidUtils.getString("telegram_stickers_error_download"); if (e instanceof TelegramStickersGrabber.TSGException) { text = pack.title + ": " + e.getMessage(); diff --git a/app/src/main/java/com/vk/api/gifts/GiftGetByStickerId.java b/app/src/main/java/com/vk/api/gifts/GiftGetByStickerId.java new file mode 100644 index 000000000..0111560cf --- /dev/null +++ b/app/src/main/java/com/vk/api/gifts/GiftGetByStickerId.java @@ -0,0 +1,35 @@ +package com.vk.api.gifts; + +import android.content.Context; + +import com.vk.api.base.ApiRequest; +import com.vk.dto.gift.CatalogedGift; + +import org.json.JSONException; +import org.json.JSONObject; + +public class GiftGetByStickerId extends ApiRequest { + public static class a { + public final int a; + public final CatalogedGift b; + + public a(int i, CatalogedGift catalogedGift) { + this.a = i; + this.b = catalogedGift; + } + } + + public GiftGetByStickerId(Context context, int i) { + super("execute.getGiftByStickerId"); + b("sticker_id", i); + c("no_inapp", "0"); + b("force_payment", 1); + } + + @Override // com.vk.api.sdk.o.VKRequest + public GiftGetByStickerId.a a(JSONObject jSONObject) throws JSONException { + JSONObject jSONObject2 = jSONObject.getJSONObject("response"); + return new a(jSONObject2.optInt("balance"), + new CatalogedGift(jSONObject2.getJSONObject("gift"))); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/core/util/DownloadUtils.java b/app/src/main/java/com/vk/core/util/DownloadUtils.java new file mode 100644 index 000000000..25ef4c0af --- /dev/null +++ b/app/src/main/java/com/vk/core/util/DownloadUtils.java @@ -0,0 +1,225 @@ +package com.vk.core.util; + +import static ru.vtosters.lite.utils.Preferences.getDownloadsDir; +import static ru.vtosters.lite.utils.Preferences.getMusicDir; +import static ru.vtosters.lite.utils.Preferences.getPhotosDir; +import static ru.vtosters.lite.utils.Preferences.getVideosDir; + +import android.annotation.SuppressLint; +import android.app.DownloadManager; +import android.content.ActivityNotFoundException; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.database.sqlite.SQLiteException; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import com.facebook.common.i.MediaUtils; +import com.facebook.x.g.EncodedImage; +import com.vk.core.concurrent.VkExecutors; +import com.vk.imageloader.VKImageLoader; +import com.vk.log.L; +import com.vk.metrics.eventtracking.VkTracker; +import com.vtosters.lite.R; + +import java.io.File; +import java.io.InputStream; +import java.net.URI; +import java.util.HashSet; + +import b.h.g.m.CameraUtils; +import b.h.g.m.FileUtils; + +public class DownloadUtils { + public static final HashSet a = new HashSet<>(); + + public static void a(Context context, String str, String str2) { + a(context, str, str2, false); + } + + public static void b(Context context, String str, String str2) { + a(context, str, str2, true); + } + + private static void a(Context context, String str, String str2, boolean z) { + try { + b(context, str, str2, z); + } catch (Exception e2) { + L.d(e2); + ToastUtils.a(context.getString(R.string.error) + " [" + e2.getMessage() + "]"); + } + } + + private static void b(final Context context, String str, String str2, boolean z) { + if (TextUtils.isEmpty(str2)) { + return; + } + + String file = a(str, str2); + File b2; + boolean c2 = MediaUtils.c(MediaUtils.b(str2)); + + if (file.endsWith(".jpg") || file.endsWith(".png") || file.endsWith(".jpeg")) { + b2 = new File(getPhotosDir(), file); + } else if (file.endsWith(".mp3") || file.endsWith(".wav") || file.endsWith(".ogg") || file.endsWith(".aac") || file.endsWith(".flac") || file.endsWith(".m4a")) { + b2 = new File(getMusicDir(), file); + } else if (file.endsWith(".mp4") || file.endsWith(".mkv") || file.endsWith(".avi") || file.endsWith(".flv") || file.endsWith(".wmv") || file.endsWith(".mov") || file.endsWith(".3gp")) { + b2 = new File(getVideosDir(), file); + } else { + b2 = new File(getDownloadsDir(), file); + } + + if (c2) { + EncodedImage c3 = VKImageLoader.c(Uri.parse(str2)); + final InputStream h = c3 == null ? null : c3.h(); + if (h != null) { + try { + if (b2.getParentFile() != null) { + b2.createNewFile(); + } + + if (b2.exists()) { + VkExecutors.x.a().execute(() -> ToastUtils.a(context.getString(R.string.file_saved, b2.getAbsoluteFile()))); + } + } catch (Exception e2) { + L.a(e2); + } + CameraUtils.a(context, b2, null); + return; + } + } + + DownloadManager.Request request = new DownloadManager.Request(Uri.parse(str2)); + request.setDestinationUri(Uri.fromFile(b2)); + request.setMimeType(FileUtils.f(new File(str))); + request.setNotificationVisibility(1); + request.allowScanningByMediaScanner(); + request.setTitle(str); + DownloadManager a2 = a(context); + if (a2 == null) { + return; + } + try { + long enqueue = a2.enqueue(request); + if (!z) { + return; + } + a.add(enqueue); + } catch (IllegalArgumentException e3) { + L.a(e3); + b(context); + } + } + + private static String a(String str, String str2) { + String lastPathSegment = Uri.parse(str2).getLastPathSegment(); + if (!TextUtils.isEmpty(str)) { + String replace = str.replace('/', '_'); + return !replace.contains(".") ? lastPathSegment : replace; + } + return lastPathSegment; + } + + + @SuppressLint("Range") + public static boolean a(Context context, Uri uri) { + try { + Cursor query = a(context).query(new DownloadManager.Query().setFilterByStatus(11)); + if (query != null && query.moveToFirst()) { + while (!uri.toString().equals(query.getString(query.getColumnIndex("uri")))) { + if (!query.moveToNext()) { + query.close(); + return false; + } + } + @SuppressLint("Range") + int i = query.getInt(query.getColumnIndex("status")); + @SuppressLint("Range") + String string = query.getString(query.getColumnIndex("local_uri")); + query.close(); + if (i == 1 || i == 2) { + ToastUtils.a(R.string.download_is_in_progress); + query.close(); + return true; + } else if (i != 8) { + query.close(); + return false; + } else { + boolean a2 = a(context, string); + query.close(); + return a2; + } + } + return false; + } catch (SQLiteException e2) { + VkTracker.k.b(e2); + return false; + } + } + + private static void b(Context context) { + if (context != null) { + try { + context.startActivity(new Intent("android.settings.APPLICATION_DETAILS_SETTINGS").setData(Uri.parse("package:com.android.providers.downloads"))); + } catch (ActivityNotFoundException e2) { + L.a(e2); + context.startActivity(new Intent("android.settings.MANAGE_APPLICATIONS_SETTINGS")); + } + ToastUtils.a("Please enable download manager", true); + } + } + + public static boolean a(Context context, String str) { + File file; + try { + try { + file = new File(new URI(str)); + try { + if (!file.exists()) { + return false; + } + Intent intent = new Intent("android.intent.action.VIEW"); + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + String f2 = FileUtils.f(file); + if (!TextUtils.isEmpty(f2)) { + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setDataAndType(FileUtils.uriFromFile(file), f2); + context.startActivity(intent); + return true; + } + throw new ActivityNotFoundException(); + } catch (ActivityNotFoundException unused) { + return a(context, file); + } + } catch (ActivityNotFoundException unused2) { + unused2.printStackTrace(); + } + } catch (Throwable th) { + VkTracker.k.b(th); + return false; + } + + return false; + } + + private static boolean a(Context context, File file) { + if (file != null && file.exists()) { + Intent intent = new Intent("android.intent.action.VIEW"); + intent.setDataAndType(Uri.parse(file.getAbsolutePath()), "application/*"); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + try { + context.startActivity(intent); + return true; + } catch (ActivityNotFoundException e2) { + L.a(e2); + } + } + return false; + } + + private static DownloadManager a(Context context) { + return (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/im/ui/components/common/DialogAction.java b/app/src/main/java/com/vk/im/ui/components/common/DialogAction.java index d68becead..1079e7ef8 100644 --- a/app/src/main/java/com/vk/im/ui/components/common/DialogAction.java +++ b/app/src/main/java/com/vk/im/ui/components/common/DialogAction.java @@ -34,4 +34,6 @@ public enum DialogAction { DNT_OFF, pinmsg, unpinmsg, + ENCRYPT_SETT, + ENCRYPT } diff --git a/app/src/main/java/com/vk/im/ui/components/common/DialogActionsHelper.java b/app/src/main/java/com/vk/im/ui/components/common/DialogActionsHelper.java index 06994f35c..facb5c17d 100644 --- a/app/src/main/java/com/vk/im/ui/components/common/DialogActionsHelper.java +++ b/app/src/main/java/com/vk/im/ui/components/common/DialogActionsHelper.java @@ -81,6 +81,7 @@ public final class DialogActionsHelper { CollectionExt.a(arrayList, DialogAction.NOTIFICATIONS_OFF, dialog.b(b2)); return arrayList; } + return new ArrayList<>(); } @@ -98,9 +99,9 @@ public final class DialogActionsHelper { DNRInjector.inject(dialog, arrayList); - if (dialog.hasUnread()) { - arrayList.add(DialogAction.MARK_AS_READ); - } +// if (dialog.hasUnread()) { + arrayList.add(DialogAction.MARK_AS_READ); +// } if (!dialog.W1()) { arrayList.add(DialogAction.CREATE_SHORTCUT); diff --git a/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java b/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java index 6a91b4272..fe03de846 100644 --- a/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java +++ b/app/src/main/java/com/vk/im/ui/components/common/MsgAction.java @@ -10,5 +10,6 @@ public enum MsgAction { SPAM, PIN, UNPIN, - TRANSLATE + TRANSLATE, + READTO } \ No newline at end of file diff --git a/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java b/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java index 28f441fed..50207886c 100644 --- a/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java +++ b/app/src/main/java/com/vk/im/ui/components/common/MsgActionHelper.java @@ -33,6 +33,7 @@ public final class MsgActionHelper { CollectionExt.a(arrayList, MsgAction.PIN, MsgPermissionHelper.b.e(aVar)); CollectionExt.a(arrayList, MsgAction.UNPIN, MsgPermissionHelper.b.i(aVar)); CollectionExt.a(arrayList, MsgAction.TRANSLATE, true); + CollectionExt.a(arrayList, MsgAction.READTO, true); return arrayList; } diff --git a/app/src/main/java/com/vk/im/ui/views/Corners.java b/app/src/main/java/com/vk/im/ui/views/Corners.java new file mode 100644 index 000000000..6d09b5010 --- /dev/null +++ b/app/src/main/java/com/vk/im/ui/views/Corners.java @@ -0,0 +1,131 @@ +package com.vk.im.ui.views; + +import androidx.annotation.NonNull; + +public class Corners{ + private int topLeft; + private int topRight; + private int bottomLeft; + private int bottomRight; + + public Corners(int i, int i2, int i3, int i4){ + this.topLeft = i; + this.topRight = i2; + this.bottomLeft = i3; + this.bottomRight = i4; + } + + public Corners(int i, int i2, int i3, int i4, int i5) { + this((i5 & 1) != 0 ? 0 : i, (i5 & 2) != 0 ? 0 : i2, (i5 & 4) != 0 ? 0 : i3, (i5 & 8) != 0 ? 0 : i4); + } + + public Corners() { + this(0, 0, 0, 0, 15); + } + + public static Corners a(Corners corners, int i, int i2, int i3, int i4, int i5, Object obj){ + if ((i5 & 1) != 0) { + i = corners.topLeft; + } + if ((i5 & 2) != 0) { + i2 = corners.topRight; + } + if ((i5 & 4) != 0) { + i3 = corners.bottomLeft; + } + if ((i5 & 8) != 0) { + i4 = corners.bottomRight; + } + corners.a(i, i2, i3, i4); + return corners; + } + + public int a(){ + return this.bottomLeft; + } + + public int b(){ + return this.bottomRight; + } + + public int c(){ + return this.topLeft; + } + + public int d(){ + return this.topRight; + } + + public boolean e(){ + int i; + int i2 = this.topLeft; + int i3 = this.topRight; + return i2 == i3 && i3 == (i = this.bottomRight) && this.bottomLeft == i; + } + + public boolean equals(Object obj){ + if (this != obj) { + if (!(obj instanceof Corners)) { + return false; + } + Corners corners = (Corners) obj; + return this.topLeft == corners.topLeft && this.topRight == corners.topRight && this.bottomLeft == corners.bottomLeft && this.bottomRight == corners.bottomRight; + } + return true; + } + + public boolean f(){ + return this.topLeft == 0 && e(); + } + + public void g(){ + a(0, 0); + } + + public int hashCode(){ + return (((((this.topLeft * 31) + this.topRight) * 31) + this.bottomLeft) * 31) + this.bottomRight; + } + + @NonNull + public String toString(){ + return "Corners(topLeft=" + this.topLeft + ", topRight=" + this.topRight + ", bottomLeft=" + this.bottomLeft + ", bottomRight=" + this.bottomRight + ")"; + } + + public Corners a(int i, int i2){ + if ((i2 & 1) > 0) { + this.topLeft = i; + } + if ((i2 & 2) > 0) { + this.topRight = i; + } + if ((i2 & 4) > 0) { + this.bottomLeft = i; + } + if ((i2 & 8) > 0) { + this.bottomRight = i; + } + if (i2 == 0) { + this.topLeft = 0; + this.topRight = 0; + this.bottomLeft = 0; + this.bottomRight = 0; + } + return this; + } + + public Corners a(int i, int i2, int i3, int i4){ + this.topLeft = i; + this.topRight = i2; + this.bottomLeft = i3; + this.bottomRight = i4; + return this; + } + + public Corners a(Corners corners){ + this.topLeft = corners.topLeft; + this.topRight = corners.topRight; + this.bottomLeft = corners.bottomLeft; + this.bottomRight = corners.bottomRight; + return this; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/im/ui/views/avatars/StoryBorderView.java b/app/src/main/java/com/vk/im/ui/views/avatars/StoryBorderView.java new file mode 100644 index 000000000..5ada59705 --- /dev/null +++ b/app/src/main/java/com/vk/im/ui/views/avatars/StoryBorderView.java @@ -0,0 +1,137 @@ +package com.vk.im.ui.views.avatars; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.Shader; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; + +import com.vk.im.ui.o; + +public class StoryBorderView extends View { + private boolean B; + private final Paint a; + private LinearGradient f15747b; + private int f15748c; + private int f15749d; + private int f15750e; + private int f15751f; + private final int g; + private final int h; + + public StoryBorderView(Context context) { + this(context, null, 0, 6); + } + + public StoryBorderView(Context context, AttributeSet attributeSet) { + this(context, attributeSet, 0, 4); + } + + public StoryBorderView(Context context, AttributeSet attributeSet, int i, int i2) { + this(context, (i2 & 2) != 0 ? null : attributeSet, (i2 & 4) != 0 ? 0 : i); + } + + public int getBorderColor() { + return this.f15749d; + } + + public int getBorderGradientEndColor() { + return this.h; + } + + public int getBorderGradientStartColor() { + return this.g; + } + + public int getBorderWidth() { + return this.f15750e; + } + + public int getPadding() { + return this.f15751f; + } + + public int getViewSize() { + return this.f15748c; + } + + @Override + protected void onDraw(Canvas canvas) { + canvas.drawOval(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), getHeight() - getPaddingBottom(), this.a); + } + + @Override + protected void onMeasure(int i, int i2) { + int i3 = this.f15748c; + setMeasuredDimension(i3, i3); + } + + public void setBorderColor(int i) { + if (this.f15749d != i) { + this.f15749d = i; + this.a.setColor(i); + invalidate(); + } + } + + public void setBorderWidth(int i) { + if (this.f15750e != i) { + this.f15750e = i; + this.a.setStrokeWidth(i); + invalidate(); + } + } + + @Override + public void setLayoutParams(ViewGroup.LayoutParams layoutParams) { + super.setLayoutParams(layoutParams); + boolean z = false; + this.f15748c = Math.min(layoutParams != null ? layoutParams.width : 0, layoutParams != null ? layoutParams.height : 0); + this.f15747b = new LinearGradient(0.0f, 0.0f, 0.0f, this.f15748c, this.g, this.h, Shader.TileMode.MIRROR); + if (this.f15748c > 0) { + z = true; + } + if (z) { + return; + } + throw new IllegalArgumentException("Only exact size supported, specify avatar sizes in layout params"); + } + + public void setLive(boolean z) { + if (this.B != z) { + this.a.setShader(z ? this.f15747b : null); + this.a.setColor(z ? -1 : this.f15749d); + this.B = z; + invalidate(); + } + } + + public void setPadding(int i) { + if (this.f15751f != i) { + this.f15751f = i; + setPadding(i, i, i, i); + } + } + + public void setViewSize(int i) { + this.f15748c = i; + } + + public StoryBorderView(Context context, AttributeSet attributeSet, int i) { + super(context, attributeSet, i); + Paint paint = new Paint(); + paint.setAntiAlias(true); + paint.setStyle(Paint.Style.STROKE); + this.a = paint; + TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, o.StoryBorderView); + setBorderColor(obtainStyledAttributes.getInt(o.StoryBorderView_vkim_borderColor, 0)); + this.g = obtainStyledAttributes.getInt(o.StoryBorderView_vkim_borderGradientStartColor, 0); + this.h = obtainStyledAttributes.getInt(o.StoryBorderView_vkim_borderGradientEndColor, 0); + setBorderWidth(obtainStyledAttributes.getDimensionPixelSize(o.StoryBorderView_vkim_borderWidth, 0)); + obtainStyledAttributes.recycle(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/im/ui/views/dialogs/DialogItemView.java b/app/src/main/java/com/vk/im/ui/views/dialogs/DialogItemView.java new file mode 100644 index 000000000..fcea16294 --- /dev/null +++ b/app/src/main/java/com/vk/im/ui/views/dialogs/DialogItemView.java @@ -0,0 +1,1030 @@ +package com.vk.im.ui.views.dialogs; + +import static com.vk.im.ui.d.vkim_administration_title; +import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; + +import android.content.Context; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.text.Layout; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.util.DisplayMetrics; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewPropertyAnimator; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.ColorInt; +import androidx.appcompat.widget.AppCompatImageView; + +import com.vk.core.extensions.AnimationExtKt; +import com.vk.core.util.ContextExtKt; +import com.vk.core.util.Screen; +import com.vk.core.utils.VerifyInfoHelper; +import com.vk.extensions.ImageViewExt; +import com.vk.extensions.ViewExtKt; +import com.vk.im.engine.models.Profile; +import com.vk.im.engine.models.ProfilesSimpleInfo; +import com.vk.im.engine.models.dialogs.Dialog; +import com.vk.im.engine.models.typing.ComposingType; +import com.vk.im.ui.c; +import com.vk.im.ui.drawables.RecordingDrawable; +import com.vk.im.ui.drawables.RoundCornerColorDrawable; +import com.vk.im.ui.drawables.TypingDrawable; +import com.vk.im.ui.f; +import com.vk.im.ui.m; +import com.vk.im.ui.o; +import com.vk.im.ui.views.FixTextView; +import com.vk.im.ui.views.avatars.AvatarView; +import com.vk.im.ui.views.avatars.StoryBorderView; + +import b.h.g.r.MathExt; + +public class DialogItemView extends ViewGroup{ + private final int B; + private final int C; + private final int D; + private final boolean E; + private final String F; + private final TypingDrawable G; + private final RecordingDrawable H; + private final int J; + private final AvatarView K; + private final AppCompatImageView L; + private final StoryBorderView M; + private final TextView N; + private final AppCompatImageView O; + private final AppCompatImageView P; + private final AppCompatImageView Q; + private final TextView R; + private final AvatarView S; + private final TextView T; + private final TextView U; + private final AppCompatImageView V; + private final TextView W; + private final DisplayMetrics a; + private final AppCompatImageView a0; + private final AppCompatImageView b0; + private final TextView c0; + private final AppCompatImageView d0; + private final int f15761e; + private final AppCompatImageView e0; + private final AppCompatImageView f0; + private final RoundCornerColorDrawable g; + private final int h; + private boolean I; + private boolean g0; + private boolean h0; + + public DialogItemView(Context context){ + this(context, null, 0, 6); + } + + public DialogItemView(Context context, AttributeSet attributeSet){ + this(context, attributeSet, 0, 4); + } + + public DialogItemView(Context context, AttributeSet attributeSet, int i){ + super(context, attributeSet, i); + Resources resources = getResources(); + this.a = resources.getDisplayMetrics(); + Context context2 = getContext(); + this.f15761e = ContextExtKt.h(context2, c.text_primary); + RoundCornerColorDrawable roundCornerColorDrawable = new RoundCornerColorDrawable(); + roundCornerColorDrawable.b(a(12)); + this.g = roundCornerColorDrawable; + Context context3 = getContext(); + this.h = ContextExtKt.h(context3, c.counter_primary_background); + Context context4 = getContext(); + this.B = ContextExtKt.h(context4, c.counter_secondary_background); + this.C = a(25); + this.D = a(42); + Context context5 = getContext(); + this.E = ContextExtKt.g(context5, c.im_new_theme); + this.F = getContext().getString(m.vkim_msg_empty); + Context context6 = getContext(); + this.G = new TypingDrawable(ContextExtKt.h(context6, c.link_alternate)); + Context context7 = getContext(); + this.H = new RecordingDrawable(ContextExtKt.h(context7, c.link_alternate)); + Typeface create = Typeface.create(getResources().getString(m.fontRobotoRegular), Typeface.NORMAL); + Typeface create2 = Typeface.create(getResources().getString(m.fontRobotoMedium), Typeface.NORMAL); + int i2 = this.E ? GONE : VISIBLE; + TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, o.DialogItemView); + String string2 = obtainStyledAttributes.getString(o.DialogItemView_vkim_title_font); + int dimensionPixelSize = obtainStyledAttributes.getDimensionPixelSize(o.DialogItemView_vkim_title_text_size, Screen.c(17)); + int dimensionPixelSize2 = obtainStyledAttributes.getDimensionPixelSize(o.DialogItemView_vkim_body_text_size, Screen.c(15)); + int dimensionPixelSize3 = obtainStyledAttributes.getDimensionPixelSize(o.DialogItemView_vkim_time_text_size, Screen.c(13)); + int color = obtainStyledAttributes.getColor(o.DialogItemView_vkim_time_text_color, -16777216); + int color2 = obtainStyledAttributes.getColor(o.DialogItemView_vkim_avatar_story_border_color, getAccentColor()); + int dimensionPixelSize4 = obtainStyledAttributes.getDimensionPixelSize(o.DialogItemView_vkim_avatar_story_border_width, Screen.a(2)); + int dimensionPixelSize5 = obtainStyledAttributes.getDimensionPixelSize(o.DialogItemView_vkim_avatar_story_size, Screen.a(68)); + boolean z = obtainStyledAttributes.getBoolean(o.DialogItemView_vkim_avatar_combine, false); + this.J = obtainStyledAttributes.getDimensionPixelSize(o.DialogItemView_vkim_avatar_size, Screen.a(64)); + obtainStyledAttributes.recycle(); + this.K = new AvatarView(context, null, 6); + this.K.setViewSize(this.J); + this.K.setDividerSize(a(2)); + this.K.setCombineAvatars(z); + int i3 = this.J; + this.K.setLayoutParams(a(this, i3, i3, 0, 0, a(12), 0, 44, null)); + this.M = new StoryBorderView(context, null, 6); + this.M.setBorderColor(color2); + this.M.setBorderWidth(dimensionPixelSize4); + this.M.setViewSize(dimensionPixelSize5); + this.M.setLayoutParams(a(this, dimensionPixelSize5, dimensionPixelSize5, 0, 0, 0, 0, 60, null)); + this.M.setVisibility(GONE); + this.L = new AppCompatImageView(context); + this.L.setContentDescription(null); + this.L.setLayoutParams(a(this, a(16), a(20), 0, 0, 0, 0, 60, null)); + float f2 = 0.0f; + this.L.setTranslationX(this.E ? a(1) : 0.0f); + this.L.setTranslationY(this.E ? a(1) : f2); + this.N = new FixTextView(context); + this.N.setTypeface(Typeface.create(string2, Typeface.NORMAL)); + this.N.setTextSize(0, dimensionPixelSize); + this.N.setTextColor(this.f15761e); + this.N.setSingleLine(true); + this.N.setEllipsize(TextUtils.TruncateAt.END); + this.N.setLayoutParams(a(this, 0, 0, 0, 0, 0, 0, 63, null)); + this.O = new AppCompatImageView(context); + this.O.setImageDrawable(VerifyInfoHelper.h.b(true, false, context, VerifyInfoHelper.ColorTheme.normal)); + this.O.setContentDescription(null); + this.O.setLayoutParams(a(this, a(16), a(16), a(6), a(1), 0, 0, 48, null)); + this.Q = new AppCompatImageView(context); + this.Q.setImageResource(f.ic_ghost_16); + this.Q.setContentDescription(null); + this.Q.setLayoutParams(a(this, a(16), a(16), a(4), a(1.8f), 0, 0, 48, null)); + this.P = new AppCompatImageView(context); + ImageViewExt.a(this.P, f.vkim_ic_muted_16, c.icon_tertiary); + this.P.setContentDescription(null); + this.P.setLayoutParams(a(this, a(16), a(16), a(4), a(1.8f), 0, 0, 48, null)); + this.S = new AvatarView(context, null, 6); + this.S.setViewSize(Screen.a(32)); + this.S.setLayoutParams(a(this, a(32), a(32), 0, 0, a(10), 0, 44, null)); + this.S.setVisibility(i2); + this.T = new TextView(context); + this.T.setTypeface(create); + this.T.setTextSize(0, (float) dimensionPixelSize2); + this.T.setTextColor(ContextExtKt.h(context, c.text_subhead)); + this.T.setEllipsize(TextUtils.TruncateAt.END); + this.T.setLayoutParams(a(this, 0, 0, 0, 0, 0, 0, 63, null)); + this.R = new TextView(context); + this.R.setTypeface(create); + this.R.setTextSize(0, dimensionPixelSize3); + this.R.setTextColor(color); + this.R.setSingleLine(true); + this.R.setLayoutParams(a(this, 0, 0, a(6), 0, 0, 0, 59, null)); + this.U = new TextView(context); + this.U.setTypeface(create); + this.U.setTextSize(0, (float) dimensionPixelSize2); + this.U.setTextColor(ContextExtKt.h(context, c.link_alternate)); + this.U.setSingleLine(true); + this.U.setEllipsize(TextUtils.TruncateAt.END); + this.U.setLayoutParams(a(this, 0, 0, 0, 0, 0, 0, 63, null)); + this.V = new AppCompatImageView(context); + this.V.setImageResource(f.vkim_ic_chats_gift); + this.V.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + this.V.setContentDescription(null); + this.V.setTranslationY(a(-0.5f)); + this.V.setLayoutParams(a(this, a(11), a(13), 0, 0, a(6), 0, 44, null)); + this.W = new TextView(context); + this.W.setTypeface(create); + this.W.setTextSize(0, (float) dimensionPixelSize2); + this.W.setTextColor(ContextExtKt.h(context, c.link_alternate)); + this.W.setSingleLine(true); + this.W.setEllipsize(TextUtils.TruncateAt.END); + this.W.setLayoutParams(a(this, 0, 0, 0, 0, 0, 0, 63, null)); + this.W.setVisibility(i2); + this.a0 = new AppCompatImageView(context); + this.a0.setImageDrawable(this.G); + this.a0.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + this.a0.setContentDescription(null); + this.a0.setLayoutParams(a(this, a(30), a(10), a(8), a(1), a(8), 0, 32, null)); + this.a0.setVisibility(VISIBLE); + this.b0 = new AppCompatImageView(context); + this.b0.setImageResource(f.ic_mention_composite_24); + this.b0.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + this.b0.setContentDescription(null); + this.b0.setLayoutParams(a(this, a(24), a(24), a(8), 0, 0, 0, 56, null)); + this.c0 = new TextView(context); + this.c0.setTypeface(create2); + this.c0.setTextSize(14.0f); + this.c0.setTextColor(-1); + this.c0.setGravity(17); + this.c0.setSingleLine(true); + this.c0.setBackground(this.g); + this.c0.setPadding(a(8), a(2), a(8), a(2)); + this.c0.setLayoutParams(a(this, 0, 0, a(8), 0, 0, 0, 59, null)); + this.d0 = new AppCompatImageView(context); + ImageViewExt.a(this.d0, f.vkim_unread, c.counter_primary_background); + this.d0.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + this.d0.setContentDescription(null); + this.d0.setLayoutParams(a(this, a(24), 0, a(8), 0, 0, 0, 58, null)); + this.e0 = new AppCompatImageView(context); + ImageViewExt.a(this.e0, f.vkim_ic_msg_sending, c.icon_outline_medium); + this.e0.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + this.e0.setContentDescription(null); + this.e0.setLayoutParams(a(this, a(24), 0, a(8), 0, 0, 0, 58, null)); + this.f0 = new AppCompatImageView(context); + ImageViewExt.a(this.f0, f.ic_chats_error_16, c.field_error_border); + this.f0.setScaleType(ImageView.ScaleType.FIT_CENTER); + this.f0.setContentDescription(null); + this.f0.setLayoutParams(a(this, a(24), a(16), a(8), 0, 0, 0, 56, null)); + addView(this.K); + addView(this.M); + addView(this.L); + addView(this.N); + addView(this.O); + addView(this.Q); + addView(this.P); + addView(this.R); + addView(this.S); + addView(this.T); + addView(this.U); + addView(this.V); + addView(this.W); + addView(this.a0); + addView(this.b0); + addView(this.c0); + addView(this.d0); + addView(this.e0); + addView(this.f0); + } + + public DialogItemView(Context context, AttributeSet attributeSet, int i, int i2){ + this(context, (i2 & 2) != 0 ? null : attributeSet, (i2 & 4) != 0 ? 0 : i); + } + + public static ViewPropertyAnimator b(View view, float f, long j, long j2, Runnable runnable, int i, Object obj){ + if ((i & 1) != 0) { + f = 0.0f; + } + + if ((i & 2) != 0) { + j = 300; + } + + if ((i & 4) != 0) { + j2 = 0; + } + + if ((i & 8) != 0) { + runnable = null; + } + + return AnimationExtKt.b(view, f, j, j2, runnable); + } + + public static void a(View view, float f, float f2, int i, Object obj){ + if ((i & 1) != 0) { + f = 1.0f; + } + + if ((i & 2) != 0) { + f2 = 0.0f; + } + + AnimationExtKt.a(view, f, f2); + } + + public static ViewPropertyAnimator a(View view, float f, long j, long j2, Runnable runnable, int i, Object obj){ + if ((i & 1) != 0) { + f = 1.0f; + } + + if ((i & 2) != 0) { + j = 300; + } + + if ((i & 4) != 0) { + j2 = 0; + } + + if ((i & 8) != 0) { + runnable = null; + } + + return AnimationExtKt.a(view, f, j, j2, runnable); + } + + static void a(DialogItemView dialogItemView, int i, int i2, int i3, int i4, Object obj){ + if ((i4 & 4) != 0) { + i3 = 0; + } + dialogItemView.a(i, i2, i3); + } + + static ViewGroup.MarginLayoutParams a(DialogItemView dialogItemView, int i, int i2, int i3, int i4, int i5, int i6, int i7, Object obj){ + if ((i7 & 1) != 0) { + i = -2; + } + if ((i7 & 2) != 0) { + i2 = -2; + } + if ((i7 & 4) != 0) { + i3 = 0; + } + if ((i7 & 8) != 0) { + i4 = 0; + } + if ((i7 & 16) != 0) { + i5 = 0; + } + if ((i7 & 32) != 0) { + i6 = 0; + } + return dialogItemView.a(i, i2, i3, i4, i5, i6); + } + + private Drawable getDrOnlineMobile(){ + return ContextExtKt.c(getContext(), f.ic_online_mobile_vkapp_composite_16); + } + + private Drawable getDrOnlineVkMe(){ + return ContextExtKt.c(getContext(), f.ic_online_mobile_vkme_composite_16); + } + + private Drawable getDrOnlineWeb(){ + return ContextExtKt.c(getContext(), f.ic_online_web_composite_16); + } + + private int getTimeMargin(){ + Layout layout = this.T.getLayout(); + + if (layout == null) { + layout = this.U.getLayout(); + } + + int i = 0; + if (layout != null) { + int lineBaseline = layout.getLineBaseline(0); + Layout layout2 = this.R.getLayout(); + + if (layout2 != null) { + i = layout2.getLineBaseline(0); + } + + return lineBaseline - i; + } + + return 0; + } + + private int getTitleColorHighlight(){ + return ContextExtKt.a(getContext(), vkim_administration_title); + } + + private void h(int i, int i2, int i3, int i4){ + int paddingLeft = getPaddingLeft(); + int paddingTop = getPaddingTop(); + int measuredWidth = getMeasuredWidth() - getPaddingRight(); + int i5 = i() + paddingLeft; + a(paddingLeft, paddingTop, i5, h() + paddingTop); + f(i5, paddingTop, measuredWidth, l() + paddingTop); + int bottom = this.N.getBottom() + a(this.N); + int max = Math.max(this.C + paddingTop, bottom); + int max2 = Math.max(paddingTop + this.D, a(16) + bottom); + int p = p(); + int o = o(); + int max3 = Math.max(bottom, max2 - (o / 2)); + int i6 = p + i5; + i(i5, max3, i6, o + max3); + int k = k(); + int j = j(); + + if (n()) { + max = max2 - (j / 2); + } + + int max4 = Math.max(bottom, max); + e(i6, max4, k + i6, j + max4); + int t = t(); + int s = s(); + int max5 = Math.max(bottom, max2 - (s / 2)); + k(i5, max5, t + i5, s + max5); + int r = r(); + int q = q(); + int max6 = Math.max(bottom, max2 - (q / 2)); + j(measuredWidth - r, max6, measuredWidth, q + max6); + } + + private int i(){ + return g(this.K); + } + + private int j(){ + return f(this.T) + Math.max(f(this.V), f(this.U)); + } + + private int k(){ + return Math.max(g(this.T), g(this.V) + g(this.U)); + } + + private int l(){ + return Math.max(Math.max(f(this.N), f(this.R)), Math.max(f(this.O), f(this.P))); + } + + private int m(){ + return View.MeasureSpec.makeMeasureSpec(0, 0); + } + + private boolean n(){ + return e(this.S); + } + + private int o(){ + return f(this.S); + } + + private int p(){ + return g(this.S); + } + + private int q(){ + return MathExt.a(f(this.b0), f(this.c0), f(this.d0), f(this.e0), f(this.f0)); + } + + private int r(){ + return g(this.b0) + MathExt.a(g(this.c0), g(this.d0), g(this.e0), g(this.f0)); + } + + private int s(){ + return Math.max(f(this.a0), f(this.W)); + } + + private void setAttach(CharSequence charSequence){ + int i = VISIBLE; + + if (charSequence == null || charSequence.length() == 0) { + i = GONE; + } + + this.U.setVisibility(i); + this.U.setText(charSequence); + } + + private void setBodyLinesCount(int i){ + boolean z = i == 1; + this.T.setSingleLine(z); + this.T.setMaxLines(i); + } + + private int t(){ + return g(this.a0) + g(this.W); + } + + private void u(){ + ViewExtKt.b(this.b0, this.g0 | this.h0); + } + + public void a(Dialog dialog, ProfilesSimpleInfo profilesSimpleInfo){ + this.K.a(dialog, profilesSimpleInfo); + } + + public void b(){ + a(null, (ComposingType) null); + } + + public void c(){ + a(getDrOnlineMobile()); + } + + public void d(){ + a(getDrOnlineVkMe()); + } + + public void e(){ + a(getDrOnlineWeb()); + } + + public void f(){ + this.S.setVisibility(GONE); + this.S.e(); + } + + public void g(){ + b(this.L, 0.0f, 0L, 0L, null, 15, null); + } + + @Override // android.view.ViewGroup, android.view.View + protected void onDetachedFromWindow(){ + super.onDetachedFromWindow(); + a(this.L, 0.0f, 0.0f, 3, null); + } + + @Override // android.view.ViewGroup, android.view.View + protected void onLayout(boolean z, int i, int i2, int i3, int i4){ + if (this.E) { + g(i, i2, i3, i4); + } else { + h(i, i2, i3, i4); + } + } + + @Override // android.view.View + protected void onMeasure(int i, int i2){ + if (this.E) { + c(i); + } else { + d(i); + } + } + + public void setAvatar(Profile profile){ + this.K.a(profile); + } + + public void setBombVisible(boolean z){ + if (z) { + this.b0.setImageResource(f.ic_bomb_composite_24); + } + + this.h0 = z; + + u(); + } + + public void setCasperIconColor(@ColorInt int i){ + ViewExtKt.a(this.Q, i); + } + + public void setCasperIconVisible(boolean z){ + this.Q.setVisibility(z ? VISIBLE : GONE); + } + + public void setErrorVisible(boolean z){ + this.f0.setVisibility(z ? VISIBLE : GONE); + } + + public void setGiftVisible(boolean z){ + this.V.setVisibility(z ? VISIBLE : GONE); + } + + public void setHasStories(boolean z){ + if (this.I == z) { + return; + } + + this.I = z; + int i = VISIBLE; + + if (z) { + int borderWidth = this.M.getBorderWidth(); + this.K.setViewSize(this.J - (borderWidth * 2)); + this.K.setPadding(borderWidth, borderWidth, borderWidth, borderWidth); + } else { + this.K.setViewSize(this.J); + this.K.setPadding(0, 0, 0, 0); + } + + if (!z) { + i = GONE; + } + + this.M.setVisibility(i); + setClipChildren(!z); + setClipToPadding(!z); + } + + public void setMentionVisible(boolean z){ + if (z) { + this.b0.setImageResource(f.ic_mention_composite_24); + } + + this.g0 = z; + + u(); + } + + public void setMutedVisible(boolean z){ + this.P.setVisibility(z ? VISIBLE : GONE); + } + + public void setOnStoryClickListener(View.OnClickListener onClickListener){ + ViewExtKt.b(this.M, onClickListener); + } + + public void setSender(Profile profile){ + if (profile == null) { + f(); + return; + } + this.S.setVisibility(VISIBLE); + this.S.a(profile); + } + + public void setSendingVisible(boolean z){ + this.e0.setVisibility(z ? VISIBLE : GONE); + } + + public void setTime(CharSequence charSequence){ + this.R.setText(charSequence); + } + + public void setUnreadOutVisible(boolean z){ + this.d0.setVisibility(z ? VISIBLE : GONE); + } + + public void setVerifiedVisible(boolean z){ + this.O.setVisibility(z ? VISIBLE : GONE); + } + + private void a(Drawable drawable){ + ViewExtKt.c(this.L, a(16), a(20)); + this.L.setImageDrawable(drawable); + a(this.L, 0.0f, 0L, 0L, null, 15, null); + } + + private void c(int i){ + int size = (View.MeasureSpec.getSize(i) - getPaddingLeft()) - getPaddingRight(); + d(b(size - this.K.getViewSize()), m()); + int r = r(); + a(b(size), m()); + int i2 = i(); + int b2 = b((size - r) - i2); + int m = m(); + b(b2, m); + b(b2, m, g(this.O) + g(this.P) + g(this.Q)); + int i3 = (size - i2) - r; + a(b(i3), m(), g(this.R)); + e(b(i3), m()); + setMeasuredDimension(View.MeasureSpec.getSize(i), getPaddingTop() + getPaddingBottom() + Math.max(f(this.K), l() + Math.max(Math.max(o(), j()), Math.max(s(), q())))); + } + + private void d(int i){ + int size = (View.MeasureSpec.getSize(i) - getPaddingLeft()) - getPaddingRight(); + d(b(size - this.K.getViewSize()), m()); + int r = r(); + a(b(size), m()); + int i2 = size - i(); + int b2 = b(i2); + int m = m(); + b(b2, m); + b(b2, m, g(this.O) + g(this.P) + g(this.R) + g(this.Q)); + int i3 = i2 - r; + c(b(i3), m()); + a(this, b((i2 - p()) - r), m(), 0, 4, null); + e(b(i3), m()); + setMeasuredDimension(View.MeasureSpec.getSize(i), getPaddingTop() + getPaddingBottom() + Math.max(f(this.K), l() + Math.max(Math.max(o(), j()), Math.max(s(), q())))); + } + + private void e(int i, int i2, int i3, int i4){ + if (e(this.T) && e(this.U)) { + c(i, i2, i3, i4); + } else if (e(this.T)) { + d(i, i2, i3, i4); + } else if (!e(this.U)) { + } else { + b(i, i2, i3, i4); + } + } + + private void g(int i, int i2, int i3, int i4){ + int paddingLeft = getPaddingLeft(); + int paddingTop = getPaddingTop(); + int measuredWidth = getMeasuredWidth() - getPaddingRight(); + int measuredHeight = getMeasuredHeight() - getPaddingBottom(); + int i5 = i() + paddingLeft; + a(paddingLeft, paddingTop, i5, h() + paddingTop); + int h = ((this.T.getMaxLines() == 1 || e(this.W)) ? (((h() - l()) - j()) - s()) / 2 : 0) + paddingTop; + f(i5, h, measuredWidth, l() + h); + int k = k(); + int j = j(); + int bottom = this.N.getBottom() + a(this.N); + int i6 = k + i5; + int i7 = j + bottom; + e(i5, bottom, i6, i7); + l(i5, bottom, i6, i7); + b(this.R, i6, this.N.getBottom() + a(this.N) + getTimeMargin()); + int r = r(); + int q = q(); + int i8 = ((paddingTop + measuredHeight) / 2) - (q / 2); + j(measuredWidth - r, i8, measuredWidth, q + i8); + } + + private void i(int i, int i2, int i3, int i4){ + AvatarView avatarView = this.S; + b(avatarView, i + b(avatarView), ((i2 + ((i4 - i2) / 2)) - (this.S.getMeasuredHeight() / 2)) + d(this.S)); + } + + private void j(int i, int i2, int i3, int i4){ + int i5 = i2 + ((i4 - i2) / 2); + AppCompatImageView appCompatImageView = this.b0; + b(appCompatImageView, b(appCompatImageView) + i, (i5 - (this.b0.getMeasuredHeight() / 2)) + d(this.b0)); + if (ViewExtKt.i(this.b0)) { + i = this.b0.getRight() + c(this.b0); + } + TextView textView = this.c0; + b(textView, b(textView) + i, (i5 - (this.c0.getMeasuredHeight() / 2)) + d(this.c0)); + AppCompatImageView appCompatImageView2 = this.d0; + b(appCompatImageView2, b(appCompatImageView2) + i, (i5 - (this.d0.getMeasuredHeight() / 2)) + d(this.d0)); + AppCompatImageView appCompatImageView3 = this.e0; + b(appCompatImageView3, b(appCompatImageView3) + i, (i5 - (this.e0.getMeasuredHeight() / 2)) + d(this.e0)); + AppCompatImageView appCompatImageView4 = this.f0; + b(appCompatImageView4, i + b(appCompatImageView4), (i5 - (this.f0.getMeasuredHeight() / 2)) + d(this.f0)); + } + + private void k(int i, int i2, int i3, int i4){ + int i5 = i2 + ((i4 - i2) / 2); + TextView textView = this.W; + b(textView, b(textView) + i, (i5 - (this.W.getMeasuredHeight() / 2)) + d(this.W)); + + if (e(this.W)) { + i = this.W.getRight() + c(this.W); + } + + AppCompatImageView appCompatImageView = this.a0; + b(appCompatImageView, i + b(appCompatImageView), (i5 - (this.a0.getMeasuredHeight() / 2)) + d(this.a0)); + } + + public void b(CharSequence charSequence, boolean z){ + int i = VISIBLE; + + if (charSequence == null || charSequence.length() == 0) { + i = GONE; + } + + this.c0.setVisibility(i); + this.c0.setText(charSequence); + Context context = getContext(); + this.c0.setTextColor(ContextExtKt.h(context, z ? c.counter_secondary_text : c.counter_primary_text)); + this.g.a(z ? this.B : this.h); + } + + private void f(int i, int i2, int i3, int i4){ + TextView textView = this.N; + b(textView, i + b(textView), d(this.N) + i2); + int right = this.N.getRight() + c(this.N); + int d2 = i2 + d(this.N) + (this.N.getMeasuredHeight() / 2); + AppCompatImageView appCompatImageView = this.O; + b(appCompatImageView, b(appCompatImageView) + right, (d2 - (this.O.getMeasuredHeight() / 2)) + d(this.O)); + + if (e(this.O)) { + right = this.O.getRight() + c(this.O); + } + + AppCompatImageView appCompatImageView2 = this.Q; + b(appCompatImageView2, b(appCompatImageView2) + right, (d2 - (this.Q.getMeasuredHeight() / 2)) + d(this.Q)); + + if (e(this.Q)) { + right = this.Q.getRight() + c(this.Q); + } + + AppCompatImageView appCompatImageView3 = this.P; + b(appCompatImageView3, right + b(appCompatImageView3), (d2 - (this.P.getMeasuredHeight() / 2)) + d(this.P)); + + if (!this.E) { + TextView textView2 = this.R; + b(textView2, (i3 - c(textView2)) - this.R.getMeasuredWidth(), (d2 - (this.R.getMeasuredHeight() / 2)) + d(this.R)); + } + } + + private void l(int i, int i2, int i3, int i4){ + TextView textView = this.W; + b(textView, i + b(textView), i2); + int right = this.W.getRight() + c(this.W); + AppCompatImageView appCompatImageView = this.a0; + b(appCompatImageView, right + b(appCompatImageView), (((this.W.getBottom() + this.W.getTop()) / 2) - (this.a0.getMeasuredHeight() / 2)) + d(this.a0)); + } + + private void e(int i, int i2){ + b(this.a0, i, 0, i2, 0); + b(this.W, i, g(this.a0), i2, 0); + } + + public void a(CharSequence charSequence, boolean z){ + this.N.setText(charSequence); + this.N.setTextColor(z ? getTitleColorHighlight() : this.f15761e); + } + + private void b(int i, int i2){ + b(this.O, i, 0, i2, 0); + b(this.Q, i, 0, i2, 0); + b(this.P, i, 0, i2, 0); + b(this.R, i, 0, i2, 0); + } + + public void a(){ + a(null, 1); + setAttach(null); + } + + private boolean e(View view){ + return view.getVisibility() == VISIBLE; + } + + public void a(CharSequence charSequence, int i, CharSequence charSequence2){ + boolean z = false; + + if (!(charSequence == null || charSequence.length() == 0)) { + a(charSequence, i); + } else { + a(null, 1); + } + + setAttach(charSequence2); + + if (charSequence == null || charSequence.length() == 0) { + if (charSequence2 == null || charSequence2.length() == 0) { + z = true; + } + if (!z) { + return; + } + a(this.F, 1); + setAttach(null); + } + } + + private void b(int i, int i2, int i3){ + a(this.N, i, i3, i2, 0); + } + + private void b(int i, int i2, int i3, int i4){ + int g = e(this.V) ? g(this.V) + i : i; + TextView textView = this.U; + a(textView, g + b(textView), i2 + d(this.U)); + AppCompatImageView appCompatImageView = this.V; + b(appCompatImageView, i + b(appCompatImageView), (this.U.getTop() + (this.U.getMeasuredHeight() / 2)) - (this.V.getMeasuredHeight() / 2)); + } + + private void a(CharSequence charSequence, int i){ + int i2 = VISIBLE; + + if (charSequence == null || charSequence.length() == 0) { + i2 = GONE; + } + + this.T.setVisibility(i2); + this.T.setText(charSequence); + setBodyLinesCount(i); + } + + private void b(View view, int i, int i2, int i3, int i4){ + if (view.getVisibility() != GONE) { + a(view, i, i2, i3, i4); + } + } + + public void a(CharSequence charSequence, ComposingType composingType){ + Drawable drawable = composingType == ComposingType.AUDIO ? this.H : this.G; + boolean z = false; + drawable.setVisible(!(charSequence == null || charSequence.length() == 0), false); + this.a0.setImageDrawable(drawable); + ViewExtKt.b(this.a0, !(charSequence == null || charSequence.length() == 0)); + + if (charSequence == null || charSequence.length() == 0) { + z = true; + } + + ViewExtKt.b(this.W, !z); + this.W.setText(charSequence); + } + + private void b(View view, int i, int i2){ + if (view.getVisibility() == VISIBLE) { + a(view, i, i2); + } + } + + private int b(View view){ + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + + if (marginLayoutParams != null) { + return marginLayoutParams.leftMargin; + } + + return 0; + } + + private int b(int i){ + return View.MeasureSpec.makeMeasureSpec(i, MeasureSpec.AT_MOST); + } + + private int g(View view){ + if (view.getVisibility() == GONE) { + return 0; + } + + int measuredWidth = view.getMeasuredWidth(); + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + return marginLayoutParams != null ? measuredWidth + marginLayoutParams.leftMargin + marginLayoutParams.rightMargin : measuredWidth; + } + + private void a(int i, int i2){ + a(this.K, i, 0, i2, 0); + b(this.M, i, 0, i2, 0); + b(this.L, i, 0, i2, 0); + } + + private int f(View view){ + if (view.getVisibility() == GONE) { + return 0; + } + + int measuredHeight = view.getMeasuredHeight(); + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + if (marginLayoutParams != null) { + measuredHeight += marginLayoutParams.topMargin + marginLayoutParams.bottomMargin; + } + return measuredHeight; + } + + private void a(int i, int i2, int i3, int i4){ + AvatarView avatarView = this.K; + a(avatarView, i + b(avatarView), i2 + d(this.K)); + a(this.M, this.K.getLeft() - this.K.getPaddingLeft(), this.K.getTop() - this.K.getPaddingTop()); + b(this.L, this.K.getRight() - this.L.getMeasuredWidth(), this.K.getBottom() - this.L.getMeasuredHeight()); + } + + private void c(int i, int i2){ + b(this.S, i, 0, i2, 0); + } + + private void c(int i, int i2, int i3, int i4){ + d(i, i2, i3, f(this.T) + i2); + b(i, i2 + f(this.T), i3, i4); + } + + private int h(){ + return f(this.K); + } + + private void d(int i, int i2, int i3, int i4){ + TextView textView = this.T; + a(textView, i + b(textView), i2 + d(this.T)); + } + + private int c(View view){ + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + + if (marginLayoutParams != null) { + return marginLayoutParams.rightMargin; + } + + return 0; + } + + private void d(int i, int i2){ + b(this.b0, i, 0, i2, 0); + b(this.c0, i, 0, i2, 0); + b(this.d0, i, 0, i2, 0); + b(this.e0, i, 0, i2, 0); + b(this.f0, i, 0, i2, 0); + } + + private void a(int i, int i2, int i3){ + b(this.T, i, i3, i2, 0); + b(this.V, i, i3, i2, 0); + b(this.U, i, i3 + g(this.V), i2, 0); + } + + private int d(View view){ + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + + if (marginLayoutParams != null) { + return marginLayoutParams.topMargin; + } + + return 0; + } + + private ViewGroup.MarginLayoutParams a(int i, int i2, int i3, int i4, int i5, int i6){ + ViewGroup.MarginLayoutParams marginLayoutParams = new ViewGroup.MarginLayoutParams(i, i2); + marginLayoutParams.leftMargin = i3; + marginLayoutParams.topMargin = i4; + marginLayoutParams.rightMargin = i5; + marginLayoutParams.bottomMargin = i6; + return marginLayoutParams; + } + + public int a(int i){ + return (int) (i * (this.a.densityDpi / 160.0f)); + } + + public int a(float f2){ + return (int) (f2 * (this.a.densityDpi / 160.0f)); + } + + private void a(View view, int i, int i2, int i3, int i4){ + view.measure(ViewGroup.getChildMeasureSpec(i, i2 + b(view) + c(view), view.getLayoutParams().width), ViewGroup.getChildMeasureSpec(i3, i4 + d(view) + a(view), view.getLayoutParams().height)); + } + + private void a(View view, int i, int i2){ + view.layout(i, i2, view.getMeasuredWidth() + i, view.getMeasuredHeight() + i2); + } + + private int a(View view){ + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + + if (marginLayoutParams != null) { + return marginLayoutParams.bottomMargin; + } + + return 0; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/profile/ui/community/CommunityBorderedImageView.java b/app/src/main/java/com/vk/profile/ui/community/CommunityBorderedImageView.java new file mode 100644 index 000000000..0c8c8b19b --- /dev/null +++ b/app/src/main/java/com/vk/profile/ui/community/CommunityBorderedImageView.java @@ -0,0 +1,106 @@ +package com.vk.profile.ui.community; + +import android.content.Context; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; +import android.util.AttributeSet; + +import com.vk.core.ui.themes.Themable; +import com.vk.core.ui.themes.VKThemeHelper; +import com.vk.core.util.ContextExtKt; +import com.vk.dto.stories.model.StoriesContainer; +import com.vk.stories.view.BorderedCircleImageView; +import com.vtosters.lite.R; + +public final class CommunityBorderedImageView extends BorderedCircleImageView implements Themable{ + private boolean f0; + private int g0; + private int h0; + private PorterDuffColorFilter i0; + private PorterDuffColorFilter j0; + private int unread; + private int read; + + public CommunityBorderedImageView(Context context){ + this(context, null, 0, 6); + } + + public CommunityBorderedImageView(Context context, AttributeSet attributeSet){ + this(context, attributeSet, 0, 4); + } + + public CommunityBorderedImageView(Context context, AttributeSet attributeSet, int i, int i2){ + this(context, (i2 & 2) != 0 ? null : attributeSet, (i2 & 4) != 0 ? 0 : i); + } + + public CommunityBorderedImageView(Context context, AttributeSet attributeSet, int i){ + super(context, attributeSet, i); + this.g0 = VKThemeHelper.d((int) R.attr.accent); + this.h0 = ContextExtKt.a(context, (int) R.color.gray_200); + this.i0 = new PorterDuffColorFilter(this.g0, PorterDuff.Mode.SRC_IN); + this.j0 = new PorterDuffColorFilter(this.h0, PorterDuff.Mode.SRC_IN); + } + + public final void c(int unread, int read){ // get unread and read resid + this.unread = unread; + this.read = read; + this.T = BitmapFactory.decodeResource(getResources(), this.unread); + } + + public final int getPrimaryColor(){ + return this.g0; + } + + public final void setPrimaryColor(int i){ + this.g0 = i; + this.i0 = new PorterDuffColorFilter(i, PorterDuff.Mode.SRC_IN); + } + + public final int getWasViewedColor(){ + return this.h0; + } + + public final void setWasViewedColor(int i){ + this.h0 = i; + this.j0 = new PorterDuffColorFilter(i, PorterDuff.Mode.SRC_IN); + } + + public final void o(){ + this.f0 = false; + l(); + } + + @Override // com.vk.stories.view.ClippedImageView, android.widget.ImageView, android.view.View + public void onDraw(Canvas canvas){ + super.onDraw(canvas); + if (this.f0) { + a(canvas); + } + } + + public final void setStoryContainer(StoriesContainer storiesContainer){ + if (storiesContainer.L1()) { + this.f0 = true; + m(); + if (storiesContainer.K1()) { + this.T = BitmapFactory.decodeResource(getResources(), this.unread); + setBorderColorFilter(this.i0); + b(getWidth(), getHeight()); + invalidate(); + return; + } + this.T = BitmapFactory.decodeResource(getResources(), this.read); + setBorderColorFilter(this.j0); + b(getWidth(), getHeight()); + invalidate(); + return; + } + o(); + } + + @Override // com.vk.core.ui.themes.Themable + public void v(){ + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/sharing/view/TargetImageView.java b/app/src/main/java/com/vk/sharing/view/TargetImageView.java new file mode 100644 index 000000000..69b4cb999 --- /dev/null +++ b/app/src/main/java/com/vk/sharing/view/TargetImageView.java @@ -0,0 +1,304 @@ +package com.vk.sharing.view; + +import static b.h.z.f.roboto_medium; +import static ru.vtosters.lite.utils.Preferences.preferences; +import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.PorterDuff; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.util.AttributeSet; + +import androidx.annotation.UiThread; +import androidx.core.content.ContextCompat; + +import com.facebook.drawee.drawable.ScalingUtils; +import com.facebook.drawee.generic.GenericDraweeHierarchy; +import com.facebook.drawee.view.DraweeHolder; +import com.vk.core.util.ContextExtKt; +import com.vk.core.util.Screen; +import com.vk.im.ui.views.avatars.AbbreviationAvatarDrawable; +import com.vk.imageloader.view.VKMultiImageView; +import com.vk.navigation.NavigatorKeys; +import com.vtosters.lite.R; +import com.vtosters.lite.a0; + +import java.util.Arrays; + +import ru.vtosters.lite.utils.AndroidUtils; + +@UiThread +public class TargetImageView extends VKMultiImageView { + private static final int I = Screen.a(2); + private final int B; + private final int C; + private Drawable D; + private String[] F; + private int G; + private final RectF f21629d; + private final Paint f21630e; + private Canvas f21631f; + private final RectF g; + private final Paint h; + + public TargetImageView(Context context, Drawable d) { + this(context, null, 0, 6); + } + + public TargetImageView(Context context, AttributeSet attributeSet) { + this(context, attributeSet, 0, 4); + } + + public TargetImageView(Context context, AttributeSet attributeSet, int i, int i2) { + this(context, (i2 & 2) != 0 ? null : attributeSet, (i2 & 4) != 0 ? 0 : i); + } + + private void e() { + int i = this.G; + for (int i2 = 0; i2 < i; i2++) { + a(i2, this.F[i2]); + } + } + + private void f() { + int paddingLeft = getPaddingLeft(); + int paddingTop = getPaddingTop(); + int width = (getWidth() - paddingLeft) - getPaddingRight(); + int height = (getHeight() - paddingTop) - getPaddingBottom(); + int i = width / 2; + int i2 = height / 2; + int i3 = this.G; + if (i3 == 1) { + DraweeHolder a2 = this.a.a(0); + Drawable d2 = a2.d(); + if (d2 != null) { + d2.setBounds(paddingLeft, paddingTop, width + paddingLeft, height + paddingTop); + } + } else if (i3 == 2) { + DraweeHolder a3 = this.a.a(0); + Drawable d3 = a3.d(); + if (d3 != null) { + int i4 = i + paddingLeft; + int i5 = height + paddingTop; + d3.setBounds(paddingLeft, paddingTop, i4, i5); + DraweeHolder a4 = this.a.a(1); + Drawable d4 = a4.d(); + if (d4 != null) { + d4.setBounds(i4, paddingTop, paddingLeft + width, i5); + } + } + + } else if (i3 == 3) { + DraweeHolder a5 = this.a.a(0); + Drawable d5 = a5.d(); + if (d5 != null) { + int i6 = i + paddingLeft; + int i7 = height + paddingTop; + d5.setBounds(paddingLeft, paddingTop, i6, i7); + DraweeHolder a6 = this.a.a(1); + Drawable d6 = a6.d(); + if (d6 != null) { + int i9 = paddingLeft + width; + int i10 = i2 + paddingTop; + d6.setBounds(i6, paddingTop, i9, i10); + DraweeHolder a7 = this.a.a(2); + Drawable d7 = a7.d(); + if (d7 != null) { + d7.setBounds(i6, i10, i9, i7); + } + } + + } + } else { + DraweeHolder a8 = this.a.a(0); + Drawable d8 = a8.d(); + if (d8 != null) { + int i11 = i + paddingLeft; + int i13 = i2 + paddingTop; + d8.setBounds(paddingLeft, paddingTop, i11, i13); + DraweeHolder a9 = this.a.a(1); + Drawable d9 = a9.d(); + if (d9 != null) { + int i16 = height + paddingTop; + d9.setBounds(paddingLeft, i13, i11, i16); + DraweeHolder a10 = this.a.a(2); + Drawable d10 = a10.d(); + if (d10 != null) { + int i18 = paddingLeft + width; + d10.setBounds(i11, paddingTop, i18, i13); + DraweeHolder a11 = this.a.a(3); + Drawable d11 = a11.d(); + if (d11 != null) { + d11.setBounds(i11, i13, i18, i16); + } + } + } + } + } + } + + private void g() { + if (getWidth() == 0 || getHeight() == 0) { + return; + } + f(); + } + + private AbbreviationAvatarDrawable getAbbreviationDrawable() { + return a(getContext(), null, 2); + } + + private AbbreviationAvatarDrawable a(Context context, Typeface typeface, int i) { + return new AbbreviationAvatarDrawable(context, (i & 2) != 0 ? ContextExtKt.e(context, roboto_medium) : typeface); + } + + public void a(String str) { + Arrays.fill(this.F, null); + if (str == null) { + b(); + this.G = 1; + g(); + e(); + return; + } + + Uri uri = Uri.parse(str); + if (uri.getScheme().equals("vkchatphoto")) { + this.G = 0; + while (true) { + String queryParameter = uri.getQueryParameter("photo" + this.G); + if (queryParameter != null) { + int i = this.G; + this.G = i + 1; + this.F[i] = queryParameter; + } else { + g(); + e(); + return; + } + } + } else if (uri.getScheme().equals("vkchatplaceholder")) { + this.G = 1; + g(); + AbbreviationAvatarDrawable abbreviationDrawable = getAbbreviationDrawable(); + String queryParameter2 = uri.getQueryParameter(NavigatorKeys.Q); + int parseInt = queryParameter2 != null ? Integer.parseInt(queryParameter2) : 0; + String queryParameter3 = uri.getQueryParameter(NavigatorKeys.d); + if (queryParameter3 == null) { + queryParameter3 = ""; + } + abbreviationDrawable.a(parseInt, queryParameter3); + a(0, getAbbreviationDrawable()); + } else { + this.F[0] = str; + this.G = 1; + g(); + e(); + } + } + + @Override // android.view.View + protected void onDraw(Canvas canvas) { + Canvas canvas2 = this.f21631f; + int pref = preferences.getInt("pic_rounding", 0); + + if (canvas2 != null) { + canvas2.drawColor(0, PorterDuff.Mode.CLEAR); + } + int i = this.G; + for (int i2 = 0; i2 < i; i2++) { + DraweeHolder a2 = this.a.a(i2); + Drawable d2 = a2.d(); + if (d2 != null) { + Canvas canvas3 = this.f21631f; + d2.draw(canvas3); + } + } + + if (pref > 0) { + canvas.drawRoundRect(this.f21629d, pref, pref, this.f21630e); + } else { + canvas.drawOval(this.f21629d, this.f21630e); + } + + if (isSelected()) { + if (pref > 0) { + canvas.drawRoundRect(this.g.left, this.g.top, this.g.right, this.g.bottom, pref, pref, this.h); + } else { + canvas.drawCircle(this.g.centerX(), this.g.centerY(), this.g.width() / 2, this.h); + } + + this.D.draw(canvas); + } + } + + @Override // android.view.View + protected void onSizeChanged(int i, int i2, int i3, int i4) { + super.onSizeChanged(i, i2, i3, i4); + int paddingLeft = getPaddingLeft(); + int paddingRight = getPaddingRight(); + int paddingTop = getPaddingTop(); + int i5 = i - paddingRight; + int paddingBottom = i2 - getPaddingBottom(); + this.f21629d.set(paddingLeft, paddingTop, i5, paddingBottom); + Bitmap createBitmap = Bitmap.createBitmap(i5, paddingBottom, Bitmap.Config.ARGB_8888); + this.f21631f = new Canvas(createBitmap); + Shader.TileMode tileMode = Shader.TileMode.CLAMP; + this.f21630e.setShader(new BitmapShader(createBitmap, tileMode, tileMode)); + float f2 = I / 2; + this.g.set(f2, f2, i - f2, (float) i2 - f2); + float f4 = i / 2; + this.h.setShader(new LinearGradient(f4, 0.0f, f4, (float) i2, this.B, this.C, Shader.TileMode.CLAMP)); + Drawable drawable = this.D; + drawable.setBounds(i - drawable.getIntrinsicWidth(), i2 - this.D.getIntrinsicHeight(), i, i2); + f(); + } + + public TargetImageView(Context context, AttributeSet attributeSet, int i) { + super(context, attributeSet, i); + this.f21629d = new RectF(); + Paint paint = new Paint(); + paint.setAntiAlias(true); + paint.setDither(true); + paint.setFilterBitmap(true); + this.f21630e = paint; + this.g = new RectF(); + Paint paint2 = new Paint(); + paint2.setAntiAlias(true); + paint2.setStrokeWidth(I); + paint2.setStyle(Paint.Style.STROKE); + this.h = paint2; + this.B = getAccentColor(); + this.C = this.B; + Drawable c2 = ContextExtKt.c(context, R.drawable.ic_check_circle_composite_24_full); + if (c2 != null) { + this.D = c2; + this.F = new String[4]; + int i2 = I * 2; + setPadding(i2, i2, i2, i2); + if (attributeSet != null) { + TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, a0.TargetImageView); + setSelected(obtainStyledAttributes.getBoolean(0, false)); + obtainStyledAttributes.recycle(); + } + Drawable drawable = ContextCompat.getDrawable(context, R.drawable.user_placeholder); + for (int i3 = 0; i3 <= 3; i3++) { + a(); + DraweeHolder a3 = this.a.a(i3); + a3.b().e(drawable); + } + setScaleType(ScalingUtils.b.o); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vk/stories/view/StoryCircleImageView.java b/app/src/main/java/com/vk/stories/view/StoryCircleImageView.java new file mode 100644 index 000000000..8cd135949 --- /dev/null +++ b/app/src/main/java/com/vk/stories/view/StoryCircleImageView.java @@ -0,0 +1,447 @@ +package com.vk.stories.view; + +import static ru.vtosters.lite.utils.ThemesUtils.getColor2; + +import android.animation.ValueAnimator; +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.util.AttributeSet; +import android.view.ViewTreeObserver; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import com.airbnb.lottie.LottieComposition; +import com.airbnb.lottie.LottieCompositionFactory; +import com.airbnb.lottie.LottieDrawable; +import com.airbnb.lottie.LottieListener; +import com.facebook.common.internal.Supplier; +import com.facebook.common.references.CloseableReference; +import com.facebook.datasource.DataSource; +import com.facebook.imagepipeline.request.ImageRequest; +import com.facebook.imagepipeline.request.ImageRequestBuilder; +import com.facebook.u.b.a.PipelineDraweeControllerBuilder; +import com.facebook.x.g.CloseableImage; +import com.vk.core.drawable.BorderDrawable; +import com.vk.core.ui.themes.Themable; +import com.vk.core.ui.themes.VKThemeHelper; +import com.vk.core.util.DrawableUtils; +import com.vk.core.util.ResUtils; +import com.vk.core.util.Screen; +import com.vk.dto.stories.d.StoriesContainerExt; +import com.vk.dto.stories.model.CommunityGroupedStoriesContainer; +import com.vk.dto.stories.model.StoriesContainer; +import com.vk.dto.stories.model.StoryEntry; +import com.vk.im.engine.models.Image; +import com.vk.im.ui.views.avatars.AvatarDataSource; +import com.vk.imageloader.FrescoWrapper; +import com.vk.stories.StoriesController; +import com.vtosters.lite.R; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; + +import ru.vtosters.lite.utils.AndroidUtils; + +public class StoryCircleImageView extends BorderedCircleImageView implements Themable{ + private static final HashSet B0 = new HashSet<>(); + private final PipelineDraweeControllerBuilder f0; + private int A0; + private Drawable g0; + private Drawable h0; + private Drawable i0; + private int j0; + private int k0; + private int l0; + private int m0; + private int n0; + private int o0; + private Bitmap p0; + private Bitmap q0; + private Bitmap r0; + private Bitmap s0; + private boolean t0; + private boolean u0; + private boolean v0; + private boolean w0; + private boolean x0; + private String y0; + private LottieDrawable z0; + + public StoryCircleImageView(Context context){ + this(context, null); + } + + public StoryCircleImageView(Context context, AttributeSet attributeSet){ + this(context, attributeSet, 0); + } + + public StoryCircleImageView(Context context, AttributeSet attributeSet, int i){ + super(context, attributeSet, i); + this.f0 = FrescoWrapper.c.d(); + a(context, attributeSet, i); + } + + private void b(Canvas canvas){ + this.z0.draw(canvas); + } + + private boolean o(){ + return !this.u0 && !this.t0 && this.z0 == null && !this.w0 && !this.v0; + } + + private void p(){ + this.z0.stop(); + this.z0 = null; + invalidate(); + } + + private void q(){ + int i = this.j0; + if (i != 0 && VKThemeHelper.k.a(i)) { + this.k0 = VKThemeHelper.d(this.j0); + } + this.g0 = DrawableUtils.a(this.g0, ColorStateList.valueOf(this.k0)); + Drawable drawable = this.g0; + int i2 = this.A0; + this.p0 = DrawableUtils.a(drawable, i2, i2); + int i3 = this.l0; + if (i3 != 0 && VKThemeHelper.k.a(i3)) { + this.m0 = VKThemeHelper.d(this.l0); + } + int i4 = this.m0; + if (i4 != 0) { + this.i0 = DrawableUtils.a(this.i0, ColorStateList.valueOf(i4)); + } + int i5 = this.n0; + if (i5 != 0 && VKThemeHelper.k.a(i5)) { + this.o0 = VKThemeHelper.d(this.n0); + } + Drawable a2 = DrawableUtils.a(this.g0, ColorStateList.valueOf(0)); + int i6 = this.A0; + DrawableUtils.a(a2, i6, i6); + Drawable a3 = DrawableUtils.a(this.h0, ColorStateList.valueOf(this.o0)); + int i7 = this.A0; + this.r0 = DrawableUtils.a(a3, i7, i7); + Drawable a4 = DrawableUtils.a(this.g0, ColorStateList.valueOf(ContextCompat.getColor(getContext(), R.color.orange))); + int i8 = this.A0; + this.s0 = DrawableUtils.a(a4, i8, i8); + } + + private void r(){ + this.c0 = Screen.a(o() ? 0 : 2); + m(); + q(); + } + + private void setUploadFailed(boolean z){ + this.u0 = z; + invalidate(); + } + + @Override // com.vk.stories.view.ClippedImageView, android.widget.ImageView, android.view.View + public void onDraw(Canvas canvas){ + super.onDraw(canvas); + setBorderAlpha(255); + if (this.u0) { + this.i0.draw(canvas); + } else if (this.t0) { + if (this.z0 != null) { + b(canvas); + return; + } + this.T = this.x0 ? this.s0 : this.p0; + b(getWidth(), getHeight()); + a(canvas); + } else if (this.z0 != null) { + p(); + } else if (!this.w0) { + + } else { + this.T = this.r0; + setBorderAlpha(163); + b(getWidth(), getHeight()); + a(canvas); + } + } + + @Override // com.vk.stories.view.BorderedCircleImageView, android.view.View + public void onSizeChanged(int i, int i2, int i3, int i4){ + super.onSizeChanged(i, i2, i3, i4); + this.i0.setBounds(0, 0, i, i2); + b(i); + } + + public void setStoryContainer(@Nullable StoriesContainer storiesContainer){ + boolean z = true; + boolean z2 = storiesContainer != null && storiesContainer.Q1(); + this.v0 = storiesContainer != null && storiesContainer.S1() && !storiesContainer.L1(); + boolean z3 = storiesContainer instanceof CommunityGroupedStoriesContainer; + this.x0 = z3; + if (storiesContainer != null) { + if (!StoriesContainerExt.c(storiesContainer) && !StoriesContainerExt.d(storiesContainer)) { + this.T = this.p0; + } else { + this.T = this.q0; + } + b(getWidth(), getHeight()); + if (StoriesContainerExt.e(storiesContainer)) { + a(storiesContainer); + } else if (this.z0 != null) { + p(); + } + this.w0 = !storiesContainer.K1() && storiesContainer.L1(); + if (z2) { + String h = storiesContainer.h(ResUtils.c(R.dimen.story_preview_image_size)); + if (h != null) { + a(h); + } else { + g(); + } + if (StoriesController.a(storiesContainer)) { + setUploadFailed(true); + a(false, false); + } else { + setUploadFailed(false); + if (!storiesContainer.K1() && !StoriesContainerExt.c(storiesContainer)) { + a(false, false); + } else { + StoryEntry A1 = storiesContainer.A1(); + if (A1 != null) { + a(true, !B0.contains(A1.b)); + B0.add(A1.b); + } else { + a(true, false); + } + } + } + } else { + setUploadFailed(false); + if (!storiesContainer.K1() && !StoriesContainerExt.c(storiesContainer)) { + z = false; + } + a(z, false); + if (z3) { + b(((CommunityGroupedStoriesContainer) storiesContainer).j(ResUtils.c(R.dimen.story_preview_image_size))); + } else { + String h2 = storiesContainer.h(ResUtils.c(R.dimen.story_preview_image_size)); + if (h2 != null) { + a(h2); + } else { + g(); + } + } + } + } else { + g(); + a(false, false); + setUploadFailed(false); + this.w0 = false; + } + r(); + } + + @Override // com.vk.core.ui.themes.Themable + public void v(){ + r(); + invalidate(); + } + + private void b(int i){ + LottieDrawable lottieDrawable = this.z0; + if (lottieDrawable == null || lottieDrawable.e() == null) { + return; + } + this.z0.d(i / this.z0.e().a().width()); + } + + protected void a(Context context, AttributeSet attributeSet, int i){ + TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, com.vtosters.lite.a0.StoryCircleImageView, i, 0); + a(context, attributeSet, obtainStyledAttributes); + obtainStyledAttributes.recycle(); + r(); + this.T = this.p0; + } + + public void b(@Nullable List list){ + PipelineDraweeControllerBuilder pipelineDraweeControllerBuilder = this.f0; + pipelineDraweeControllerBuilder.j(); + pipelineDraweeControllerBuilder.a(getController()); + setControllerListener(pipelineDraweeControllerBuilder); + a(pipelineDraweeControllerBuilder, list); + setController(pipelineDraweeControllerBuilder.k0()); + } + + @SuppressLint("ResourceType") + private void a(Context context, AttributeSet attributeSet, TypedArray typedArray){ // bullshit vk code is not working with custom bordered circle image + Drawable drawable; + this.A0 = typedArray.getDimensionPixelSize(0, Screen.a(64.0f)); + if (typedArray.hasValue(2)) { + this.g0 = typedArray.getDrawable(2); + } else { + this.g0 = ContextCompat.getDrawable(context, R.drawable.bg_stores_unread_border_80); + } + if (typedArray.hasValue(3)) { + this.h0 = typedArray.getDrawable(3); + } else { + this.h0 = ContextCompat.getDrawable(context, R.drawable.bg_stores_read_border_80); + } + + int b2 = VKThemeHelper.b(attributeSet, "vk_borderTint"); + if (b2 != 0 && VKThemeHelper.k.a(b2)) { + this.j0 = b2; + } else if (typedArray.hasValue(5)) { + this.k0 = typedArray.getColor(5, 0); + } else { + this.j0 = R.attr.accent; + } + + int b3 = VKThemeHelper.b(attributeSet, "vk_failBorderTint"); + if (b3 != 0 && VKThemeHelper.k.a(b3)) { + this.l0 = b3; + } else if (typedArray.hasValue(7)) { + this.m0 = typedArray.getColor(7, 0); + } + + int b4 = VKThemeHelper.b(attributeSet, "vk_borderSeenTint"); + if (b4 != 0 && VKThemeHelper.k.a(b4)) { + this.n0 = b4; + } else if (typedArray.hasValue(4)) { + this.o0 = typedArray.getColor(4, 0); + } else { + this.o0 = 0; + } + if (typedArray.hasValue(6)) { + this.i0 = typedArray.getDrawable(6); + } else { + this.i0 = ContextCompat.getDrawable(context, R.drawable.ic_story_error_size64); + } + if (typedArray.hasValue(8)) { + drawable = typedArray.getDrawable(8); + } else { + drawable = ContextCompat.getDrawable(context, R.drawable.bg_live_unread_border); + } + if (typedArray.hasValue(9)) { + this.y0 = typedArray.getString(9); + } else { + this.y0 = "stories_animation_64.json"; + } + + int i = this.A0; + this.q0 = DrawableUtils.a(Objects.requireNonNull(drawable), i, i); + Drawable drawable2 = this.g0; + int i2 = this.A0; + DrawableUtils.a(drawable2, i2, i2); + Drawable drawable3 = this.h0; + int i3 = this.A0; + this.r0 = DrawableUtils.a(drawable3, i3, i3); + Drawable drawable4 = this.g0; + int i4 = this.A0; + this.s0 = DrawableUtils.a(drawable4, i4, i4); + } + + public void a(StoriesContainer storiesContainer){ + if (this.z0 == null) { + LottieCompositionFactory.a(getContext(), this.y0).b(new a(storiesContainer)); + } + } + + public void a(StoriesContainer storiesContainer, LottieComposition lottieComposition){ + this.z0 = new LottieDrawable(); + this.z0.a(lottieComposition); + this.z0.d(-1); + b(getWidth()); + if (!StoriesContainerExt.f(storiesContainer)) { + this.z0.a(new b()); + this.z0.start(); + return; + } + this.z0.stop(); + } + + private void a(boolean z, boolean z2){ + k(); + this.t0 = z; + if (!z2) { + setSelectionAmount(1.0f); + } else { + n(); + } + } + + private void a(@NonNull PipelineDraweeControllerBuilder pipelineDraweeControllerBuilder, @Nullable final List list){ + pipelineDraweeControllerBuilder.b(null); + pipelineDraweeControllerBuilder.a((Supplier>>) null); + if (list != null && !list.isEmpty()) { + if (list.size() == 1) { + ImageRequestBuilder b2 = ImageRequestBuilder.b(Uri.parse(list.get(0))); + b2.a(ImageRequest.CacheChoice.SMALL); + pipelineDraweeControllerBuilder.b(b2.a()); + return; + } + + pipelineDraweeControllerBuilder.a((Supplier>>) () -> StoryCircleImageView.this.a(list)); + return; + } + pipelineDraweeControllerBuilder.b(null); + } + + public DataSource> a(@Nullable List list){ + ArrayList arrayList = new ArrayList<>(); + for (String o : Objects.requireNonNull(list)) { + arrayList.add(new Image(-1, -1, o)); + } + return AvatarDataSource.a(arrayList, this.A0, 0); + } + + public class a implements LottieListener{ + final StoriesContainer a; + + a(StoriesContainer storiesContainer){ + this.a = storiesContainer; + } + + @Override // com.airbnb.lottie.LottieListener + public void a(LottieComposition lottieComposition){ + if (StoryCircleImageView.this.getWidth() > 0) { + StoryCircleImageView.this.a(this.a, lottieComposition); + } else { + StoryCircleImageView.this.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver$OnGlobalLayoutListenerC0393a(lottieComposition)); + } + } + + public class ViewTreeObserver$OnGlobalLayoutListenerC0393a implements ViewTreeObserver.OnGlobalLayoutListener{ + final LottieComposition a; + + ViewTreeObserver$OnGlobalLayoutListenerC0393a(LottieComposition lottieComposition){ + this.a = lottieComposition; + } + + @Override // android.view.ViewTreeObserver.OnGlobalLayoutListener + public void onGlobalLayout(){ + StoryCircleImageView.this.getViewTreeObserver().removeOnGlobalLayoutListener(this); + a aVar = a.this; + StoryCircleImageView.this.a(aVar.a, this.a); + } + } + } + + public class b implements ValueAnimator.AnimatorUpdateListener{ + b(){ + } + + @Override // android.animation.ValueAnimator.AnimatorUpdateListener + public void onAnimationUpdate(ValueAnimator valueAnimator){ + StoryCircleImageView.this.invalidate(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vtosters/lite/R.java b/app/src/main/java/com/vtosters/lite/R.java index 12420af5e..9011d0332 100644 --- a/app/src/main/java/com/vtosters/lite/R.java +++ b/app/src/main/java/com/vtosters/lite/R.java @@ -3560,26 +3560,26 @@ public class R { public static final int stickers_notifications_size = 0x7f070285; public static final int stickers_tabs_padding = 0x7f070286; public static final int stickers_tabs_size = 0x7f070287; - public static final int stiсkers_catalog_button_padding_bottom = 0x7f070288; - public static final int stiсkers_catalog_button_padding_left = 0x7f070289; - public static final int stiсkers_catalog_button_padding_right = 0x7f07028a; - public static final int stiсkers_catalog_button_padding_top = 0x7f07028b; - public static final int stiсkers_catalog_double_stacked_slider_image_bg_size = 0x7f07028c; - public static final int stiсkers_catalog_double_stacked_slider_image_corner_radius = 0x7f07028d; - public static final int stiсkers_catalog_double_stacked_slider_image_size = 0x7f07028e; - public static final int stiсkers_catalog_large_slider_image_bg_height = 0x7f07028f; - public static final int stiсkers_catalog_large_slider_image_bg_width = 0x7f070290; - public static final int stiсkers_catalog_large_slider_image_corner_radius = 0x7f070291; - public static final int stiсkers_catalog_large_slider_image_size = 0x7f070292; - public static final int stiсkers_catalog_small_slider_image_bg_size = 0x7f070293; - public static final int stiсkers_catalog_small_slider_image_corner_radius = 0x7f070294; - public static final int stiсkers_catalog_small_slider_image_size = 0x7f070295; - public static final int stiсkers_catalog_triple_stacked_slider_image_bg_size = 0x7f070296; - public static final int stiсkers_catalog_triple_stacked_slider_image_corner_radius = 0x7f070297; - public static final int stiсkers_catalog_triple_stacked_slider_image_size = 0x7f070298; - public static final int stiсkers_catalog_vertical_list_image_bg_size = 0x7f070299; - public static final int stiсkers_catalog_vertical_list_image_corner_radius = 0x7f07029a; - public static final int stiсkers_catalog_vertical_list_image_size = 0x7f07029b; + public static final int stickers_catalog_button_padding_bottom = 0x7f070288; + public static final int stickers_catalog_button_padding_left = 0x7f070289; + public static final int stickers_catalog_button_padding_right = 0x7f07028a; + public static final int stickers_catalog_button_padding_top = 0x7f07028b; + public static final int stickers_catalog_double_stacked_slider_image_bg_size = 0x7f07028c; + public static final int stickers_catalog_double_stacked_slider_image_corner_radius = 0x7f07028d; + public static final int stickers_catalog_double_stacked_slider_image_size = 0x7f07028e; + public static final int stickers_catalog_large_slider_image_bg_height = 0x7f07028f; + public static final int stickers_catalog_large_slider_image_bg_width = 0x7f070290; + public static final int stickers_catalog_large_slider_image_corner_radius = 0x7f070291; + public static final int stickers_catalog_large_slider_image_size = 0x7f070292; + public static final int stickers_catalog_small_slider_image_bg_size = 0x7f070293; + public static final int stickers_catalog_small_slider_image_corner_radius = 0x7f070294; + public static final int stickers_catalog_small_slider_image_size = 0x7f070295; + public static final int stickers_catalog_triple_stacked_slider_image_bg_size = 0x7f070296; + public static final int stickers_catalog_triple_stacked_slider_image_corner_radius = 0x7f070297; + public static final int stickers_catalog_triple_stacked_slider_image_size = 0x7f070298; + public static final int stickers_catalog_vertical_list_image_bg_size = 0x7f070299; + public static final int stickers_catalog_vertical_list_image_corner_radius = 0x7f07029a; + public static final int stickers_catalog_vertical_list_image_size = 0x7f07029b; public static final int story_author_title_top_space = 0x7f07029c; public static final int story_cadre_bottom_btn_top_padding = 0x7f07029d; public static final int story_camera_tabs_height = 0x7f07029e; diff --git a/app/src/main/java/com/vtosters/lite/ui/bottomnavigation/BottomNavigationItemView.java b/app/src/main/java/com/vtosters/lite/ui/bottomnavigation/BottomNavigationItemView.java index 6df6b0d8b..d661873f5 100644 --- a/app/src/main/java/com/vtosters/lite/ui/bottomnavigation/BottomNavigationItemView.java +++ b/app/src/main/java/com/vtosters/lite/ui/bottomnavigation/BottomNavigationItemView.java @@ -1,5 +1,6 @@ package com.vtosters.lite.ui.bottomnavigation; +import static ru.vtosters.lite.utils.Preferences.*; import static ru.vtosters.lite.utils.ThemesUtils.getCSTDock; import android.annotation.SuppressLint; @@ -30,6 +31,7 @@ import com.vk.core.ui.themes.VKThemeHelper; import com.vtosters.lite.R; import me.grishka.appkit.utils.V; +import ru.vtosters.lite.utils.Preferences; public class BottomNavigationItemView extends FrameLayout implements MenuView.ItemView { private final TextView mSmallLabel; @@ -219,13 +221,19 @@ public class BottomNavigationItemView extends FrameLayout implements MenuView.It // ViewCompat.setScaleY(mLargeLabel, !mStaticModeEnabled && !checked ? mLargeScale : 1.0f); ViewCompat.setScaleX(mSmallLabel, !mStaticModeEnabled && checked ? mSmallScale : 1.0f); ViewCompat.setScaleY(mSmallLabel, !mStaticModeEnabled && checked ? mSmallScale : 1.0f); - // make mLargeLabel and mSmallLabel are bold mLargeLabel.setTypeface(null, Typeface.BOLD); mSmallLabel.setTypeface(null, Typeface.BOLD); - // make mLargeLabel and mSmallLabel text size is 10sp - mLargeLabel.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); - mSmallLabel.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); + int textsize; + + if (vkme()){ + textsize = 11; + } else { + textsize = 10; + } + + mLargeLabel.setTextSize(TypedValue.COMPLEX_UNIT_SP, textsize); + mSmallLabel.setTextSize(TypedValue.COMPLEX_UNIT_SP, textsize); mLargeLabel.setVisibility(/*checked ? VISIBLE :*/ INVISIBLE); mSmallLabel.setVisibility(VISIBLE);//checked ? INVISIBLE : VISIBLE); diff --git a/app/src/main/java/ru/vtosters/lite/deviceinfo/Device.java b/app/src/main/java/ru/vtosters/lite/deviceinfo/Device.java index b6014d3ea..2f541e3fb 100644 --- a/app/src/main/java/ru/vtosters/lite/deviceinfo/Device.java +++ b/app/src/main/java/ru/vtosters/lite/deviceinfo/Device.java @@ -1,5 +1,7 @@ package ru.vtosters.lite.deviceinfo; +import androidx.annotation.NonNull; + public class Device { private String androidId; private String bluetoothMac; @@ -86,6 +88,7 @@ public class Device { return this; } + @NonNull public String toString() { return "Device{serialId='" + this.serialId + "', androidId='" + this.androidId + "', wifiMac='" + this.wifiMac + "', bluetoothMac='" + this.bluetoothMac + "'}"; } diff --git a/app/src/main/java/ru/vtosters/lite/deviceinfo/DeviceInfoCollector.java b/app/src/main/java/ru/vtosters/lite/deviceinfo/DeviceInfoCollector.java index eb1097b8a..e3eb25ce8 100644 --- a/app/src/main/java/ru/vtosters/lite/deviceinfo/DeviceInfoCollector.java +++ b/app/src/main/java/ru/vtosters/lite/deviceinfo/DeviceInfoCollector.java @@ -1,5 +1,6 @@ package ru.vtosters.lite.deviceinfo; +import android.annotation.SuppressLint; import android.bluetooth.BluetoothAdapter; import android.content.Context; import android.net.wifi.WifiInfo; @@ -28,6 +29,7 @@ public class DeviceInfoCollector { private String serialId() { String str; try { + @SuppressLint("PrivateApi") Class cls = Class.forName("android.os.SystemProperties"); Method method = cls.getMethod("get", String.class); str = (String) method.invoke(cls, "gsm.sn1"); @@ -53,6 +55,7 @@ public class DeviceInfoCollector { return null; } + @SuppressLint("HardwareIds") private String androidId(Context context) { return Settings.Secure.getString(context.getContentResolver(), "android_id").toLowerCase(); } @@ -99,7 +102,7 @@ public class DeviceInfoCollector { StringBuilder sb = new StringBuilder(); int length = hardwareAddress.length; for (int i = 0; i < length; i++) { - sb.append(String.format("%02X:", Byte.valueOf(hardwareAddress[i]))); + sb.append(String.format("%02X:", hardwareAddress[i])); } if (sb.length() > 0) { sb.deleteCharAt(sb.length() - 1); diff --git a/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java b/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java index 559e0f6f5..e153c2dba 100644 --- a/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java +++ b/app/src/main/java/ru/vtosters/lite/dnr/DNRInjector.java @@ -1,93 +1,232 @@ package ru.vtosters.lite.dnr; +import static com.vk.im.engine.h.im_ic_done; +import static com.vk.im.engine.h.im_ic_edit_msg; +import static com.vk.im.engine.h.im_ic_more_vertical; +import static com.vk.im.engine.h.im_ic_pinned_msg_hide; +import static com.vk.im.engine.h.im_ic_pinned_msg_show; +import static com.vk.im.engine.h.im_ic_write_msg; +import static com.vk.im.ui.c.im_ic_keyboard; import static ru.vtosters.lite.dnr.DNRModule.hookDNR; import static ru.vtosters.lite.dnr.DNRModule.hookDNT; import static ru.vtosters.lite.dnr.DNRModule.isDnrEnabledFor; import static ru.vtosters.lite.dnr.DNRModule.isDntEnabledFor; +import static ru.vtosters.lite.encryption.EncryptProvider.decryptMessage; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.AndroidUtils.sendToast; +import android.annotation.SuppressLint; import android.content.Context; import android.util.Log; import com.vk.core.network.Network; +import com.vk.im.engine.ImEngine1; +import com.vk.im.engine.events.OnDialogUpdateEvent; +import com.vk.im.engine.models.EntityIntMap; +import com.vk.im.engine.models.ProfilesSimpleInfo; import com.vk.im.engine.models.dialogs.Dialog; import com.vk.im.engine.models.messages.Msg; import com.vk.im.engine.models.messages.MsgFromUser; import com.vk.im.ui.components.common.DialogAction; import com.vk.im.ui.components.common.MsgAction; import com.vk.im.ui.components.viewcontrollers.popup.DelegateMsg; +import com.vk.im.ui.views.dialog_actions.DialogActionsListView; import java.io.IOException; +import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import okhttp3.Headers; import okhttp3.OkHttpClient; import okhttp3.Request; +import ru.vtosters.lite.encryption.EncryptProvider; +import ru.vtosters.lite.encryption.base.IMProcessor; +import ru.vtosters.lite.hooks.CryptImHook; import ru.vtosters.lite.ui.dialogs.Translate; +import ru.vtosters.lite.utils.AndroidUtils; public class DNRInjector { public static void inject(Dialog dialog, List list) { - int peerId = dialog.getId(); + int peerId = 0; - list.add(DialogAction.valueOf("pinmsg")); - list.add(DialogAction.valueOf("unpinmsg")); + if (dialog != null) { + peerId = dialog.getId(); + } + + list.add(DialogAction.pinmsg); + list.add(DialogAction.unpinmsg); if (isDnrEnabledFor(peerId)) { - list.add(DialogAction.valueOf("DNR_OFF")); + list.add(DialogAction.DNR_OFF); } else { - list.add(DialogAction.valueOf("DNR_ON")); + list.add(DialogAction.DNR_ON); } if (isDntEnabledFor(peerId)) { - list.add(DialogAction.valueOf("DNT_OFF")); + list.add(DialogAction.DNT_OFF); } else { - list.add(DialogAction.valueOf("DNT_ON")); + list.add(DialogAction.DNT_ON); + } + + list.add(DialogAction.ENCRYPT); + IMProcessor prov = EncryptProvider.getProcessorFor(peerId); + if (prov != null && !prov.isPublic()) { + list.add(DialogAction.ENCRYPT_SETT); } } public static LinkedHashMap injectToHashMap(LinkedHashMap hashMap) { - hashMap.put(DialogAction.valueOf("DNR_ON"), getIdentifier("DNR_ON", "string")); - hashMap.put(DialogAction.valueOf("DNR_OFF"), getIdentifier("DNR_OFF", "string")); - hashMap.put(DialogAction.valueOf("DNT_ON"), getIdentifier("DNT_ON", "string")); - hashMap.put(DialogAction.valueOf("DNT_OFF"), getIdentifier("DNT_OFF", "string")); + hashMap.put(DialogAction.DNR_ON, getIdentifier("DNR_ON", "string")); + hashMap.put(DialogAction.DNR_OFF, getIdentifier("DNR_OFF", "string")); + hashMap.put(DialogAction.DNT_ON, getIdentifier("DNT_ON", "string")); + hashMap.put(DialogAction.DNT_OFF, getIdentifier("DNT_OFF", "string")); + hashMap.put(DialogAction.ENCRYPT, getIdentifier("encryption", "string")); + hashMap.put(DialogAction.ENCRYPT_SETT, getIdentifier("encryption_sett", "string")); - hashMap.put(DialogAction.valueOf("pinmsg"), getIdentifier("pinmsg", "string")); - hashMap.put(DialogAction.valueOf("unpinmsg"), getIdentifier("unpinmsg", "string")); +// hashMap.put(DialogAction.pinmsg, getIdentifier("pinmsg", "string")); +// hashMap.put(DialogAction.unpinmsg, getIdentifier("unpinmsg", "string")); return hashMap; } - public static boolean onClick(Dialog dialog, DialogAction action) { - var id = dialog.getId(); + @SuppressLint("ResourceType") + public static List injectToList(List actions) { + var list = new ArrayList<>(actions); - if (action == DialogAction.valueOf("MARK_AS_READ")) { + list.add(new DialogActionsListView.b.a(DialogAction.DNR_ON, 2, im_ic_pinned_msg_hide, getIdentifier("DNR_ON", "string"))); // DialogAction, Int, Icon, String + list.add(new DialogActionsListView.b.a(DialogAction.DNR_OFF, 2, im_ic_pinned_msg_show, getIdentifier("DNR_OFF", "string"))); // DialogAction, Int, Icon, String + + list.add(new DialogActionsListView.b.a(DialogAction.DNT_ON, 2, im_ic_edit_msg, getIdentifier("DNT_ON", "string"))); // DialogAction, Int, Icon, String + list.add(new DialogActionsListView.b.a(DialogAction.DNT_OFF, 2, im_ic_edit_msg, getIdentifier("DNT_OFF", "string"))); // DialogAction, Int, Icon, String + + list.add(new DialogActionsListView.b.a(DialogAction.ENCRYPT, 3, im_ic_keyboard, getIdentifier("encryption", "string"))); // DialogAction, Int, Icon, String + list.add(new DialogActionsListView.b.a(DialogAction.ENCRYPT_SETT, 3, im_ic_more_vertical, getIdentifier("encryption_sett", "string"))); // DialogAction, Int, Icon, String + + list.add(new DialogActionsListView.b.a(DialogAction.MARK_AS_READ, 4, im_ic_done, getIdentifier("vkim_dialogs_list_option_mark_as_read", "string"))); // DialogAction, Int, Icon, String + + return list; + } + + public static void forceInvalidateDialogActions(Dialog d) { + EntityIntMap map = new EntityIntMap<>(); + map.a(d.getId(), d); + ImEngine1.a().a(new OnDialogUpdateEvent(null, map)); + } + + public static List injectToListAccess(List actions, Dialog dialog) { + int peerId = 0; + + if (dialog != null) { + peerId = dialog.getId(); + } + + if (isDnrEnabledFor(peerId)) { + actions.add(DialogAction.DNR_OFF); + } else { + actions.add(DialogAction.DNR_ON); + } + + if (isDntEnabledFor(peerId)) { + actions.add(DialogAction.DNT_OFF); + } else { + actions.add(DialogAction.DNT_ON); + } + + actions.add(DialogAction.ENCRYPT); + IMProcessor prov = EncryptProvider.getProcessorFor(peerId); + if (prov != null && !prov.isPublic()) { + actions.add(DialogAction.ENCRYPT_SETT); + } + + actions.add(DialogAction.MARK_AS_READ); + return actions; + } + + public static boolean onClickHeader(DialogAction action, Dialog dialog) { + int peerId = 0; + + if (dialog != null) { + peerId = dialog.getId(); + } + + if (action == DialogAction.MARK_AS_READ) { + DNRModule.hookRead(dialog); + forceInvalidateDialogActions(dialog); + } + + if (action == DialogAction.DNR_ON) { + setDnr(dialog, true); + forceInvalidateDialogActions(dialog); + return true; + } else if (action == DialogAction.DNR_OFF) { + setDnr(dialog, false); + forceInvalidateDialogActions(dialog); + return true; + } + + if (action == DialogAction.DNT_ON) { + setDnt(dialog, true); + forceInvalidateDialogActions(dialog); + return true; + } else if (action == DialogAction.DNT_OFF) { + setDnt(dialog, false); + forceInvalidateDialogActions(dialog); + return true; + } + + if (action == DialogAction.ENCRYPT_SETT) { + CryptImHook.hookPref(peerId); + return true; + } else if (action == DialogAction.ENCRYPT) { + CryptImHook.hook(peerId, dialog); + return true; + } + + return false; + } + + public static boolean onClick(Dialog dialog, DialogAction action) { + int peerId = 0; + + if (dialog != null) { + peerId = dialog.getId(); + } + + if (action == DialogAction.MARK_AS_READ) { DNRModule.hookRead(dialog); } - if (action == DialogAction.valueOf("DNR_ON")) { + if (action == DialogAction.DNR_ON) { setDnr(dialog, true); return true; - } else if (action == DialogAction.valueOf("DNR_OFF")) { + } else if (action == DialogAction.DNR_OFF) { setDnr(dialog, false); return true; } - if (action == DialogAction.valueOf("DNT_ON")) { + if (action == DialogAction.DNT_ON) { setDnt(dialog, true); return true; - } else if (action == DialogAction.valueOf("DNT_OFF")) { + } else if (action == DialogAction.DNT_OFF) { setDnt(dialog, false); return true; } - if (action == DialogAction.valueOf("pinmsg")) { - pinnedMsg(id, true); + if (action == DialogAction.pinmsg) { + pinnedMsg(peerId, true); return true; - } else if (action == DialogAction.valueOf("unpinmsg")) { - pinnedMsg(id, false); + } else if (action == DialogAction.unpinmsg) { + pinnedMsg(peerId, false); + return true; + } + + if (action == DialogAction.ENCRYPT_SETT) { + CryptImHook.hookPref(peerId); + return true; + } else if (action == DialogAction.ENCRYPT) { + CryptImHook.hook(peerId, dialog); return true; } @@ -96,26 +235,42 @@ public class DNRInjector { public static LinkedHashMap injectToHashMapMsg(LinkedHashMap hashMap) { hashMap.put(MsgAction.valueOf("TRANSLATE"), new DelegateMsg.a.a(getIdentifier("translator", "string"))); + hashMap.put(MsgAction.valueOf("READTO"), new DelegateMsg.a.a(getIdentifier("readto", "string"))); return hashMap; } public static boolean onClickMsg(Context context, MsgAction action, Msg msg) { var text = ((MsgFromUser) msg).f(); + var peerId = msg.v1(); var fullMsg = ((MsgFromUser) msg).j2(); // text + reply var reply = fullMsg.substring(text.length() + 1); + if (action == MsgAction.valueOf("READTO")) { + DNRModule.hookReadStartMsgTo(msg); + return true; + } + var isTextExist = !text.isEmpty() && !text.equals(" "); var isReplyExist = !reply.isEmpty() && !reply.equals(" "); + + if (isReplyExist) { + reply = decryptMessage(reply, peerId); + } + + if (isTextExist) { + text = decryptMessage(text, peerId); + } + if (action == MsgAction.valueOf("TRANSLATE")) { if (isTextExist && isReplyExist) { - Translate.showTranslatedText(context, text + "\n\nРеплай:\n" + reply); + Translate.showTranslatedText(context, text + "\n\n" + AndroidUtils.getString("translator_reply") + "\n" + reply); } else if (isReplyExist) { - Translate.showTranslatedText(context, "Реплай:\n" + reply); + Translate.showTranslatedText(context, AndroidUtils.getString("translator_reply") + "\n" + reply); } else if (isTextExist) { Translate.showTranslatedText(context, text); } else { - sendToast("Нет текста для перевода"); + sendToast(AndroidUtils.getString("translator_no_text")); } } @@ -143,15 +298,27 @@ public class DNRInjector { thread.start(); - sendToast("Диалог успешно " + (needToBePinned ? "закреплен" : "откреплен")); + sendToast(AndroidUtils.getString("pin_dialog") + " " + (needToBePinned ? AndroidUtils.getString("dialog_pinned") : AndroidUtils.getString("dialog_unpinned"))); } public static void setDnr(Dialog dialog, boolean value) { - hookDNR(dialog.getId()); + int peerId = 0; + + if (dialog != null) { + peerId = dialog.getId(); + } + + hookDNR(peerId); } public static void setDnt(Dialog dialog, boolean value) { - hookDNT(dialog.getId()); + int peerId = 0; + + if (dialog != null) { + peerId = dialog.getId(); + } + + hookDNT(peerId); } } diff --git a/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java b/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java index df4520cf2..3b3564fb1 100644 --- a/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java +++ b/app/src/main/java/ru/vtosters/lite/dnr/DNRModule.java @@ -2,10 +2,13 @@ package ru.vtosters.lite.dnr; import static ru.vtosters.lite.net.Request.makeRequest; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; -import static ru.vtosters.lite.utils.ProxyUtils.getApi; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; + +import android.util.Log; import com.vk.im.engine.commands.messages.SetUserActivityCmd; import com.vk.im.engine.models.dialogs.Dialog; +import com.vk.im.engine.models.messages.Msg; import java.util.List; @@ -54,6 +57,12 @@ public class DNRModule { }); } + public static void hookReadStartMsgTo(Msg dialog) { + Log.d("DNR", "hookReadStartMsgTo: " + dialog.C1() + " " + dialog.v1()); + makeRequest("https://" + getApi() + "/method/messages.markAsRead?start_message_id=" + dialog.C1() + "&peer_id=" + dialog.v1() + "&v=5.119&access_token=" + getUserToken(), response -> { + }); + } + public static void hookDNR(int peerId) { mDoNotReadDBHelper.setEnabledForPeerId(peerId, !mDoNotReadDBHelper.isEnabledForPeerId(peerId)); } diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java index fdf3a7b33..6a0a9e35e 100644 --- a/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java +++ b/app/src/main/java/ru/vtosters/lite/downloaders/AudioDownloader.java @@ -31,11 +31,21 @@ public class AudioDownloader { public static void downloadM3U8(MusicTrack track) { if (track.D == null) { - ToastUtils.a("Не удалось найти ссылку на аудиозапись"); + ToastUtils.a(AndroidUtils.getString("link_audio_error")); return; } var musicPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath(); + var musicDir = new File(musicPath); + if (!musicDir.exists()) { + if (musicDir.mkdirs()) { + Log.d("AudioDownloader", "Created music dir"); + } else { + Log.e("AudioDownloader", "Failed to create music dir"); + return; + } + } + var tempId = track.d; var downloadPath = musicPath + File.separator + tempId; @@ -54,7 +64,7 @@ public class AudioDownloader { var success = FFMpeg.convert(downloadPath, musicPath + File.separator + fileName + ".mp3"); if (success) { notification - .setContentText("Загрузка завершена") + .setContentText(AndroidUtils.getString("player_download_finished")) .setProgress(0, 0, false) .setSmallIcon(android.R.drawable.stat_sys_download_done); notificationManager.notify(tempId, notification.build()); @@ -62,7 +72,7 @@ public class AudioDownloader { onFailure(); } } catch (UnsatisfiedLinkError e) { - Log.e("AudioDownloader", "Опять эти нативные либы"); + Log.e("AudioDownloader", "native libs"); Log.e("AudioDownloader", e.getMessage()); onFailure(); } @@ -70,7 +80,7 @@ public class AudioDownloader { @Override public void onFailure() { - notification.setContentText("Не удалось загрузить аудиозапись").setProgress(0, 0, false); + notification.setContentText(AndroidUtils.getString("load_audio_error")).setProgress(0, 0, false); notificationManager.notify(tempId, notification.build()); } @@ -99,7 +109,7 @@ public class AudioDownloader { private static NotificationCompat.Builder buildDownloadNotification(MusicTrack track, int id) { var notificationBuilder = new NotificationCompat.Builder(AndroidUtils.getGlobalContext(), NotificationChannels.MUSIC_DOWNLOAD_CHANNEL_ID) .setSmallIcon(android.R.drawable.stat_sys_download) - .setContentTitle("Загрузка аудиозаписи") + .setContentTitle(AndroidUtils.getString("audio_downloading")) .setContentText(track.toString()) .setPriority(NotificationCompat.PRIORITY_LOW) .setCategory(NotificationCompat.CATEGORY_PROGRESS) diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/OTADownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/OTADownloader.java index c9a7429d1..94251b4e0 100644 --- a/app/src/main/java/ru/vtosters/lite/downloaders/OTADownloader.java +++ b/app/src/main/java/ru/vtosters/lite/downloaders/OTADownloader.java @@ -11,6 +11,8 @@ import android.content.IntentFilter; import android.net.Uri; import android.os.Environment; +import com.vk.core.dialogs.alert.VkAlertDialog; + import java.io.File; import b.h.g.m.FileUtils; @@ -46,7 +48,7 @@ public class OTADownloader { maxIndex = Math.max(maxIndex, Integer.parseInt(name.replaceFirst(".+-(\\d+).+", "$1"))); } File apk = maxIndex == -1 ? new File(downloadDir, "VTLite.apk") : new File(downloadDir, "VTLite-" + maxIndex + ".apk"); - APKInstallActivity.installOta(context, FileUtils.n(apk)); + APKInstallActivity.installOta(context, FileUtils.uriFromFile(apk)); } else if (status == DownloadManager.STATUS_FAILED) { AndroidUtils.sendToast(getString("downloaderr")); } @@ -56,16 +58,31 @@ public class OTADownloader { public static void downloadBuild(String url) { var context = AndroidUtils.getGlobalContext(); - var uri = Uri.parse(url); + try { + var uri = Uri.parse(url); - context.registerReceiver(callback, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); + context.registerReceiver(callback, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); - var request = new DownloadManager.Request(uri); - request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); - request.setTitle("VTLite.apk"); - request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "VTLite.apk"); + var request = new DownloadManager.Request(uri); + request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); + request.setTitle("VTLite.apk"); + request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "VTLite.apk"); - var manager = (DownloadManager) AndroidUtils.getGlobalContext().getSystemService(Context.DOWNLOAD_SERVICE); - manager.enqueue(request); + var manager = (DownloadManager) AndroidUtils.getGlobalContext().getSystemService(Context.DOWNLOAD_SERVICE); + manager.enqueue(request); + } catch (Exception e) { + e.printStackTrace(); + VkAlertDialog.Builder alertDialog = new VkAlertDialog.Builder(context); + alertDialog.setTitle(AndroidUtils.getString("update_error")); + alertDialog.setMessage(AndroidUtils.getString("update_error_text")); + alertDialog.setPositiveButton(AndroidUtils.getString("no"), (dialog, which) -> { + dialog.cancel(); + }); + alertDialog.setNeutralButton(AndroidUtils.getString("yes"), (dialog, which) -> { + context.startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://github.com/vtosters/lite/releases/latest/download/VTLite.apk"))); + }); + var alert = alertDialog.create(); + alert.show(); + } } } diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java index 31003a267..a764711f3 100644 --- a/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java +++ b/app/src/main/java/ru/vtosters/lite/downloaders/StoryDownloader.java @@ -2,6 +2,7 @@ package ru.vtosters.lite.downloaders; import static ru.vtosters.lite.downloaders.VideoDownloader.downloadVideo; import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; +import static ru.vtosters.lite.utils.Preferences.getPhotosDir; import android.app.DownloadManager; import android.content.Context; @@ -23,7 +24,7 @@ public class StoryDownloader { 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"); + request.setDestinationInExternalPublicDir(getPhotosDir().getAbsolutePath(), "/Stories/photo" + story.E.a + ".jpg"); ((DownloadManager) getGlobalContext().getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request); return; } diff --git a/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java b/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java index f486cfdaa..95261b079 100644 --- a/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java +++ b/app/src/main/java/ru/vtosters/lite/downloaders/VideoDownloader.java @@ -5,6 +5,7 @@ import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.AndroidUtils.getString; +import static ru.vtosters.lite.utils.Preferences.getVideosDir; import android.app.AlertDialog; import android.app.DownloadManager; @@ -27,6 +28,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.ExternalLinkParser; public class VideoDownloader { @@ -104,7 +106,7 @@ public class VideoDownloader { DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setTitle(videoFile.toString()); - request.setDestinationInExternalPublicDir(Environment.DIRECTORY_MOVIES, videoFile + ".mp4"); + request.setDestinationInExternalPublicDir(getVideosDir().getAbsolutePath(), videoFile + ".mp4"); ((DownloadManager) getGlobalContext().getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request); return; } @@ -115,7 +117,7 @@ public class VideoDownloader { DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setTitle(videoFile.toString()); - request.setDestinationInExternalPublicDir(Environment.DIRECTORY_MOVIES, videoFile + ".mp4"); + request.setDestinationInExternalPublicDir(getVideosDir().getAbsolutePath(), videoFile + ".mp4"); ((DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request); })); builder.show(); @@ -123,12 +125,12 @@ public class VideoDownloader { public static void parseVideoLink(String url, Context ctx) { if (url.contains("vk.com/story")) { - ToastUtils.a("Не поддерживается загрузка историй"); + ToastUtils.a(AndroidUtils.getString("video_dl_stories_not_supported")); return; } if (!url.contains("vk.com/video")) { - ToastUtils.a("Неверная ссылка"); + ToastUtils.a(AndroidUtils.getString("video_dl_wrong_link")); return; } @@ -136,7 +138,7 @@ public class VideoDownloader { String ownerId = videoId.split("_")[0]; final ProgressDialog progressDialog = new ProgressDialog(ctx); - progressDialog.setMessage("Обработка видео"); + progressDialog.setMessage(AndroidUtils.getString("video_dl_progress")); progressDialog.show(); makeRequest("https://" + "api.vk.com" + "/method/video.get?owner_id=" + ownerId + "&videos=" + videoId + "&v=5.99&access_token=" + getUserToken(), @@ -152,7 +154,7 @@ public class VideoDownloader { downloadVideo(videoFile, ctx); } catch (JSONException e) { e.printStackTrace(); - Toast.makeText(ctx, "Видео нельзя скачать", Toast.LENGTH_SHORT).show(); + Toast.makeText(ctx, AndroidUtils.getString("video_dl_error"), Toast.LENGTH_SHORT).show(); } }); } diff --git a/app/src/main/java/ru/vtosters/lite/encryption/EncryptProvider.java b/app/src/main/java/ru/vtosters/lite/encryption/EncryptProvider.java index 87164f77c..642b2925e 100644 --- a/app/src/main/java/ru/vtosters/lite/encryption/EncryptProvider.java +++ b/app/src/main/java/ru/vtosters/lite/encryption/EncryptProvider.java @@ -1,10 +1,14 @@ package ru.vtosters.lite.encryption; +import static ru.vtosters.lite.hooks.MessagesHook.injectOwnText; +import static ru.vtosters.lite.hooks.MessagesHook.injectOwnTextAll; + import android.util.Log; import android.util.Pair; import com.vk.im.engine.models.messages.Msg; import com.vk.im.engine.models.messages.MsgFromUser; +import com.vk.im.ui.components.msg_list.MsgListComponent; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -48,6 +52,48 @@ public class EncryptProvider { public static int getPeerId(Msg msg) { return msg.v1(); } + + // For message editing + public static String decryptMessage(MsgFromUser msg, boolean showEmoji) { + var decryptedMessage = decryptMessage(getBody(msg), getPeerId(msg)); + if (!showEmoji && !decryptedMessage.equals(injectOwnTextAll(getBody(msg)))) decryptedMessage = decryptedMessage.replaceAll("^\uD83D\uDD12 ", ""); + return decryptedMessage; + } + + public static String decryptMessage(String msg, MsgListComponent list) { + var peerid = list.G().getId(); + var decryptedMessage = decryptMessage(msg, peerid); + if (!decryptedMessage.equals(injectOwnTextAll(msg))) decryptedMessage = decryptedMessage.replaceAll("^\uD83D\uDD12 ", ""); + return decryptedMessage; + } + + public static CharSequence decryptMessage(CharSequence msg, int peerid) { + return decryptMessage(msg.toString(), peerid); + } + + public static CharSequence decryptMessage(Msg msg, CharSequence orig) { + if (msg instanceof MsgFromUser) { + var decrypted = decryptMessage(((MsgFromUser) msg).f(), msg.v1()); + + if (decrypted.contains("\uD83D\uDD12")) { + return decrypted; + } + + } + + return orig; + } + + public static String decryptMessages(String msgBody, int peer, boolean showEmoji) { + return (String) decryptMessage(msgBody, peer, showEmoji); + } + + // For MentionsFormatter that requires CharSequence + public static CharSequence decryptMessage(String msgBody, int peer, boolean showEmoji) { + var decryptedMessage = decryptMessage(msgBody, peer); + if (!showEmoji && !decryptedMessage.equals(injectOwnTextAll(msgBody))) decryptedMessage = decryptedMessage.replaceAll("^\uD83D\uDD12 ", ""); + return decryptedMessage; + } // This will run through EVERY single processor available. public static String decryptMessage(MsgFromUser msg) { @@ -58,12 +104,13 @@ public class EncryptProvider { try { for (IMProcessor processor : processors) { if ((processor.isUsed() || !processor.isPublic()) && processor.isEncrypted(msgBody) && (processor.isPublic() || getKeyForProcessor(processor, peer) != null)) - return "\uD83D\uDD12 " + processor.decode(msgBody, getKeyForProcessor(processor, peer)); + return "\uD83D\uDD12 " + injectOwnTextAll(processor.decode(msgBody, getKeyForProcessor(processor, peer))); } } catch (Exception e) { e.printStackTrace(); } - return msgBody; + + return injectOwnTextAll(msgBody); } private static byte[] getKeyForProcessor(IMProcessor processor, int peer) { @@ -84,9 +131,8 @@ public class EncryptProvider { return keyString.getBytes(); } - // This will use only the processor which was chosen in chat menu [that's why ID is needed, bruh] + // This will use only the processor which was chosen in chat menu public static String encryptMessage(MsgFromUser msg) { - String msgBody = getBody(msg); Log.d("EncryptProvider", "encryptMessage: msg = " + msg); @@ -96,11 +142,11 @@ public class EncryptProvider { for (IMProcessor processor : processors) { int peer = getPeerId(msg); if (processor.isUsedToEncrypt(peer)) { - return processor.encode(msgBody, getKeyForProcessor(processor, peer)); + return injectOwnText(processor.encode(msgBody, getKeyForProcessor(processor, peer))); } } - return msgBody; + return injectOwnText(msgBody); } // For rendering UI diff --git a/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java b/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java index e5304d6f4..b2c856715 100644 --- a/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java +++ b/app/src/main/java/ru/vtosters/lite/foaf/FoafBase.java @@ -2,11 +2,13 @@ package ru.vtosters.lite.foaf; import static android.widget.Toast.LENGTH_SHORT; import static android.widget.Toast.makeText; +import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.AndroidUtils.getString; -import static ru.vtosters.lite.utils.ProxyUtils.apiproxy; -import static ru.vtosters.lite.utils.ProxyUtils.getApi; +import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; +import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.Context; import android.util.Log; @@ -16,11 +18,15 @@ import androidx.exifinterface.media.ExifInterface; import com.vk.core.dialogs.alert.VkAlertDialog; import com.vk.core.network.Network; +import org.json.JSONException; +import org.json.JSONObject; + import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; +import java.util.Objects; import java.util.TimeZone; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; @@ -29,11 +35,13 @@ import java.util.regex.Pattern; import okhttp3.Headers; import okhttp3.OkHttpClient; import ru.vtosters.lite.net.Request; +import ru.vtosters.lite.utils.AccountManagerUtils; public class FoafBase { private static final Pattern FOAF_REGEX = Pattern.compile(""); private static final Pattern FOAF_REGEX_LAST_SEEN = Pattern.compile(""); private static final Pattern FOAF_REGEX_LOGIN = Pattern.compile(""); + private static final String API_VKNEXT = "https://api.vknext.net/v1/getBypassedOnlineInfo?json=1&ids="; private static final OkHttpClient client = new OkHttpClient(); public static long getLastSeen(long origtime, int id) throws ParseException, IOException { @@ -57,15 +65,57 @@ public class FoafBase { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US); sdf.setTimeZone(TimeZone.getTimeZone("Europe/Moscow")); - Date date = sdf.parse(matcher.group(1)); + Date date = sdf.parse(Objects.requireNonNull(matcher.group(1))); sdf.setTimeZone(TimeZone.getDefault()); return sdf.parse(sdf.format(date)).getTime() / 1000; } + + public static JSONObject getBypassedOnlineInfo(int id) throws JSONException { + var request = new okhttp3.Request.a() + .b(API_VKNEXT + Integer.toString(id)) + .a(); + + String response = null; + + var dummy = new JSONObject(); + dummy.put("last_seen", 0); + + try { + response = client.a(request).execute().a().g(); + var online_info = new JSONObject(response).optJSONObject("response").optJSONObject(Integer.toString(id)); + return online_info == null ? dummy : online_info; + } catch (Exception e) { + Log.e("GetBypassedOnlineInfo", e.getMessage()); + return dummy; + } + } + + public static JSONObject getBypassedOnlineInfo(String ids) throws JSONException { + + + var request = new okhttp3.Request.a() + .b(API_VKNEXT + ids) + .a(); + + String response = null; + + var dummy = new JSONObject(); + + try { + response = client.a(request).execute().a().g(); + var online_info = new JSONObject(response).optJSONObject("response"); + return online_info == null ? dummy : online_info; + } catch (Exception e) { + Log.e("GetBypassedOnlineInfo1", e.getMessage()); + return dummy; + } + } + private static String getLink(int i) { String str; StringBuilder sb; - if (apiproxy()) { + if (isApiProxyEnabled()) { sb = new StringBuilder(); str = "https://" + getApi() + "/_/vk.com/foaf.php?id="; } else { @@ -94,18 +144,19 @@ public class FoafBase { Matcher matcher2 = FOAF_REGEX_LOGIN.matcher(str); matcher.find(); matcher2.find(); - String normalHumanDate = getNormalHumanDate(matcher.group(1)); - getNormalHumanDate(matcher2.group(1)); + String normalHumanDate = getNormalHumanDate(Objects.requireNonNull(matcher.group(1))); + getNormalHumanDate(Objects.requireNonNull(matcher2.group(1))); VkAlertDialog.Builder a2 = new VkAlertDialog.Builder(context).setTitle(getIdentifier("addinf", "string")); a2.setMessage(getString("foafid") + " " + i + getString("foafregdate") + " " + normalHumanDate + getString("foafdate") + " " + daysPassedFromFoafDate(normalHumanDate)).setPositiveButton(17039370, null).create().show(); } catch (Exception e) { e.printStackTrace(); - makeText(context, getString("foaferr"), LENGTH_SHORT).show(); + makeText(getGlobalContext(), getString("foaferr"), LENGTH_SHORT).show(); } } - private static long daysPassedFromFoafDate(String str) { + private static long daysPassedFromFoafDate(String str) { try { + @SuppressLint("SimpleDateFormat") Date parse = new SimpleDateFormat("yyyy-MM-dd").parse(str.split(" ")[1]); return TimeUnit.DAYS.convert(new Date().getTime() - parse.getTime(), TimeUnit.MILLISECONDS); } catch (ParseException e) { diff --git a/app/src/main/java/ru/vtosters/lite/hooks/CryptImHook.java b/app/src/main/java/ru/vtosters/lite/hooks/CryptImHook.java new file mode 100644 index 000000000..e6a9f0f8b --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/hooks/CryptImHook.java @@ -0,0 +1,129 @@ +package ru.vtosters.lite.hooks; +import static ru.vtosters.lite.dnr.DNRInjector.forceInvalidateDialogActions; +import static ru.vtosters.lite.utils.AndroidUtils.dp2px; +import static ru.vtosters.lite.utils.AndroidUtils.getString; +import static ru.vtosters.lite.utils.AndroidUtils.sendToast; +import static ru.vtosters.lite.utils.LifecycleUtils.getCurrentActivity; +import static ru.vtosters.lite.utils.ThemesUtils.getAlertStyle; +import static ru.vtosters.lite.utils.ThemesUtils.getSTextAttr; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.text.Editable; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.LinearLayout; + +import androidx.appcompat.app.AlertDialog; + +import com.vk.core.dialogs.alert.VkAlertDialog; +import com.vk.im.engine.models.dialogs.Dialog; + +import java.util.List; +import java.util.Objects; + +import ru.vtosters.lite.encryption.EncryptProvider; +import ru.vtosters.lite.encryption.base.IMProcessor; + +public class CryptImHook{ + public static boolean isPrivateProcessor(int peerID){ + for (IMProcessor processor : EncryptProvider.processors) { + if (processor.isUsedToEncrypt(peerID)) { + return !processor.isPublic(); + } + } + + return false; + } + + public static void hook(int peerId, Dialog d){ + List processors = EncryptProvider.processors; + + IMProcessor enabled = null; + int enabledPosition = 0; + + String[] titles = new String[processors.size() + 1]; + titles[0] = getString("encryption_disable"); + + for (int i = 0; i < processors.size(); i++) { + IMProcessor proc = processors.get(i); + + titles[i + 1] = proc.getUIName(); + + if (proc.isUsedToEncrypt(peerId)) { + enabled = proc; + enabledPosition = i + 1; + } + } + + IMProcessor finalEnabled = enabled; + new VkAlertDialog.Builder(getCurrentActivity()) + .setTitle(getString("encryption_sett")) + .setSingleChoiceItems(titles, enabledPosition, (dialog, which) -> { + if (which == 0) { + if (finalEnabled != null) finalEnabled.disableEncryptFor(peerId); + } else { + IMProcessor proc = processors.get(which - 1); + + if (proc.isUsedToEncrypt(peerId)) { + proc.disableEncryptFor(peerId); + } else { + proc.enableEncryptFor(peerId); + if (finalEnabled != null) finalEnabled.disableEncryptFor(peerId); + } + } + + dialog.dismiss(); + forceInvalidateDialogActions(d); + }).create().show(); + } + + public static void hookPref(int peerId){ + IMProcessor enabled = null; + String key = null; + + for (IMProcessor processor : EncryptProvider.processors) { + if (processor.isUsedToEncrypt(peerId)) { + enabled = processor; + } + } + + if (enabled != null && enabled.isPublic()) { + sendToast(getString("encryption_public_algorithm_error")); + return; + } + + if (Objects.requireNonNull(enabled).getEncryptionKeyFor(peerId) != null) { + key = enabled.getEncryptionKeyFor(peerId); + } + + if (key.equals("VTAesDefault")) { + key = null; + } + + Context ctx = getCurrentActivity(); + + LinearLayout linearLayout = new LinearLayout(ctx); + + final EditText editText = new EditText(ctx); + editText.setHintTextColor(getSTextAttr()); + editText.setBackgroundTintList(ColorStateList.valueOf(getSTextAttr())); + + linearLayout.addView(editText); + editText.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; + ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) editText.getLayoutParams()); + margin.setMargins(dp2px(24f), 0, dp2px(24f), 0); + editText.setLayoutParams(margin); + editText.setText(key == null ? "" : key); + + IMProcessor finalEnabled = enabled; + new AlertDialog.Builder(ctx, getAlertStyle()) + .setTitle(getString("encryption_enter_key")) + .setMessage(String.format(getString("encryption_current_algorithm_title"), enabled.getUIName())) + .setView(linearLayout) + .setPositiveButton(android.R.string.ok, (dialog, which) -> { + Editable edit = editText.getText(); + finalEnabled.setEncryptionKeyFor(peerId, edit == null ? null : edit.toString()); + }).setNegativeButton(android.R.string.cancel, null).create().show(); + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/hooks/DeviceInfoHook.java b/app/src/main/java/ru/vtosters/lite/hooks/DeviceInfoHook.java index 6505c7716..0e781bc94 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/DeviceInfoHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/DeviceInfoHook.java @@ -1,6 +1,12 @@ package ru.vtosters.lite.hooks; +import static ru.vtosters.lite.utils.AndroidUtils.MD5; +import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; import static ru.vtosters.lite.utils.Preferences.getBoolValue; +import android.annotation.SuppressLint; +import android.content.Context; +import android.os.Build; +import android.provider.Settings; import android.util.Log; import java.util.Random; @@ -13,27 +19,30 @@ public class DeviceInfoHook{ } public static String getDeviceId(String input) { - Log.d("DeviceInfoHook", "getDeviceId: " + input); - Log.d("DeviceInfoHook", "getDeviceId shuffled: " + shuffle(input)); - if (getBoolValue("hideDeviceInfo", true)) return shuffle(input); - return input; + return findDeviceId() + ":" + getDeviceId(); } - public static String shuffle(String string) { - StringBuilder sb = new StringBuilder(string.length()); - double rnd; - for (char c: string.toCharArray()) { - rnd = Math.random(); - if (rnd < 0.34) - sb.append(c); - else if (rnd < 0.67) - sb.insert(sb.length() / 2, c); - else - sb.insert(0, c); + public static String getDeviceId() { + String sb2 = Build.PRODUCT + + Build.BOARD + + Build.BOOTLOADER + + Build.BRAND + + Build.DEVICE + + Build.DISPLAY + + Build.FINGERPRINT + + Build.HARDWARE + + Build.HOST + + Build.ID + + Build.MANUFACTURER + + Build.MODEL + + Build.PRODUCT + + Build.TAGS; - sb.append(new Random().nextInt(10)); - sb.deleteCharAt(0); - } - return sb.toString(); + return MD5(sb2); + } + + @SuppressLint("HardwareIds") + private static String findDeviceId() { + return Settings.Secure.getString(getGlobalContext().getContentResolver(), "android_id"); } } diff --git a/app/src/main/java/ru/vtosters/lite/hooks/DockBarInjector.java b/app/src/main/java/ru/vtosters/lite/hooks/DockBarInjector.java index 7ec1f5531..31a956c9e 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/DockBarInjector.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/DockBarInjector.java @@ -35,6 +35,7 @@ import com.vk.core.fragments.FragmentImpl; import com.vk.core.util.StringUtils; import com.vk.navigation.right.RightMenu; import com.vtosters.lite.MenuCountersState; +import com.vtosters.lite.fragments.ProfileFragment; import com.vtosters.lite.ui.bottomnavigation.BottomNavigationMenuView; import com.vtosters.lite.ui.bottomnavigation.BottomNavigationView; @@ -286,7 +287,7 @@ public class DockBarInjector { } public static Class interceptClick(int id, RightMenu rightMenu) { - if (id == tab_menu) { + if (id == tab_menu && rightMenu != null) { rightMenu.a(); } @@ -294,6 +295,7 @@ public class DockBarInjector { if (id == tab.id) return tab.fragmentClass; } + for (DockBarTab tab : sManager.getDisabledTabs()) { if (id == tab.id) return tab.fragmentClass; 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 32be6ce49..f66fbd808 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/JsonInjectors.java @@ -1,7 +1,10 @@ package ru.vtosters.lite.hooks; import static ru.vtosters.lite.foaf.FoafBase.getLastSeen; +import static ru.vtosters.lite.foaf.FoafBase.getBypassedOnlineInfo; +import static ru.vtosters.lite.hooks.OnlineFormatterHook.onlineHookProfiles; import static ru.vtosters.lite.hooks.DateHook.getLocale; +import static ru.vtosters.lite.utils.AndroidUtils.getDefaultPrefs; import static ru.vtosters.lite.utils.Base64Utils.decode; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.checkCaption; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.checkCopyright; @@ -21,6 +24,7 @@ import static ru.vtosters.lite.utils.VTVerifications.isDeveloper; import static ru.vtosters.lite.utils.VTVerifications.isPrometheus; import static ru.vtosters.lite.utils.VTVerifications.isVerified; +import android.text.TextUtils; import android.util.Log; import com.vk.core.network.Network; @@ -33,6 +37,8 @@ import org.json.JSONObject; import java.io.IOException; import java.text.ParseException; +import java.util.Collections; +import java.util.LinkedHashSet; import java.util.Objects; import java.util.Random; @@ -69,7 +75,7 @@ public class JsonInjectors { } public static JSONObject donateRecomm() throws JSONException { - var title = "Помоги проекту донатом и получи бонус!"; + var title = AndroidUtils.getString("donate_to_vtl"); var link = "https://vk.com/vtosters_official"; var text_color = "2D81E0"; @@ -110,7 +116,7 @@ public class JsonInjectors { } public static JSONObject vktesters(int id) throws JSONException { - var title = "Карточка Тестера"; + var title = AndroidUtils.getString("tester_profile"); var text_color = "2D81E0"; var link = "https://static.vk.com/bugs?lang=" + LangUtils.a() + "#/reporter" + id; @@ -154,7 +160,7 @@ public class JsonInjectors { var peerid = Objects.requireNonNull(orig.optJSONObject("peer")).optInt("id"); var pic = "https://image.pngaaa.com/641/326641-middle.png"; // can be null - var text = "Я не загрузил данные (9(9(("; + var text = AndroidUtils.getString("no_data_error"); var link = "https://vtosters.app"; // can be null var linktitle = "Test button"; // can be null @@ -171,9 +177,9 @@ public class JsonInjectors { if (!hasIcon) icon = ""; if (!hasButton) buttons = ""; - if (isVerified(peerid)) text = "Я купил VTosters Premium"; - if (isPrometheus(peerid)) text = "Я купил VTosters Premium Gold Prime Pro Plus"; - if (isDeveloper(peerid)) text = "Я создал говно"; + if (isVerified(peerid)) text = AndroidUtils.getString("i_bought") + " VTosters Premium"; + if (isPrometheus(peerid)) text = AndroidUtils.getString("i_bought") + " VTosters Premium Gold Prime Pro Plus"; + if (isDeveloper(peerid)) text = AndroidUtils.getString("i_created_poop"); if (!isVerified(peerid) || text.equals("")) { if (getBoolValue("convBarRecomm", false)) { return null; @@ -267,29 +273,82 @@ public class JsonInjectors { public static JSONObject setOnlineInfo(JSONObject json) throws ParseException, IOException, JSONException { var id = json.optInt("id"); + if (id == AccountManagerUtils.getUserId()) { + return json; + } var onlineinfo = json.optJSONObject("online_info"); - var time = getLastSeen(0L, id); + if (onlineinfo != null && !onlineinfo.optBoolean("visible")) { + var bypassed = getBypassedOnlineInfo(id); + if (bypassed.optInt("last_seen", 0) != 0) { + json.remove("online_info"); - if (time != 0L && onlineinfo != null && !onlineinfo.optBoolean("is_online") && id != AccountManagerUtils.getUserId()) { - json.remove("online_info"); + var online_info = new JSONObject() + .put("visible", true) + .put("last_seen", bypassed.optInt("last_seen")) + .put("is_online", bypassed.optBoolean("is_online")) + .put("app_id", bypassed.optInt("app_id")) + .put("is_mobile", bypassed.optBoolean("is_mobile")); - var online_info = new JSONObject() - .put("visible", true) - .put("last_seen", time) - .put("is_online", false) - .put("app_id", 0) - .put("is_mobile", false); + var last_seen = new JSONObject() + .put("platform", bypassed.optInt("platform")) + .put("time", bypassed.optInt("last_seen")); - var last_seen = new JSONObject() - .put("platform", 4) - .put("time", time); - - json.put("last_seen", last_seen).put("online_info", online_info); + json.put("last_seen", last_seen).put("online_info", online_info); + } } return json; } + public static JSONArray setOnlineInfoUsers(JSONArray profiles) throws ParseException, IOException, JSONException { + if (profiles == null || profiles.length() == 0) return profiles; + StringBuilder sb = new StringBuilder(); + var curVkId = AccountManagerUtils.getUserId(); + for (int i=0; i < profiles.length(); i++) { + JSONObject profile = profiles.getJSONObject(i); + int id = profile.optInt("id", -1); + JSONObject onlinfo = profile.optJSONObject("online_info"); + if (id == curVkId || id < 0 || onlinfo == null || onlinfo.optBoolean("visible")) { + continue; + } + sb.append(id); + sb.append(","); + } + var ids = sb.toString(); + if (ids.length() > 0) { + ids = ids.substring(0, ids.length() - 1); + } else { + return profiles; + } + + JSONObject bypassedObj = getBypassedOnlineInfo(ids); + for (int i=0; i < profiles.length(); i++) { + JSONObject profile = profiles.getJSONObject(i); + int id = profile.optInt("id"); + JSONObject bypassed = bypassedObj.optJSONObject(Integer.toString(id)); + if (bypassed == null) { + continue; + } + profile.remove("online_info"); + + var online_info = new JSONObject() + .put("visible", true) + .put("last_seen", bypassed.optInt("last_seen")) + .put("is_online", bypassed.optBoolean("is_online")) + .put("app_id", bypassed.optInt("app_id")) + .put("is_mobile", bypassed.optBoolean("is_mobile")); + + var last_seen = new JSONObject() + .put("platform", bypassed.optInt("platform")) + .put("time", bypassed.optInt("last_seen")); + + profile.put("last_seen", last_seen).put("online_info", online_info); + } + + return profiles; + } + + public static JSONObject storiesads(JSONObject json, boolean isDeleteFix) throws JSONException { if (!adsstories()) { return json; @@ -371,14 +430,37 @@ public class JsonInjectors { } public static JSONArray newsfeedlist(JSONArray items) throws JSONException { - for (int j = 0; j < items.length(); j++) { - var list = items.optJSONObject(j); - var name = list.optString("id"); + var selectedItems = getDefaultPrefs().getString("news_feed_selected_items", ""); + var filtersSet = getDefaultPrefs().getStringSet("news_feed_items_set", null); + var mutableFiltersSet = Collections.synchronizedSet(new LinkedHashSet()); + if (filtersSet != null) + mutableFiltersSet.addAll(filtersSet); - if (!name.equals("kpop") && !name.equals("foryou") && !name.equals("qazaqstan")) { - list.put("is_hidden", false).put("is_unavailable", false); - if (dev()) Log.d("NewsfeedListInj", "Unlocked " + name + " in newsfeed list"); + synchronized (mutableFiltersSet) { + for (int i = 0; i < items.length(); i++) { + var item = items.optJSONObject(i); + if (item == null) continue; + + var id = item.optString("id"); + var title = item.optString("title"); + + if (TextUtils.isEmpty(id) || TextUtils.isEmpty(title) + // this items not working + || id.equals("kpop") || id.equals("foryou") + || id.equals("qazaqstan") || id.equals("podcasts")) + continue; + + mutableFiltersSet.add(id + "|" + title); + + var hide = selectedItems.contains(id); + + Log.d("NewsfeedList", "Added list " + id + " to feed"); + item.put("is_hidden", hide) + .put("is_unavailable", hide); + if (dev()) Log.d("NewsfeedListInj", "Unlocked " + id + " in newsfeed list"); } + getDefaultPrefs().edit().putStringSet("news_feed_items_set", mutableFiltersSet) + .apply(); } return items; @@ -527,7 +609,7 @@ public class JsonInjectors { Log.d("VKMusic", "title: " + title + " id: " + id + " url: " + url + " value: " + value); - if (url.contains(value)) { + if (url.contains(value) && !value.isEmpty()) { catalog.put("default_section", id); if (dev()) Log.d("VKMusic", "Added " + title + " as default music section"); } @@ -585,8 +667,8 @@ public class JsonInjectors { return null; } - public static JSONObject friends(JSONObject json) throws JSONException { - JSONObject catalog = json; + public static JSONObject friends(JSONObject json) throws JSONException, ParseException, IOException { + JSONObject catalog = onlineHookProfiles(json); boolean sectionexecute = true; boolean hasBirthday = false; diff --git a/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java b/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java index 5a3b4d82d..802494156 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/MainActivityInjector.java @@ -2,6 +2,7 @@ package ru.vtosters.lite.hooks; import static ru.vtosters.lite.ui.dialogs.ServerDialog.sendRequest; import static ru.vtosters.lite.utils.CacheUtils.getInstance; +import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList; import static ru.vtosters.lite.utils.Preferences.checkupdates; import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme; import static ru.vtosters.lite.utils.ThemesUtils.setNeededTheme; @@ -24,6 +25,7 @@ public class MainActivityInjector { ServerDialog.activity = activity; sendRequest(); if (checkupdates()) OTADialog.checkUpdates(activity); + reloadMessagesList(); Start.alert(activity); InstallGMS.alert(activity); DisableBattery.alert(activity); diff --git a/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java b/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java index dfb273fd2..59eb29a4a 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/MessagesHook.java @@ -5,7 +5,6 @@ import static ru.vtosters.lite.ui.dialogs.MessageSettings.bombCount; import static ru.vtosters.lite.ui.dialogs.MessageSettings.isSilentEnabled; import static ru.vtosters.lite.utils.Preferences.autoalltranslate; import static ru.vtosters.lite.utils.Preferences.autotranslate; -import static ru.vtosters.lite.utils.Preferences.getBoolValue; import static ru.vtosters.lite.utils.Preferences.savemsgsett; import android.text.TextUtils; @@ -15,18 +14,56 @@ import com.vk.api.internal.MethodCall; import ru.vtosters.lite.translators.BaseTranslator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.ArrayList; + public class MessagesHook { public static String injectOwnText(String oldText) { if (!autotranslate() || TextUtils.isEmpty(oldText)) return oldText; - return BaseTranslator.getInstance().getTranslation(oldText); + var instance = BaseTranslator.getInstance(); + + return replaceMentions(oldText, instance); } public static String injectOwnTextAll(String oldText) { if (!autoalltranslate() || TextUtils.isEmpty(oldText)) { return oldText; } - return BaseTranslator.getInstance().getTranslation(oldText); + var instance = BaseTranslator.getInstance(); + + return replaceMentions(oldText, instance); + } + + public static String replaceMentions(String oldText, BaseTranslator instance) { + try { + var matcher = Pattern.compile("(\\[(?:club|id|public)\\d+\\|[^]]+\\])|(@[^\\s]+)").matcher(oldText); + var mentionsCount = 0; + + var textBuff = new StringBuffer(); + var mentions = new ArrayList(); + while (matcher.find()) { + mentions.add(matcher.group()); + matcher.appendReplacement(textBuff, "vtl_mention" + mentionsCount + ""); ++mentionsCount; + } + matcher.appendTail(textBuff); + + var translatedText = instance.getTranslation(textBuff.toString()); + var matcherMentions = Pattern.compile("vtl_mention(\\d+)").matcher(translatedText); + var retTextBuff = new StringBuffer(); + while (matcherMentions.find()) { + matcherMentions.appendReplacement(retTextBuff, mentions.get( + Integer.parseInt(matcherMentions.group(1)) + )); + } + matcherMentions.appendTail(retTextBuff); + + return retTextBuff.toString(); + } catch(Exception e) { + e.printStackTrace(); + return instance.getTranslation(oldText); + } } public static void onLongClick(View view) { diff --git a/app/src/main/java/ru/vtosters/lite/hooks/NewsfeedHook.java b/app/src/main/java/ru/vtosters/lite/hooks/NewsfeedHook.java index af8826f74..323bd21af 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/NewsfeedHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/NewsfeedHook.java @@ -14,6 +14,10 @@ import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.isMusicBlock; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.isNewsBlock; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.isPostRecommendations; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.isRecomsGroup; +import static ru.vtosters.lite.utils.Preferences.ads; +import static ru.vtosters.lite.utils.Preferences.adsslider; +import static ru.vtosters.lite.utils.Preferences.authorsrecomm; +import static ru.vtosters.lite.utils.Preferences.friendsrecomm; import static ru.vtosters.lite.utils.Preferences.getBoolValue; import static ru.vtosters.lite.utils.Preferences.vkme; @@ -23,6 +27,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; public class NewsfeedHook { @@ -73,4 +78,42 @@ public class NewsfeedHook { } return list; } + + public static String[] feedParams(){ + HashSet params = new HashSet<>(); + params.add("post"); + params.add("photo"); + params.add("photo_tag"); + + if (!friendsrecomm()) { + params.add("friends_recomm"); + } + + if (!ads()) { + params.add("app_widget"); + params.add("promo_button"); + } + + if (!authorsrecomm()) { + params.add("authors_rec"); + } + + return params.toArray(new String[0]); + } + + public static void adsParams(HashSet hashSet) { + if (ads() || adsslider()) { + hashSet.add("ads_disabled"); + return; + } + + hashSet.add("ads_app"); + hashSet.add("ads_site"); + hashSet.add("ads_post"); + hashSet.add("ads_app_slider"); + hashSet.add("ads_site_slider"); + hashSet.add("ads_app_video"); + hashSet.add("ads_post_pretty_cards"); + hashSet.add("ads_post_snippet_video"); + } } diff --git a/app/src/main/java/ru/vtosters/lite/hooks/OnlineFormatterHook.java b/app/src/main/java/ru/vtosters/lite/hooks/OnlineFormatterHook.java index bc21e390e..b651de25f 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/OnlineFormatterHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/OnlineFormatterHook.java @@ -1,6 +1,7 @@ package ru.vtosters.lite.hooks; import static ru.vtosters.lite.hooks.JsonInjectors.setOnlineInfo; +import static ru.vtosters.lite.hooks.JsonInjectors.setOnlineInfoUsers; import static ru.vtosters.lite.net.Request.makeRequest; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.getString; @@ -8,7 +9,9 @@ import static ru.vtosters.lite.utils.AndroidUtils.sendToast; import static ru.vtosters.lite.utils.Preferences.dev; import static ru.vtosters.lite.utils.Preferences.getBoolValue; import static ru.vtosters.lite.utils.Preferences.getPrefsFromFile; -import static ru.vtosters.lite.utils.ProxyUtils.getApi; +import static ru.vtosters.lite.proxy.ProxyUtils.getApi; + +import android.util.Log; import org.json.JSONArray; import org.json.JSONException; @@ -17,6 +20,8 @@ import org.json.JSONObject; import java.io.IOException; import java.text.ParseException; +import ru.vtosters.lite.utils.AndroidUtils; + public class OnlineFormatterHook { private static String AppName; @@ -59,37 +64,37 @@ public class OnlineFormatterHook { case 5027722: return "VK Messenger (Desktop)"; case 6146827: - return "VK Мессенджер (Android)"; + return AndroidUtils.getString("vk_messenger") + " (Android)"; // VK Мессенджер (Android) case 6482950: - return "VK Мессенджер (iPhone)"; + return AndroidUtils.getString("vk_messenger") + " (iPhone)"; // VK Мессенджер (iPhone) case 6481715: - return "VK Мессенджер Dev (iPhone)"; + return AndroidUtils.getString("vk_messenger") + " Dev (iPhone)"; // VK Мессенджер Dev (iPhone) case 7799655: - return "VK Почта"; + return AndroidUtils.getString("vk_mail_online"); // VK Почта case 7598572: - return "Сферум (Android)"; + return AndroidUtils.getString("sferum_online") + " (Android)"; // Сферум (Android) case 7571751: - return "Сферум (iPhone)"; + return AndroidUtils.getString("sferum_online") + " (iPhone)"; // Сферум (iPhone) case 7556576: - return "Сферум"; + return AndroidUtils.getString("sferum_online"); // Сферум case 7497650: return "VK ID"; case 8094476: - return "VK Звонки (Android)"; + return AndroidUtils.getString("vk_calls_online") + " (Android)"; // VK Звонки (Android) case 8093730: - return "VK Звонки (iPhone)"; + return AndroidUtils.getString("vk_calls_online") + " (iPhone)"; // VK Звонки (iPhone) case 7793118: - return "VK Звонки (Desktop)"; + return AndroidUtils.getString("vk_calls_online") + " (Desktop)"; // VK Звонки (Desktop) case 6767438: - return "VK Музыка (Android)"; + return AndroidUtils.getString("vk_music_online") + " (Android)"; // VK Музыка (Android) case 8113297: - return "VK Клипы (Android)"; + return AndroidUtils.getString("vk_clips_online") + " (Android)"; // VK Клипы (Android) case 8106428: - return "VK Клипы (iPhone)"; + return AndroidUtils.getString("vk_clips_online") + " (iPhone)"; // VK Клипы (iPhone) case 5044491: return "Candy"; case 8114066: - return "VK Видео"; + return AndroidUtils.getString("vk_video_online"); // VK Видео case 4894723: return "Phoenix Lite"; case 4994316: @@ -165,14 +170,66 @@ public class OnlineFormatterHook { return getString("custom_online") + " " + appname; } - public static JSONObject onlineHook(JSONObject json, boolean isGlobalHook) throws ParseException, IOException, JSONException { - if (!getBoolValue("onlinefix", false)) return json; + public static JSONObject onlineHook(JSONObject json) throws ParseException, IOException, JSONException { + if (getBoolValue("onlinefix", false)) setOnlineInfo(json); - if (isGlobalHook && !getBoolValue("globalUsersOnline", false)) { - return json; + return json; + } + + public static JSONArray onlineHookList(JSONArray jsonArr) throws ParseException, IOException, JSONException { + if (!getBoolValue("onlinefix", false)) return jsonArr; + + try { + setOnlineInfoUsers(jsonArr); + } catch (Exception e) { + Log.e("onlineHookProfiles", e.getMessage()); } - setOnlineInfo(json); + return jsonArr; + } + + public static JSONObject onlineHookProfiles(JSONObject json) throws ParseException, IOException, JSONException { + if (!getBoolValue("onlinefix", false)) return json; + + try { + setOnlineInfoUsers(json.optJSONArray("profiles")); + } catch (Exception e) { + Log.e("onlineHookProfiles", e.getMessage()); + } + return json; + } + + public static JSONObject onlineHookItems(JSONObject json) throws ParseException, IOException, JSONException { + if (!getBoolValue("onlinefix", false)) return json; + + try { + setOnlineInfoUsers(json.optJSONArray("items")); + } catch (Exception e) { + Log.e("onlineHookItems", e.getMessage()); + } + return json; + } + + public static JSONObject onlineHookRequestsAndRecommendations(JSONObject json) throws ParseException, IOException, JSONException { + if (!getBoolValue("onlinefix", false)) return json; + + try { + setOnlineInfoUsers(json.optJSONObject("read_requests").optJSONArray("items")); + } catch (Exception e) { + Log.e("onlineHookItems", e.getMessage()); + } + + try { + setOnlineInfoUsers(json.optJSONObject("recommendations").optJSONArray("items")); + } catch (Exception e) { + Log.e("onlineHookItems", e.getMessage()); + } + + try { + setOnlineInfoUsers(json.optJSONArray("profiles")); + } catch (Exception e) { + Log.e("onlineHookItems", e.getMessage()); + } return json; } } diff --git a/app/src/main/java/ru/vtosters/lite/hooks/PhotoViewer.java b/app/src/main/java/ru/vtosters/lite/hooks/PhotoViewer.java index 27907394b..483f4e136 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/PhotoViewer.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/PhotoViewer.java @@ -1,5 +1,6 @@ package ru.vtosters.lite.hooks; +import static ru.vtosters.lite.utils.AndroidUtils.getString; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; @@ -15,10 +16,15 @@ import android.view.MenuItem; import android.view.View; import android.widget.Toast; +import androidx.annotation.Nullable; + import com.vk.core.dialogs.actionspopup.ActionsPopup; import com.vk.core.drawable.RecoloredDrawable; +import com.vk.core.util.ToastUtils; import com.vk.dto.common.AttachmentWithMedia; +import com.vk.dto.common.ImageSize; import com.vtosters.lite.R; +import com.vtosters.lite.attachments.DocumentAttachment; import com.vtosters.lite.attachments.PhotoAttachment; import org.json.JSONException; @@ -26,6 +32,7 @@ import org.json.JSONObject; import java.io.IOException; import java.net.URLEncoder; +import java.util.List; import okhttp3.Call; import okhttp3.Callback; @@ -36,18 +43,17 @@ import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.ThemesUtils; public class PhotoViewer { - static OkHttpClient client = new OkHttpClient(); public static boolean interceptClick(AttachmentWithMedia attachment, MenuItem item, View view) { if (item.getItemId() == AndroidUtils.getIdentifier("search_photo", "id")) { - searchPhoto(getUrlFromAttachment((PhotoAttachment) attachment)); + searchPhoto(getUrlFromPhotoAttachment((PhotoAttachment) attachment)); return true; } else if (item.getItemId() == AndroidUtils.getIdentifier("copy_photo_url", "id")) { - copyPhotoUrl(getUrlFromAttachment((PhotoAttachment) attachment)); + copyPhotoUrl(getUrlFromPhotoAttachment((PhotoAttachment) attachment)); return true; } else if (item.getItemId() == AndroidUtils.getIdentifier("open_original_photo", "id")) { - openUrl(getUrlFromAttachment((PhotoAttachment) attachment)); + openUrl(getUrlFromPhotoAttachment((PhotoAttachment) attachment)); return true; } return true; @@ -61,7 +67,7 @@ public class PhotoViewer { : new RecoloredDrawable(AndroidUtils.getGlobalContext().getDrawable(R.drawable.ic_menu_search_outline_28), ThemesUtils.getAccentColor()), false, () -> { - searchPhoto(getUrlFromAttachment((PhotoAttachment) attachment)); + searchPhoto(getUrlFromPhotoAttachment((PhotoAttachment) attachment)); return null; } ); @@ -71,7 +77,7 @@ public class PhotoViewer { : new RecoloredDrawable(AndroidUtils.getGlobalContext().getDrawable(R.drawable.ic_copy_outline_28), Color.WHITE), false, () -> { - copyPhotoUrl(getUrlFromAttachment((PhotoAttachment) attachment)); + copyPhotoUrl(getUrlFromPhotoAttachment((PhotoAttachment) attachment)); return null; } ); @@ -82,14 +88,32 @@ public class PhotoViewer { ThemesUtils.getAccentColor()), false, () -> { - openUrl(getUrlFromAttachment((PhotoAttachment) attachment)); + if (attachment instanceof PhotoAttachment) { + openUrl(getUrlFromPhotoAttachment((PhotoAttachment) attachment)); + } else if (attachment instanceof DocumentAttachment) { + var documentAttachment = (DocumentAttachment) attachment; + if (documentAttachment.J != null) + openUrl(getUrlFromDocumentAttachment(documentAttachment)); + else + ToastUtils.a(getString("photo_get_error")); + } return null; } ); } - private static String getUrlFromAttachment(PhotoAttachment attachment) { + private static String getUrlFromDocumentAttachment(DocumentAttachment attachment) { + var imageSizes = attachment.J.t1(); + return getUrlFromImageSizeList(imageSizes); + } + + private static String getUrlFromPhotoAttachment(PhotoAttachment attachment) { var imageSizes = attachment.D.Q.t1(); + return getUrlFromImageSizeList(imageSizes); + } + + @Nullable + private static String getUrlFromImageSizeList(List imageSizes) { if (imageSizes.isEmpty()) return null; var max = imageSizes.get(0); diff --git a/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java b/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java new file mode 100644 index 000000000..7da6258d7 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java @@ -0,0 +1,82 @@ +package ru.vtosters.lite.hooks; +import static ru.vtosters.lite.utils.Preferences.preferences; + +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.Shader; + +import com.facebook.drawee.generic.RoundingParams; + +import ru.vtosters.lite.utils.AndroidUtils; + +public class PicRoundingHook{ + private static final int pref = preferences.getInt("pic_rounding", 0); + + public static RoundingParams inject() { + if (pref > 0) { + return customParams(); + } else { + return new RoundingParams().a(true); + } + } + + public static RoundingParams inject(float orig) { + if (pref > 0) { + return customParams(); + } else { + return new RoundingParams().b(orig); + } + } + + public static RoundingParams inject(float orig, float orig2, float orig3, float orig4) { + if (pref > 0) { + return new RoundingParams().a(AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref)); + } else { + return new RoundingParams().a(orig, orig2, orig3, orig4); + } + } + + public static void inject(float orig, Canvas canvas, Paint paint){ + if (pref > 0) { + canvas.drawRoundRect(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), paint); + } else { + canvas.drawCircle(orig, orig, orig, paint); + } + } + + public static void inject(Canvas canvas, Paint paint, float orig){ + if (pref > 0) { + canvas.drawRoundRect(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), paint); + } else { + canvas.drawCircle(canvas.getClipBounds().exactCenterX(), canvas.getClipBounds().exactCenterY(), orig, paint); + } + } + + public static void inject(Canvas canvas, float orig, float orig2, float orig3, Paint paint){ + if (pref > 0) { + canvas.drawRoundRect(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), paint); + } else { + canvas.drawCircle(orig, orig2, orig3, paint); + } + } + + public static void inject(Bitmap bitmap, Bitmap bitmap2, Paint b2) { + Shader.TileMode tileMode = Shader.TileMode.CLAMP; + b2.setShader(new BitmapShader(bitmap2, tileMode, tileMode)); + Canvas canvas = new Canvas(bitmap); + float width = bitmap2.getWidth() / 2; + + if (pref > 0) { + canvas.drawRoundRect(0, 0, bitmap.getWidth(), bitmap.getHeight(), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), b2); + } else { + canvas.drawCircle(width, width, width, b2); + } + } + + private static RoundingParams customParams(){ + return RoundingParams.b(AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref)); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/hooks/PostViewHook.java b/app/src/main/java/ru/vtosters/lite/hooks/PostViewHook.java new file mode 100644 index 000000000..50b4d722b --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/hooks/PostViewHook.java @@ -0,0 +1,67 @@ +package ru.vtosters.lite.hooks; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; + +import androidx.recyclerview.widget.RecyclerView; + +import com.vk.newsfeed.holders.BaseFooterHolder; +import com.vtosters.lite.R; + +import ru.vtosters.lite.utils.Preferences; + +public class PostViewHook { + + /** + * For displaying child elements with custom direction in rtl container we should remove their, set layout direction and add again */ + private static void saveChildDirectionForRlt(ViewGroup container) { + var children = new View[container.getChildCount()]; + for (int i = 0; i < container.getChildCount(); i++) { + var child = container.getChildAt(i); + child.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); + children[i] = child; + } + container.removeAllViews(); + for (View child : children) { + container.addView(child); + } + container.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); + } + + // res/layout/likes_panel.xml + public static void injectBaseFooterHolder(BaseFooterHolder baseFooterHolder) { + if (!Preferences.isLikesOnRightEnabled()) + return; + try { + var container = (ViewGroup) ((RecyclerView.ViewHolder) baseFooterHolder).itemView; + saveChildDirectionForRlt((ViewGroup) container.getChildAt(1)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // res/layout/photo_viewer_bottom.xml + public static void injectPhotoViewer(View container) { + if (!Preferences.isLikesOnRightEnabled()) + return; + try { + var bottomPanel = (ViewGroup) container.findViewById(R.id.photo_viewer_bottom_panel); + saveChildDirectionForRlt(bottomPanel); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // res/layout/video_bottom_view.xml + public static void injectVideoView(RelativeLayout container) { + if (!Preferences.isLikesOnRightEnabled()) + return; + try { + var bottomBar = (ViewGroup) container.findViewById(R.id.bottom_bar); + saveChildDirectionForRlt(bottomBar); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/ru/vtosters/lite/hooks/ProxyHook.java b/app/src/main/java/ru/vtosters/lite/hooks/ProxyHook.java index c9fa1c689..ebbf99c51 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/ProxyHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/ProxyHook.java @@ -2,10 +2,9 @@ package ru.vtosters.lite.hooks; import static ru.vtosters.lite.utils.AndroidUtils.dp2px; import static ru.vtosters.lite.utils.AndroidUtils.edit; -import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; import static ru.vtosters.lite.utils.LifecycleUtils.restartApplication; -import static ru.vtosters.lite.utils.ProxyUtils.apiproxy; -import static ru.vtosters.lite.utils.ProxyUtils.isZaboronaEnabled; +import static ru.vtosters.lite.proxy.ProxyUtils.isRandomProxyEnabled; +import static ru.vtosters.lite.proxy.ProxyUtils.isZaboronaEnabled; import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; import static ru.vtosters.lite.utils.ThemesUtils.getAlertStyle; import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; @@ -14,7 +13,6 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.util.Log; import android.util.TypedValue; import android.view.View; import android.widget.RadioButton; @@ -27,11 +25,12 @@ import com.vk.auth.ui.VkAuthTextView; import com.vk.navigation.Navigator; import ru.vtosters.lite.ui.fragments.ProxySettingsFragment; +import ru.vtosters.lite.utils.AndroidUtils; public class ProxyHook { public static void hookAuth(View v) { VkAuthTextView button = (VkAuthTextView) v; - button.setText("Настроить прокси"); + button.setText(AndroidUtils.getString("proxy_setup")); button.setOnClickListener(v1 -> callProxyDialog(v1.getContext())); } @@ -40,44 +39,50 @@ public class ProxyHook { RadioGroup rg = new RadioGroup(ctx); RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); - RadioButton rgProxy = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); + RadioButton rgZaborona = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); + RadioButton rgRandomProxy = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); rg.addView(rgDefault); - rg.addView(rgProxy); + rg.addView(rgZaborona); + rg.addView(rgRandomProxy); rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); - rgProxy.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); + rgZaborona.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); + rgRandomProxy.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); rg.setPadding(dp2px(18f), dp2px(12f), dp2px(18f), 0); - rgDefault.setText("Отключить"); + rgDefault.setText(AndroidUtils.getString("proxy_disable")); rgDefault.setTextColor(getTextAttr()); - rgProxy.setText("Включить (Zaborona)"); - rgProxy.setTextColor(getTextAttr()); + rgZaborona.setText(AndroidUtils.getString("proxy_enable") + " (Zaborona)"); + rgZaborona.setTextColor(getTextAttr()); - rgProxy.setChecked(isZaboronaEnabled()); + rgRandomProxy.setText(AndroidUtils.getString("proxy_enable") + " (RandomProxy)"); + rgRandomProxy.setTextColor(getTextAttr()); + + rgZaborona.setChecked(isZaboronaEnabled()); rgDefault.setChecked(!isZaboronaEnabled()); + rgRandomProxy.setChecked(isRandomProxyEnabled()); AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle()); - builder.setTitle("Прокси"); - builder.setMessage("Zaborona никак не связана с ВТостерс и мы не можем гарантировать её работу и безопасность"); + builder.setTitle(AndroidUtils.getString("vtlproxy")); + builder.setMessage(AndroidUtils.getString("proxy_warning")); builder.setView(rg); - builder.setPositiveButton("Применить", ((dialog, which) -> { - if (rgProxy.isChecked()) { + builder.setPositiveButton(AndroidUtils.getString("vtl_confirm"), ((dialog, which) -> { // Применить + if (rgZaborona.isChecked()) { edit().putString("proxy", "zaborona").commit(); restartApplication(); + } else if (rgRandomProxy.isChecked()) { + edit().putString("proxy", "randomproxy").commit(); + restartApplication(); } else { - if (isZaboronaEnabled()) { - edit().putString("proxy", "noproxy").commit(); - restartApplication(); - } - edit().putString("proxy", "noproxy").commit(); + restartApplication(); } })); - builder.setNeutralButton("Настройки прокси", ((dialog, which) -> { + builder.setNeutralButton(AndroidUtils.getString("proxy_settings"), ((dialog, which) -> { Intent a2 = new Navigator(ProxySettingsFragment.class).b(ctx); a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ctx.startActivity(a2); @@ -90,47 +95,4 @@ public class ProxyHook { alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); alert.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(getAccentColor()); } - - public static String linkReplacer(String link) { - var vkapi = "api.vk.com"; - var oauth = "oauth.vk.com"; - var vkstatic = "static.vk.com"; - - var proxyapi = getPrefsValue("proxyapi"); - var proxyoauth = getPrefsValue("proxyoauth"); - var proxystatic = getPrefsValue("proxystatic"); - - if (!apiproxy() || link.isEmpty()) { - return link; - } - - if (proxyapi.isEmpty() || proxyoauth.isEmpty() || proxystatic.isEmpty()) { - Log.d("VTLite", "Proxy is not set" + " " + proxyapi + " " + proxyoauth + " " + proxystatic); - return link; - } - - if (link.contains(vkapi)) { - return link.replace(proxyapi, vkapi); - } - - if (link.contains(oauth)) { - return link.replace(proxyoauth, oauth); - } - - if (link.contains(vkstatic)) { - return link.replace(proxystatic, vkstatic); - } - - return link; - } - - public static String getAwayPhpCom() { - var proxyapi = getPrefsValue("proxyapi"); - - if (apiproxy() & !proxyapi.isEmpty()) { - return proxyapi; - } - - return "m.vk.com"; - } } diff --git a/app/src/main/java/ru/vtosters/lite/hooks/RequestDumper.java b/app/src/main/java/ru/vtosters/lite/hooks/RequestDumper.java new file mode 100644 index 000000000..f61c28249 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/hooks/RequestDumper.java @@ -0,0 +1,26 @@ +package ru.vtosters.lite.hooks; +import static ru.vtosters.lite.utils.Preferences.dev; + +import android.util.Log; + +import com.vk.api.internal.MethodCall; + +import java.util.LinkedHashMap; + +public class RequestDumper{ + public static void addParams(MethodCall.a paramslist, String method, LinkedHashMap params, String apiver) { + if (method.contains("execute.getGiftByStickerId") ) { + apiver = "5.187"; + } + + if (dev()) { + Log.d("RequestDumper", "Method: " + method); + Log.d("RequestDumper", "API version: " + apiver); + Log.d("RequestDumper", "Params: " + params); + } + + paramslist.a(method); + paramslist.a(params); + paramslist.b(apiver); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java b/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java index 513b5375a..27b2865b4 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/VKUIHook.java @@ -5,8 +5,10 @@ import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; import static ru.vtosters.lite.utils.Preferences.getBoolValue; import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; +import static ru.vtosters.lite.utils.ThemesUtils.getAttrId; import static ru.vtosters.lite.utils.ThemesUtils.getBackgroundContent; import static ru.vtosters.lite.utils.ThemesUtils.getBackgroundPage; +import static ru.vtosters.lite.utils.ThemesUtils.getColorFromAttr; import static ru.vtosters.lite.utils.ThemesUtils.getHeaderBackground; import static ru.vtosters.lite.utils.ThemesUtils.getHeaderText; import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; @@ -59,8 +61,13 @@ public class VKUIHook { .replace("%header_text%", hex(getHeaderText())) .replace("%accent%", hex(getAccentColor())) .replace("%background_page%", hex(getBackgroundPage())) + .replace("%content_tint_background%", hex(getColorFromAttr(getAttrId("content_tint_background")))) + .replace("%button_primary_background%", hex(getColorFromAttr(getAttrId("button_primary_background")))) + .replace("%button_outline_foreground%", hex(getColorFromAttr(getAttrId("button_outline_foreground")))) + .replace("%button_outline_border%", hex(getColorFromAttr(getAttrId("button_outline_border")))) .replace("%text_primary%", hex(getTextAttr())); + loadedCSSAmoled = load("vt_ui_oled.css"); isLoaded = true; } diff --git a/app/src/main/java/ru/vtosters/lite/hooks/WritebarReplyHook.java b/app/src/main/java/ru/vtosters/lite/hooks/WritebarReplyHook.java new file mode 100644 index 000000000..081d2fdd6 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/hooks/WritebarReplyHook.java @@ -0,0 +1,14 @@ +package ru.vtosters.lite.hooks; + +import static ru.vtosters.lite.encryption.EncryptProvider.decryptMessage; + +import com.vk.im.engine.models.ProfilesSimpleInfo; +import com.vk.im.engine.models.messages.MsgFromUser; +import com.vk.im.ui.views.ReplyView; + +public class WritebarReplyHook { + public static void injectWithDecrypt(ReplyView replyView, MsgFromUser msgFromUser, ProfilesSimpleInfo profilesSimpleInfo) { + msgFromUser.d(decryptMessage(msgFromUser)); // set new value of text in MsgFromUser class + replyView.a(msgFromUser, profilesSimpleInfo, msgFromUser.H1()); + } +} 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 fc5c96522..40a5a56b0 100644 --- a/app/src/main/java/ru/vtosters/lite/music/FFMpeg.java +++ b/app/src/main/java/ru/vtosters/lite/music/FFMpeg.java @@ -41,7 +41,7 @@ public class FFMpeg { private static void checkFFMpegLibs() { var lib = new File(AndroidUtils.getGlobalContext().getFilesDir(), "libffmpegkit_abidetect.so"); if (!lib.exists()) { - ToastUtils.a("Копирование библиотеки ffmpegkit"); + ToastUtils.a(AndroidUtils.getString("ffmpegkit_copy")); copyAssets(); } } diff --git a/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java b/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java index 5c56575b9..fc9b94711 100644 --- a/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java +++ b/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java @@ -24,6 +24,7 @@ import ru.vtosters.lite.net.NetCallback; import ru.vtosters.lite.net.NetClient; import ru.vtosters.lite.net.NetRequest; import ru.vtosters.lite.net.NetResponse; +import ru.vtosters.lite.utils.AndroidUtils; public class Scrobbler { private static final String key = "5965d63402414776c54c266db0211746"; @@ -103,7 +104,7 @@ public class Scrobbler { public static void auth(String login, String pass) { if (login == null || pass == null) { - sendToast("Логин или пароль не заданы"); + sendToast(AndroidUtils.getString("lastfm_credentials_empty")); return; } @@ -119,7 +120,7 @@ public class Scrobbler { @Override public void onFailure(NetCall call, IOException e) { Log.d("Scrobbler", "Auth failed", e); - sendToast("Ошибка входа"); + sendToast(AndroidUtils.getString("lastfm_auth_error")); } @Override @@ -155,7 +156,7 @@ public class Scrobbler { edit().remove("username").apply(); edit().remove("sessionKey").apply(); scrobbled.clear(); - sendToast("Вы успешно вышли из учетной записи"); + sendToast(AndroidUtils.getString("lastfm_logout_success")); } public static boolean needToBeScrobble(String uid) { diff --git a/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java b/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java new file mode 100644 index 000000000..57cc7c68b --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/GithubList.java @@ -0,0 +1,30 @@ +package ru.vtosters.lite.proxy; +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; + +import okhttp3.OkHttpClient; +import okhttp3.Request; + +public class GithubList{ + private static final OkHttpClient mClient = new OkHttpClient(); + + public static ArrayList getProxy(String url, String proxyname) throws IOException{ + Request link = new Request.a() + .b(url) + .a(); + + var response = mClient.a(link).execute().a().g(); + + if (!response.contains(":")) { + Log.d(proxyname, "No proxy found"); + return null; + } + + Log.d(proxyname, response); + + return new ArrayList<>(Arrays.asList(response.split("\n"))); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java b/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java new file mode 100644 index 000000000..90530f2fd --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java @@ -0,0 +1,131 @@ +package ru.vtosters.lite.proxy; + +import static java.lang.System.clearProperty; +import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; +import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.util.ArrayMap; +import android.util.Log; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +import ru.vtosters.lite.proxy.http.CustomHttp; +import ru.vtosters.lite.proxy.https.CustomHttps; +import ru.vtosters.lite.proxy.socks.CustomSocks; +import ru.vtosters.lite.proxy.socks.Zaborona; + +public class ProxyUtils{ + public static String getApi(){ + var proxyapi = getPrefsValue("proxyapi"); + + if (isApiProxyEnabled() & !proxyapi.isEmpty()) { + return proxyapi; + } + + return "api.vk.com"; + } + + public static Boolean isZaboronaEnabled(){ + return getPrefsValue("proxy").equals("zaborona"); + } + + public static Boolean isRandomProxyEnabled(){ + return getPrefsValue("proxy").equals("randomproxy"); + } + + public static Boolean isApiProxyEnabled(){ + return getPrefsValue("proxy").equals("apiproxy"); + } + + public static Boolean isVikaProxyEnabled(){ + return getPrefsValue("proxy").equals("vika"); + } + + public static void forceProxyApplying(){ + Log.d("Proxy", "Setting proxy..."); + try { + var context = getGlobalContext().getApplicationContext(); + Class applicationClass = Class.forName("android.app.Application"); + @SuppressLint("DiscouragedPrivateApi") @SuppressWarnings("JavaReflectionMemberAccess") + Field mLoadedApkField = applicationClass.getDeclaredField("mLoadedApk"); + mLoadedApkField.setAccessible(true); + Object mLoadedApkObject = mLoadedApkField.get(context); + + @SuppressLint("PrivateApi") + Class loadedApkClass = Class.forName("android.app.LoadedApk"); + @SuppressLint("DiscouragedPrivateApi") Field mReceiversField = loadedApkClass.getDeclaredField("mReceivers"); + mReceiversField.setAccessible(true); + ArrayMap receivers = (ArrayMap) mReceiversField.get(mLoadedApkObject); + if (receivers != null) { + for (Object receiverMap : receivers.values()) { + for (Object receiver : ((ArrayMap) receiverMap).keySet()) { + Class receiverClass = receiver.getClass(); + + if (receiverClass.getName().contains("ProxyChangeListener")) { + Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class); + Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION); + onReceiveMethod.invoke(receiver, context, intent); + } else { + for (Field field : receiverClass.getDeclaredFields()) { + if (field.getType().getName().contains("ProxyChangeListener")) { + Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class); + Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION); + onReceiveMethod.invoke(receiver, context, intent); + } + } + } + } + } + } + + Log.d("Proxy", "Setting proxy successful!"); + } catch (Exception e) { + Log.d("Proxy", "Setting proxy failed!"); + } + } + + public static boolean hasProxy(String list){ + return list.contains(":"); // proxy format: ip:port + } + + public static void setProxy() throws IOException{ + switch(getPrefsValue("proxy")) { + case "zaborona": + Zaborona.loadProxy(); + break; + case "randomproxy": + RandomProxy.loadProxy(); + break; + case "socks": + CustomSocks.loadProxy(); + break; + case "http": + CustomHttp.loadProxy(); + break; + case "https": + CustomHttps.loadProxy(); + break; + default: + resetProxy(); + break; + } + } + + public static void resetProxy(){ + clearProperty("https.proxyHost"); + clearProperty("https.proxyPort"); + clearProperty("https.proxyUser"); + clearProperty("https.proxyPassword"); + clearProperty("http.proxyHost"); + clearProperty("http.proxyPort"); + clearProperty("http.proxyUser"); + clearProperty("http.proxyPassword"); + clearProperty("socksProxyHost"); + clearProperty("socksPortHost"); + } // Reset all proxies +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java b/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java new file mode 100644 index 000000000..ac5d25d1f --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java @@ -0,0 +1,84 @@ +package ru.vtosters.lite.proxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.resetProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; +import static ru.vtosters.lite.utils.AndroidUtils.sendToast; +import static ru.vtosters.lite.utils.Preferences.preferences; + +import java.io.IOException; + +import ru.vtosters.lite.proxy.socks.Hookzof; +import ru.vtosters.lite.proxy.socks.Jetkai; +import ru.vtosters.lite.proxy.socks.Roosterkid; +import ru.vtosters.lite.proxy.socks.TheSpeedX; + +public class RandomProxy{ + public static String type = preferences.getString("random_type", "none"); + public static String host = preferences.getString("random_host", ""); + public static boolean showProxyResult = false; + + public static void loadProxy() throws IOException{ + if (host.isEmpty()) { + getProxy(); + loadProxy(); + return; + } + + switch(type) { + case "socks": + System.setProperty("socksProxyHost", host.split(":")[0]); + System.setProperty("socksProxyPort", host.split(":")[1]); + break; + case "http": + System.setProperty("http.proxyHost", host.split(":")[0]); + System.setProperty("http.proxyPort", host.split(":")[1]); + break; + case "https": + System.setProperty("https.proxyHost", host.split(":")[0]); + System.setProperty("https.proxyPort", host.split(":")[1]); + break; + } + } + + public static void setupNewProxy() throws IOException{ + edit().putString("random_type", "none").putString("random_host", "").commit(); + + resetProxy(); + forceProxyApplying(); + + showProxyResult = true; + getProxy(); + edit().putString("proxy", "randomproxy").commit(); + } + + public static void getProxy() throws IOException{ + var random = new java.util.Random(); + var randomInt = random.nextInt(7); + switch(randomInt) { + case 0: + Hookzof.loadProxy(); + break; + case 1: + TheSpeedX.loadProxy(); + break; + case 2: + Jetkai.loadProxy(); + break; + case 3: + Roosterkid.loadProxy(); + break; + case 4: + ru.vtosters.lite.proxy.http.Jetkai.loadProxy(); + break; + case 5: + ru.vtosters.lite.proxy.http.TheSpeedX.loadProxy(); + break; + case 6: + ru.vtosters.lite.proxy.https.Jetkai.loadProxy(); + break; + case 7: + ru.vtosters.lite.proxy.https.Roosterkid.loadProxy(); + break; + } + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/api/ApiProxy.java b/app/src/main/java/ru/vtosters/lite/proxy/api/ApiProxy.java new file mode 100644 index 000000000..afba81a7a --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/api/ApiProxy.java @@ -0,0 +1,57 @@ +package ru.vtosters.lite.proxy.api; +import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled; +import static ru.vtosters.lite.proxy.ProxyUtils.isVikaProxyEnabled; +import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; + +import android.util.Log; + +public class ApiProxy{ + public static String linkReplacer(String link){ + var vkapi = "api.vk.com"; + var oauth = "oauth.vk.com"; + var vkstatic = "static.vk.com"; + + var proxyapi = getPrefsValue("proxyapi"); + var proxyoauth = getPrefsValue("proxyoauth"); + var proxystatic = getPrefsValue("proxystatic"); + + if (isVikaProxyEnabled()) { + proxyapi = VikaMobile.getApiHost(); + proxyoauth = VikaMobile.getOauthHost(); + proxystatic = VikaMobile.getStaticHost(); + } + + if (!isApiProxyEnabled() || link.isEmpty()) { + return link; + } + + if (proxyapi.isEmpty() || proxyoauth.isEmpty() || proxystatic.isEmpty()) { + Log.d("VTLite", "Proxy is not set" + " " + proxyapi + " " + proxyoauth + " " + proxystatic); + return link; + } + + if (link.contains(vkapi)) { + return link.replace(proxyapi, vkapi); + } + + if (link.contains(oauth)) { + return link.replace(proxyoauth, oauth); + } + + if (link.contains(vkstatic)) { + return link.replace(proxystatic, vkstatic); + } + + return link; + } + + public static String getAwayPhpCom(){ + var proxyapi = getPrefsValue("proxyapi"); + + if (isApiProxyEnabled() & !proxyapi.isEmpty()) { + return proxyapi; + } + + return "m.vk.com"; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/api/VikaMobile.java b/app/src/main/java/ru/vtosters/lite/proxy/api/VikaMobile.java new file mode 100644 index 000000000..8ac24ff57 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/api/VikaMobile.java @@ -0,0 +1,20 @@ +package ru.vtosters.lite.proxy.api; +import static ru.vtosters.lite.utils.Preferences.getBoolValue; + +public class VikaMobile{ + public static String getApiHost(){ + return isAlternativeHost() ? "vk-api-proxy.vikamobile.ru" : "vk-api-proxy.symbian.live"; + } + + public static String getOauthHost(){ + return isAlternativeHost() ? "vk-oauth-proxy.vikamobile.ru" : "vk-oauth-proxy.symbian.live"; + } + + public static String getStaticHost(){ + return isAlternativeHost() ? "vk-static-proxy.vikamobile.ru" : "vk-static-proxy.symbian.live"; + } + + public static Boolean isAlternativeHost(){ + return getBoolValue("altervika", false); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/http/CustomHttp.java b/app/src/main/java/ru/vtosters/lite/proxy/http/CustomHttp.java new file mode 100644 index 000000000..e91aca3d5 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/http/CustomHttp.java @@ -0,0 +1,33 @@ +package ru.vtosters.lite.proxy.http; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; + +public class CustomHttp{ + public static void loadProxy(){ + System.setProperty("http.proxyHost", proxyHostHTTP()); + System.setProperty("http.proxyPort", proxyPortHTTP()); + System.setProperty("http.proxyUser", proxyUserHTTP()); + System.setProperty("http.proxyPassword", proxyPassHTTP()); + forceProxyApplying(); + } + + private static String proxyHostHTTP(){ + var string = getPrefsValue("proxyHostHTTP"); + return string.isEmpty() ? "192.168.0.1" : string; + } + + private static String proxyPortHTTP(){ + var string = getPrefsValue("proxyPortHTTP"); + return string.isEmpty() ? "8888" : string; + } + + private static String proxyUserHTTP(){ + var string = getPrefsValue("proxyUserHTTP"); + return string.isEmpty() ? "" : string; + } + + private static String proxyPassHTTP(){ + var string = getPrefsValue("proxyPassHTTP"); + return string.isEmpty() ? "" : string; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java b/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java new file mode 100644 index 000000000..3fc7f3670 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java @@ -0,0 +1,47 @@ +package ru.vtosters.lite.proxy.http; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class Jetkai{ + private static final String TAG = "Jetkai_Http"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "http").putString("random_host", proxy).commit(); + + System.setProperty("http.proxyHost", proxy.split(":")[0]); + System.setProperty("http.proxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java b/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java new file mode 100644 index 000000000..5db322317 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java @@ -0,0 +1,46 @@ +package ru.vtosters.lite.proxy.http; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class TheSpeedX{ + private static final String TAG = "TheSpeedX_Http"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "http").putString("random_host", proxy).commit(); + + System.setProperty("http.proxyHost", proxy.split(":")[0]); + System.setProperty("http.proxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/https/CustomHttps.java b/app/src/main/java/ru/vtosters/lite/proxy/https/CustomHttps.java new file mode 100644 index 000000000..86cc68fab --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/https/CustomHttps.java @@ -0,0 +1,33 @@ +package ru.vtosters.lite.proxy.https; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; + +public class CustomHttps{ + public static void loadProxy(){ + System.setProperty("https.proxyHost", proxyHostHTTPS()); + System.setProperty("https.proxyPort", proxyPortHTTPS()); + System.setProperty("https.proxyUser", proxyUserHTTPS()); + System.setProperty("https.proxyPassword", proxyPassHTTPS()); + forceProxyApplying(); + } + + private static String proxyHostHTTPS(){ + var string = getPrefsValue("proxyHostHTTPS"); + return string.isEmpty() ? "192.168.0.1" : string; + } + + private static String proxyPortHTTPS(){ + var string = getPrefsValue("proxyPortHTTPS"); + return string.isEmpty() ? "8888" : string; + } + + private static String proxyUserHTTPS(){ + var string = getPrefsValue("proxyUserHTTPS"); + return string.isEmpty() ? "" : string; + } + + private static String proxyPassHTTPS(){ + String string = getPrefsValue("proxyPassHTTPS"); + return string.isEmpty() ? "" : string; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java b/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java new file mode 100644 index 000000000..ee777b665 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java @@ -0,0 +1,46 @@ +package ru.vtosters.lite.proxy.https; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class Jetkai{ + private static final String TAG = "Jetkai_Https"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "https").putString("random_host", proxy).commit(); + + System.setProperty("https.proxyHost", proxy.split(":")[0]); + System.setProperty("https.proxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java b/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java new file mode 100644 index 000000000..face17a39 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java @@ -0,0 +1,47 @@ +package ru.vtosters.lite.proxy.https; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class Roosterkid{ + private static final String TAG = "Roosterkid_Https"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "https").putString("random_host", proxy).commit(); + + System.setProperty("https.proxyHost", proxy.split(":")[0]); + System.setProperty("https.proxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} + diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/CustomSocks.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/CustomSocks.java new file mode 100644 index 000000000..272a5ec71 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/CustomSocks.java @@ -0,0 +1,21 @@ +package ru.vtosters.lite.proxy.socks; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; + +public class CustomSocks{ + public static void loadProxy(){ + System.setProperty("socksProxyHost", proxyHostSocks()); + System.setProperty("socksProxyPort", proxyPortSocks()); + forceProxyApplying(); + } + + private static String proxyHostSocks(){ + var string = getPrefsValue("proxyHostSocks"); + return string.isEmpty() ? "192.168.0.1" : string; + } + + private static String proxyPortSocks(){ + var string = getPrefsValue("proxyPortSocks"); + return string.isEmpty() ? "8888" : string; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java new file mode 100644 index 000000000..1d0d9e7ce --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java @@ -0,0 +1,46 @@ +package ru.vtosters.lite.proxy.socks; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class Hookzof{ + private static final String TAG = "Hookzof_Socks"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + + System.setProperty("socksProxyHost", proxy.split(":")[0]); + System.setProperty("socksProxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java new file mode 100644 index 000000000..e8e6815ee --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java @@ -0,0 +1,46 @@ +package ru.vtosters.lite.proxy.socks; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class Jetkai{ + private static final String TAG = "Jetkai_Socks"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + + System.setProperty("socksProxyHost", proxy.split(":")[0]); + System.setProperty("socksProxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java new file mode 100644 index 000000000..8a53527ef --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java @@ -0,0 +1,46 @@ +package ru.vtosters.lite.proxy.socks; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class Roosterkid{ + private static final String TAG = "Roosterkid_Socks"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + + System.setProperty("socksProxyHost", proxy.split(":")[0]); + System.setProperty("socksProxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java new file mode 100644 index 000000000..296b6925f --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java @@ -0,0 +1,46 @@ +package ru.vtosters.lite.proxy.socks; +import static ru.vtosters.lite.proxy.GithubList.getProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; + +import android.util.Log; + +import java.io.IOException; +import java.util.ArrayList; + +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + +public class TheSpeedX{ + private static final String TAG = "TheSpeedX_Socks"; + + public static void loadProxy() throws IOException{ + ArrayList proxyList = getProxy("https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt", TAG); + + if (proxyList == null) { + Log.d(TAG, "No proxy found"); + return; + } + + String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size())); + + if (!hasProxy(proxy)) { + Log.d(TAG, "No proxy port found"); + return; + } + + Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + + System.setProperty("socksProxyHost", proxy.split(":")[0]); + System.setProperty("socksProxyPort", proxy.split(":")[1]); + forceProxyApplying(); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Zaborona.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Zaborona.java new file mode 100644 index 000000000..536a052c6 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Zaborona.java @@ -0,0 +1,10 @@ +package ru.vtosters.lite.proxy.socks; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; + +public class Zaborona{ + public static void loadProxy(){ + System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua"); + System.setProperty("socksProxyPort", "1488"); + forceProxyApplying(); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/services/LogWriterService.java b/app/src/main/java/ru/vtosters/lite/services/LogWriterService.java index d076125f3..d0408e189 100644 --- a/app/src/main/java/ru/vtosters/lite/services/LogWriterService.java +++ b/app/src/main/java/ru/vtosters/lite/services/LogWriterService.java @@ -22,6 +22,8 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; +import ru.vtosters.lite.utils.AndroidUtils; + public class LogWriterService extends Service { public LogWriterService() { } @@ -44,12 +46,12 @@ public class LogWriterService extends Service { writeLog(intent, file); } catch (Exception e) { e.printStackTrace(); - makeText(getGlobalContext(), "Не удалось сохранить лог-файл", LENGTH_SHORT).show(); + makeText(getGlobalContext(), AndroidUtils.getString("logfile_error"), LENGTH_SHORT).show(); } var notificationId = intent.getIntExtra("notificationId", 1); var manager = (NotificationManager) getGlobalContext().getSystemService(Context.NOTIFICATION_SERVICE); manager.cancel(notificationId); - makeText(getGlobalContext(), "Лог-файл был сохранен", LENGTH_SHORT).show(); + makeText(getGlobalContext(), AndroidUtils.getString("logfile_saved"), LENGTH_SHORT).show(); stopSelf(); return START_NOT_STICKY; diff --git a/app/src/main/java/ru/vtosters/lite/ui/activities/APKInstallActivity.java b/app/src/main/java/ru/vtosters/lite/ui/activities/APKInstallActivity.java index f024a22d7..7b6b08023 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/activities/APKInstallActivity.java +++ b/app/src/main/java/ru/vtosters/lite/ui/activities/APKInstallActivity.java @@ -11,6 +11,8 @@ import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; +import ru.vtosters.lite.utils.AndroidUtils; + public class APKInstallActivity extends AppCompatActivity { public static final int REQUEST_INSTALL_PERMISSION = 1; @@ -65,7 +67,7 @@ public class APKInstallActivity extends AppCompatActivity { startActivity(intent); } catch (Exception e) { - Toast.makeText(this, "Ошибка установки обновления " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); + Toast.makeText(this, AndroidUtils.getString("apk_install_error") + " " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); } finish(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java b/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java index 9220e785f..8626fc9eb 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java +++ b/app/src/main/java/ru/vtosters/lite/ui/adapters/CategorizedAdapter.java @@ -34,10 +34,10 @@ public class CategorizedAdapter extends RecyclerView.Adapter { private List mItems = new ArrayList<>(); - private OnClickListener mListener; + private final OnClickListener mListener; private int mSelectedIndex = -1; public ImagineArrayAdapter(@NonNull Context context, OnClickListener listener) { @@ -134,8 +134,8 @@ public class ImagineArrayAdapter extends ArrayAdapter { - private static final int ME = 0x0; private static final int ANONYMOUS = -0x1; - private final String[] mMessages = { - "Доброе время", "Доброе утро, день, вечер. ночь", "Как живёшь?", "Не мёртвый, и то хорошо" - }; + private final String[] mMessages = AndroidUtils.getArray("wallpaper_change_dialog"); @Override public int getItemViewType(int i) { diff --git a/app/src/main/java/ru/vtosters/lite/ui/adapters/StickerPackAdapter.java b/app/src/main/java/ru/vtosters/lite/ui/adapters/StickerPackAdapter.java index e038944ae..d3b0c6893 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/adapters/StickerPackAdapter.java +++ b/app/src/main/java/ru/vtosters/lite/ui/adapters/StickerPackAdapter.java @@ -7,6 +7,7 @@ import static ru.vtosters.lite.utils.ThemesUtils.getSTextAttr; import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; import static ru.vtosters.lite.utils.ThemesUtils.recolorDrawable; +import android.annotation.SuppressLint; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; @@ -28,8 +29,9 @@ import ru.vtosters.lite.tgs.TGPref; import ru.vtosters.lite.utils.AndroidUtils; public class StickerPackAdapter extends RecyclerView.Adapter { - private static TelegramStickersService sService = TelegramStickersService.getInstance(getGlobalContext()); + private static final TelegramStickersService sService = TelegramStickersService.getInstance(getGlobalContext()); + @SuppressLint("UseCompatLoadingForDrawables") @NonNull @Override public StickerPackViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -61,13 +63,13 @@ public class StickerPackAdapter extends RecyclerView.Adapter= Build.VERSION_CODES.KITKAT_WATCH) { - builder.addAction(new Notification.Action(0, getString("vtl_crash_upload"), PendingIntent.getActivity(getGlobalContext(), (int) (Math.random() * 100.0d), foxbinIntent, PendingIntent.FLAG_CANCEL_CURRENT))); - builder.addAction(new Notification.Action(0, getString("vtl_crash_save"), psaveLogIntent)); - } else { - builder.setContentIntent(PendingIntent.getActivity(activity, 0, foxbinIntent, PendingIntent.FLAG_ONE_SHOT)); - } + builder.addAction(new Notification.Action(0, getString("vtl_crash_upload"), PendingIntent.getActivity(getGlobalContext(), (int) (Math.random() * 100.0d), foxbinIntent, PendingIntent.FLAG_CANCEL_CURRENT))); + builder.addAction(new Notification.Action(0, getString("vtl_crash_save"), psaveLogIntent)); if (Build.VERSION.SDK_INT >= 26) { builder.setChannelId("crashes"); diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java b/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java index 36df13409..5b799985b 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java +++ b/app/src/main/java/ru/vtosters/lite/ui/components/DockBarEditorManager.java @@ -10,6 +10,8 @@ import static ru.vtosters.lite.utils.Preferences.videonewcatalog; import static ru.vtosters.lite.utils.Preferences.vkme; import static ru.vtosters.lite.utils.Preferences.vkme_notifs; +import android.os.Build; + import com.vk.apps.AppsFragment; import com.vk.discover.ThemedFeedFragment; import com.vk.fave.fragments.FaveTabFragment; @@ -47,7 +49,6 @@ import ru.vtosters.lite.ui.items.DockBarTab; import ru.vtosters.lite.utils.AndroidUtils; public class DockBarEditorManager { - public static final int MIN_SELECTED_TABS = 3; public static final int MAX_SELECTED_TABS = 9; @@ -97,18 +98,30 @@ public class DockBarEditorManager { List allTags = new ArrayList<>(Arrays.asList("tab_news", "tab_superapps", "tab_messages", "tab_feedback", "tab_profile", "tab_friends", "tab_groups", "tab_photos", "tab_audios", "tab_videos", "tab_lives", "tab_games", "tab_liked", "tab_fave", "tab_documents", "tab_payments", "tab_vk_apps", "tab_settings", "tab_menu")); + for (String tag : selectedTabsTags) { mSelectedTabs.add(getTabByTag(tag)); allTags.remove(tag); } - allTags.forEach(tag -> mDisabledTabs.add(getTabByTag(tag))); + + for (String tag : allTags) { + mDisabledTabs.add(getTabByTag(tag)); + } } public void save() { - AndroidUtils.getPreferences().edit().putString("dockbar_tabs", mSelectedTabs.stream() - .map(tab -> tab.tag) - .collect(Collectors.joining(","))) - .commit(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + getPreferences().edit().putString("dockbar_tabs", mSelectedTabs.stream() + .map(tab -> tab.tag) + .collect(Collectors.joining(","))) + .commit(); + } else { + StringBuilder sb = new StringBuilder(); + for (DockBarTab tab : mSelectedTabs) { + sb.append(tab.tag).append(","); + } + getPreferences().edit().putString("dockbar_tabs", sb.toString()).commit(); + } } public void reset() { diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/IItemMovingListener.java b/app/src/main/java/ru/vtosters/lite/ui/components/IItemMovingListener.java index 8eb6b6ee7..a87b82c4f 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/components/IItemMovingListener.java +++ b/app/src/main/java/ru/vtosters/lite/ui/components/IItemMovingListener.java @@ -1,7 +1,6 @@ package ru.vtosters.lite.ui.components; public interface IItemMovingListener { - void onItemDismiss(int index); boolean onItemMove(int fromPosition, int toPosition); diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/NewsfeedListManager.java b/app/src/main/java/ru/vtosters/lite/ui/components/NewsfeedListManager.java new file mode 100644 index 000000000..7a7f61c68 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/ui/components/NewsfeedListManager.java @@ -0,0 +1,63 @@ +package ru.vtosters.lite.ui.components; + +import static ru.vtosters.lite.ui.vkui.VBListBuilder.VBListItem; +import static ru.vtosters.lite.ui.vkui.VBListBuilder.buildListOf; +import static ru.vtosters.lite.utils.AndroidUtils.getDefaultPrefs; +import static ru.vtosters.lite.utils.AndroidUtils.sendToast; + +import android.app.Activity; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashSet; + +import ru.vtosters.lite.ui.vkui.VBottomSheetBuilder; +import ru.vtosters.lite.utils.AndroidUtils; + +public class NewsfeedListManager { + + public static void callEditorPopup(Activity activity) { + var selectedItems = getDefaultPrefs().getString("news_feed_selected_items", ""); + var filtersSet = getDefaultPrefs().getStringSet("news_feed_items_set", Collections.synchronizedSet(new LinkedHashSet<>())); + var list = new ArrayList(); + + if (filtersSet.size() == 0) { + sendToast(AndroidUtils.getString("newsfeed_update_feed")); + return; + } + + synchronized (filtersSet) { + for (String item : filtersSet) { + var id = item.substring(0, item.indexOf("|")); + var title = item.substring(item.indexOf("|") + 1); + + list.add(new VBListItem(id, title, selectedItems.contains(id))); + } + } + + VBottomSheetBuilder.show(activity, new VBottomSheetBuilder.VBSContent( + AndroidUtils.getString("newsfeed_list_choose_to_hide"), + buildListOf(activity, list), + new VBottomSheetBuilder.VBSContent.VBSButton( + AndroidUtils.getString("save"), + () -> { + var newSelectedItems = ""; + for (VBListItem item : list) + if (item.checked) + newSelectedItems += item.id + ","; + getDefaultPrefs().edit() + .putString("news_feed_selected_items", newSelectedItems) + .apply(); + sendToast(AndroidUtils.getString("newsfeed_list_update_feed_to_work")); + } + ) + )); + } + + public static void resetHideItems() { + getDefaultPrefs().edit() + .putString("news_feed_selected_items", "") + .apply(); + sendToast(AndroidUtils.getString("newsfeed_list_hidden_reseted")); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/ui/components/SuperAppEditorManager.java b/app/src/main/java/ru/vtosters/lite/ui/components/SuperAppEditorManager.java index 740484ce4..1801238b0 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/components/SuperAppEditorManager.java +++ b/app/src/main/java/ru/vtosters/lite/ui/components/SuperAppEditorManager.java @@ -2,11 +2,14 @@ package ru.vtosters.lite.ui.components; import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; +import android.os.Build; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; +import ru.vtosters.lite.ui.items.DockBarTab; import ru.vtosters.lite.ui.items.SuperAppItem; import ru.vtosters.lite.utils.AndroidUtils; @@ -40,15 +43,30 @@ public class SuperAppEditorManager { mSelectedItems.add(getItemByTag(tag)); allTags.remove(tag); } - allTags.forEach(tag -> mDisabledItems.add(getItemByTag(tag))); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + allTags.forEach(tag -> mDisabledItems.add(getItemByTag(tag))); + } else { + for (String tag : allTags) { + mDisabledItems.add(getItemByTag(tag)); + } + } } public void save() { if (mSelectedItems.size() > 0) - getPreferences().edit().putString("superapp_items", mSelectedItems.stream() - .map(item -> item.type) - .collect(Collectors.joining(","))) - .commit(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + getPreferences().edit().putString("superapp_items", mSelectedItems.stream() + .map(item -> item.type) + .collect(Collectors.joining(","))) + .commit(); + } else { + StringBuilder sb = new StringBuilder(); + for (SuperAppItem item : mSelectedItems) { + sb.append(item.type); + sb.append(","); + } + getPreferences().edit().putString("superapp_items", sb.toString()).commit(); + } else reset(); } @@ -71,33 +89,33 @@ public class SuperAppEditorManager { private SuperAppItem getItemByTag(String tag) { switch (tag) { case "menu": - return SuperAppItem.valuesOf("menu", "Меню приложения"); + return SuperAppItem.valuesOf("menu", AndroidUtils.getString("superapp_menu")); case "miniapps": - return SuperAppItem.valuesOf("miniapps", "Mini Apps: виджет"); + return SuperAppItem.valuesOf("miniapps", AndroidUtils.getString("superapp_miniapps")); case "vkpay_slim": - return SuperAppItem.valuesOf("vkpay_slim", "VK Pay"); + return SuperAppItem.valuesOf("vkpay_slim", AndroidUtils.getString("superapp_vkpay")); case "greeting": - return SuperAppItem.valuesOf("greeting", "Приветствие"); + return SuperAppItem.valuesOf("greeting", AndroidUtils.getString("superapp_greeting")); case "promo": - return SuperAppItem.valuesOf("promo", "Mini Apps: промо"); + return SuperAppItem.valuesOf("promo", AndroidUtils.getString("superapp_miniapps_promo")); case "holiday": - return SuperAppItem.valuesOf("holiday", "Дни рождения у друзей"); + return SuperAppItem.valuesOf("holiday", AndroidUtils.getString("superapp_holiday")); case "weather": - return SuperAppItem.valuesOf("weather", "Погода"); + return SuperAppItem.valuesOf("weather", AndroidUtils.getString("superapp_weather")); case "sport": - return SuperAppItem.valuesOf("sport", "Спортивные события"); + return SuperAppItem.valuesOf("sport", AndroidUtils.getString("superapp_sport")); case "games": - return SuperAppItem.valuesOf("games", "Игры"); + return SuperAppItem.valuesOf("games", AndroidUtils.getString("superapp_games")); case "informer": - return SuperAppItem.valuesOf("informer", "Информер"); + return SuperAppItem.valuesOf("informer", AndroidUtils.getString("superapp_informer")); case "food": - return SuperAppItem.valuesOf("food", "Еда"); + return SuperAppItem.valuesOf("food", AndroidUtils.getString("superapp_food")); case "event": - return SuperAppItem.valuesOf("event", "Мероприятия"); + return SuperAppItem.valuesOf("event", AndroidUtils.getString("superapp_event")); case "music": - return SuperAppItem.valuesOf("music", "Музыка"); + return SuperAppItem.valuesOf("music", AndroidUtils.getString("superapp_music")); case "vk_run": - return SuperAppItem.valuesOf("vk_run", "VK Run"); + return SuperAppItem.valuesOf("vk_run", AndroidUtils.getString("superapp_vk_run")); default: return null; } diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/MessageSettings.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/MessageSettings.java index e93476ecc..c926d0c7e 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/MessageSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/MessageSettings.java @@ -15,6 +15,7 @@ import androidx.appcompat.widget.SwitchCompat; import com.vk.core.dialogs.alert.VkAlertDialog; +import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.LayoutUtils; public class MessageSettings { @@ -50,12 +51,12 @@ public class MessageSettings { four.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); five.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); - zero.setText("Отключить"); - one.setText("15 секунд"); - two.setText("1 минута"); - three.setText("5 минут"); - four.setText("1 час"); - five.setText("24 часа"); + zero.setText(AndroidUtils.getString("proxy_disable")); // Отключить + one.setText(AndroidUtils.getString("message_self_destruct_15sec")); + two.setText(AndroidUtils.getString("message_self_destruct_1min")); + three.setText(AndroidUtils.getString("message_self_destruct_5min")); + four.setText(AndroidUtils.getString("message_self_destruct_1hour")); + five.setText(AndroidUtils.getString("message_self_destruct_24hours")); zero.setTextColor(getTextAttr()); one.setTextColor(getTextAttr()); @@ -87,7 +88,7 @@ public class MessageSettings { @SuppressLint("UseSwitchCompatOrMaterialCode") var silentSwitch = new SwitchCompat(new ContextThemeWrapper(context, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_Switch)); - silentSwitch.setText("Бесшумные сообщения"); + silentSwitch.setText(AndroidUtils.getString("silent_messages")); silentSwitch.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f)); silentSwitch.setTextColor(getTextAttr()); silentSwitch.setChecked(isSilentEnabled); @@ -104,12 +105,12 @@ public class MessageSettings { mContainer.addView(silentSwitch, LayoutUtils.createLinear(-1, -2)); VkAlertDialog.Builder builder = new VkAlertDialog.Builder(context); - builder.setTitle("Настройки отправки"); - builder.setMessage("Выберите время исчезновения сообщения"); + builder.setTitle(AndroidUtils.getString("message_send_settings_title")); + builder.setMessage(AndroidUtils.getString("silent_messages_time_select")); builder.setCancelable(true); - builder.setNegativeButton("Отмена", null); + builder.setNegativeButton(AndroidUtils.getString("cancel"), null); builder.setView(mContainer); - builder.setPositiveButton("Применить", (dialog, which) -> { + builder.setPositiveButton(AndroidUtils.getString("vtl_confirm"), (dialog, which) -> { // Применить var checked = rg.getCheckedRadioButtonId(); if (checked == zero.getId()) { diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/OTADialog.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/OTADialog.java index 92ee969ea..1d2f80505 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/OTADialog.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/OTADialog.java @@ -9,7 +9,6 @@ import ru.vtosters.lite.ui.vkui.ModalBottomSheetWrapper; import ru.vtosters.lite.utils.OTAUtils; public class OTADialog implements OTAUtils.OTAListener { - private final Activity mActivity; private final OTAUtils mHelper; @@ -21,8 +20,8 @@ public class OTADialog implements OTAUtils.OTAListener { mHelper.loadData(); } - public static OTADialog checkUpdates(Activity activity) { - return new OTADialog(activity); + public static void checkUpdates(Activity activity) { + new OTADialog(activity); } @Override diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java new file mode 100644 index 000000000..a57ae65da --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java @@ -0,0 +1,41 @@ +package ru.vtosters.lite.ui.dialogs; +import static ru.vtosters.lite.utils.AndroidUtils.dp2px; +import static ru.vtosters.lite.utils.AndroidUtils.edit; +import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; +import static ru.vtosters.lite.utils.LifecycleUtils.restartApplicationWithTimer; + +import android.content.Context; +import android.widget.LinearLayout; +import android.widget.SeekBar; + + +import com.vk.core.dialogs.alert.VkAlertDialog; + +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.LayoutUtils; + +public class RoundingSeekbarDialog{ + public static void dialog(Context context) { + LinearLayout mContainer = new LinearLayout(context); + SeekBar seek = new SeekBar(context); + seek.setMax(10); + seek.setKeyProgressIncrement(0); + seek.setProgress(getPreferences().getInt("pic_rounding", 0)); + seek.setPadding(dp2px(16f), dp2px(16f), dp2px(16f), dp2px(16f)); + + mContainer.addView(seek, LayoutUtils.createLinear(-1, -2)); + + VkAlertDialog.Builder builder = new VkAlertDialog.Builder(context); + builder.setTitle(AndroidUtils.getString("pic_rounding_title")); + builder.setMessage(AndroidUtils.getString("pic_rounding_info")); + builder.setCancelable(true); + builder.setNegativeButton(AndroidUtils.getString("cancel"), null); + builder.setView(mContainer); + builder.setPositiveButton(AndroidUtils.getString("vtl_confirm"), (dialog, which) -> { + edit().putInt("pic_rounding", seek.getProgress()).commit(); + restartApplicationWithTimer(); + }); + + builder.show(); + } +} diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java index f278606ee..1672a6c2e 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/ServerDialog.java @@ -77,8 +77,6 @@ public class ServerDialog { private static void getResponse(String body) throws Exception { JSONObject jSONObject = new JSONObject(body); - Log.d("VTLOG", "getResponse: " + jSONObject); - if (jSONObject.getString("title").equals("")) { showAlert = false; return; diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/Translate.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/Translate.java index 66022318d..32b952ed0 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/Translate.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/Translate.java @@ -10,6 +10,7 @@ import android.util.Log; import com.vk.core.dialogs.alert.VkAlertDialog; import ru.vtosters.lite.translators.BaseTranslator; +import ru.vtosters.lite.utils.AndroidUtils; public class Translate { public static void showTranslatedText(Context context, String text) { @@ -27,16 +28,16 @@ public class Translate { private static void showDialog(Context context, String text) { VkAlertDialog.Builder alertDialog = new VkAlertDialog.Builder(context); - alertDialog.setTitle("Переводчик"); + alertDialog.setTitle(AndroidUtils.getString("translator_title")); alertDialog.setMessage(text); - alertDialog.setPositiveButton("Закрыть", (dialog, which) -> { + alertDialog.setPositiveButton(AndroidUtils.getString("close"), (dialog, which) -> { dialog.cancel(); }); - alertDialog.setNeutralButton("Скопировать", (dialog, which) -> { + alertDialog.setNeutralButton(AndroidUtils.getString("copy"), (dialog, which) -> { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", text); clipboard.setPrimaryClip(clip); - sendToast("Скопировано в буфер обмена"); + sendToast(AndroidUtils.getString("copied_to_clipboard")); }); var alert = alertDialog.create(); alert.show(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/DockBarEditorFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/DockBarEditorFragment.java index 4af958de6..e976596b1 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/DockBarEditorFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/DockBarEditorFragment.java @@ -22,6 +22,8 @@ import androidx.recyclerview.widget.RecyclerView; import com.vtosters.lite.R; +import java.util.Objects; + import ru.vtosters.lite.ui.adapters.CategorizedAdapter; import ru.vtosters.lite.ui.components.DockBarEditorManager; import ru.vtosters.lite.ui.components.ItemMovingCallback; @@ -83,7 +85,7 @@ public class DockBarEditorFragment extends BaseToolbarFragment { }); adapter.setMinAndMaxCounts(DockBarEditorManager.MIN_SELECTED_TABS, DockBarEditorManager.MAX_SELECTED_TABS); - var recyclerView = new RecyclerView(getContext()); + var recyclerView = new RecyclerView(requireContext()); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); recyclerView.setAdapter(adapter); recyclerView.setHasFixedSize(true); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/FeedFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/FeedFragment.java index 1e9de8fa8..3cc8c4ce0 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/FeedFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/FeedFragment.java @@ -1,12 +1,14 @@ package ru.vtosters.lite.ui.fragments; +import static ru.vtosters.lite.utils.AndroidUtils.getDefaultPrefs; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; +import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; import static ru.vtosters.lite.utils.Preferences.copyright_post; -import static ru.vtosters.lite.utils.Preferences.offline; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.text.TextUtils; import androidx.preference.Preference; @@ -14,6 +16,9 @@ import com.vk.navigation.Navigator; import com.vk.newsfeed.NewsfeedSettingsFragment; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import ru.vtosters.lite.ui.components.NewsfeedListManager; +import ru.vtosters.lite.utils.AndroidUtils; + public class FeedFragment extends MaterialPreferenceToolbarFragment { @Override public void onCreate(Bundle bundle) { @@ -25,6 +30,33 @@ public class FeedFragment extends MaterialPreferenceToolbarFragment { private void prefs() { findPreference("officialnewssett").setOnPreferenceClickListener(new openofficialsett()); findPreference("cringecopyright").setEnabled(!copyright_post()); + + findPreference("spamfilters").setSummary(count(getPrefsValue("spamfilters"))); + findPreference("sourcenamefilter").setSummary(count(getPrefsValue("sourcenamefilter"))); + findPreference("linkfilter").setSummary(count(getPrefsValue("linkfilter"))); + findPreference("newsfeedlistmanager").setOnPreferenceClickListener(preference -> { + NewsfeedListManager.callEditorPopup(getActivity()); + return true; + }); + var str = getDefaultPrefs().getString("news_feed_selected_items", ""); + findPreference("newsfeedlistmanager").setSummary( + String.format(AndroidUtils.getString("feed_hidden"), (!TextUtils.isEmpty(str) ? str.split(",").length : 0)) + ); + findPreference("newsfeedlistmanager_reset").setOnPreferenceClickListener(preference -> { + NewsfeedListManager.resetHideItems(); + return true; + }); + } + + private String count(String text) { + // count comma separated words in string + var count = text.split(", ").length; + + if (count < 1 || text.isEmpty()) { + return AndroidUtils.getString("feed_no_elements"); + } else { + return String.format(AndroidUtils.getString("feed_elements_count"), count); + } } @Override diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java index c5514aa63..deef3df9a 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/IconsFragment.java @@ -15,7 +15,6 @@ import static ru.vtosters.lite.utils.AndroidUtils.sendToast; import static ru.vtosters.lite.utils.Preferences.getBoolValue; import static ru.vtosters.lite.utils.Preferences.hasVerification; import static ru.vtosters.lite.utils.Preferences.preferences; -import static ru.vtosters.lite.utils.ProxyUtils.isZaboronaEnabled; import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; import static ru.vtosters.lite.utils.ThemesUtils.getAlertStyle; import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; @@ -37,9 +36,14 @@ import androidx.core.content.res.ResourcesCompat; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import ru.vtosters.lite.utils.AndroidUtils; + public class IconsFragment extends MaterialPreferenceToolbarFragment { @SuppressLint("SetTextI18n") public static void callSelectDialog(Context ctx, String appicon) { + var defname = preferences.getString("appname", "vt"); + var deficon = preferences.getString("selectedicon", "vt"); + RadioGroup rg = new RadioGroup(ctx); RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton)); @@ -62,20 +66,17 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { rgVK.setText("VK"); rgVK.setTextColor(getTextAttr()); - rgVKontakte.setText("ВКонтакте"); + rgVKontakte.setText(AndroidUtils.getString("app_name_alter")); rgVKontakte.setTextColor(getTextAttr()); - rgVKontakte.setChecked(isZaboronaEnabled()); - rgVK.setChecked(isZaboronaEnabled()); - rgDefault.setChecked(!isZaboronaEnabled()); + rgVKontakte.setChecked(defname.contains("vkontakte")); + rgVK.setChecked(defname.contains("standard")); + rgDefault.setChecked(defname.contains("vt") || defname.isEmpty()); AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle()); - builder.setTitle("Выберите название приложения"); + builder.setTitle(AndroidUtils.getString("app_name_select_title")); builder.setView(rg); - builder.setPositiveButton("Применить", ((dialog, which) -> { - var defname = preferences.getString("appname", "vt"); - var deficon = preferences.getString("selectedicon", "vt"); - + builder.setPositiveButton(AndroidUtils.getString("vtl_confirm"), ((dialog, which) -> { if (rgDefault.isChecked()) { edit().putString("appname", "vt").commit(); edit().putString("selectedicon", appicon).commit(); @@ -93,7 +94,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { switchComponent(appicon, "vkontakte", deficon, defname); } })); - builder.setNegativeButton("Отмена", ((dialog, which) -> { + builder.setNegativeButton(AndroidUtils.getString("cancel"), ((dialog, which) -> { dialog.dismiss(); })); @@ -114,13 +115,13 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { this.addPreferencesFromResource(vtosterXml); if (!hasVerification() && !getBoolValue("dialogrecomm", false)) { - addPreference(this, "", "Доступны не все функции!", "Для разблокировки необходимо сделать пожертование от 99р", "ic_about_outline_28", preference -> { - getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app"))); + addPreference(this, "", AndroidUtils.getString("icons_warning"), AndroidUtils.getString("icons_warning_info"), "ic_about_outline_28", preference -> { + getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app/donate/"))); return false; }); } - addPreferenceCategory(this, "Иконки"); + addPreferenceCategory(this, AndroidUtils.getString("icons_title")); for (var i = 0; i < icons().size(); i++) { if (icons().get(i) == null || iconsValues().get(i) == null) return; @@ -151,7 +152,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { } if (!hasVerification() && !getBoolValue("dialogrecomm", false)) { - addPreferenceCategory(this, "Недоступные иконки"); + addPreferenceCategory(this, AndroidUtils.getString("unavailable_icons")); for (var i = 2; i < sIconsPlusNames.size(); i++) { if (sIconsPlusNames.get(i) == null || sIconsPlus.get(i) == null) return; @@ -176,7 +177,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment { } addPreferenceDrawable(this, icon, iconname, "", drawable, preference -> { - sendToast("Иконка доступна только обладателям верификации"); + sendToast(AndroidUtils.getString("unavailable_icon_warning")); return false; }); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java index fbbbd5fad..85ed01514 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/InterfaceFragment.java @@ -1,6 +1,7 @@ package ru.vtosters.lite.ui.fragments; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; +import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; import static ru.vtosters.lite.utils.LifecycleUtils.restartApplicationWithTimer; import android.os.Bundle; @@ -9,6 +10,9 @@ import androidx.preference.Preference; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import ru.vtosters.lite.ui.dialogs.RoundingSeekbarDialog; +import ru.vtosters.lite.utils.AndroidUtils; + public class InterfaceFragment extends MaterialPreferenceToolbarFragment { @Override public void onCreate(Bundle bundle) { @@ -20,6 +24,18 @@ public class InterfaceFragment extends MaterialPreferenceToolbarFragment { private void prefs() { findPreference("stories").setOnPreferenceClickListener(new restart()); findPreference("swipe").setOnPreferenceClickListener(new restart()); + findPreference("is_likes_on_right").setOnPreferenceClickListener(new restart()); + + findPreference("customrounding").setOnPreferenceClickListener(preference -> { + RoundingSeekbarDialog.dialog(getContext()); + return true; + }); + + if (getPreferences().getInt("pic_rounding", 0) == 0) { + findPreference("customrounding").setSummary(AndroidUtils.getString("disabled")); + } else { + findPreference("customrounding").setSummary(String.format(AndroidUtils.getString("rounding_size"), getPreferences().getInt("pic_rounding", 0))); + } } public boolean restart(Preference preference) { 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 2c8b6f9bc..5cdafa15f 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 @@ -13,8 +13,10 @@ import static ru.vtosters.lite.utils.ThemesUtils.getAlertStyle; import static ru.vtosters.lite.utils.ThemesUtils.getSTextAttr; import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; +import android.app.Activity; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.content.res.ColorStateList; import android.os.Bundle; import android.util.Log; @@ -40,104 +42,16 @@ import okhttp3.Request; import ru.vtosters.lite.downloaders.VideoDownloader; import ru.vtosters.lite.music.Scrobbler; import ru.vtosters.lite.ui.adapters.ImagineArrayAdapter; +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.FileUriUtils; +import ru.vtosters.lite.utils.Preferences; public class MediaFragment extends MaterialPreferenceToolbarFragment { - public static void download(Context ctx) { - AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctx, getAlertStyle()); - alertDialog.setTitle("Введите ссылку на видео"); + private final int REQUEST_CODE_SET_DOWNLOAD_DIRECTORY = 665; + private final int REQUEST_CODE_SET_MUSIC_DIRECTORY = 666; + private final int REQUEST_CODE_SET_PHOTOS_DIRECTORY = 667; + private final int REQUEST_CODE_SET_VIDEOS_DIRECTORY = 668; - final EditText input = new EditText(ctx); - LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.MATCH_PARENT); - input.setLayoutParams(lp); - input.setTextColor(getTextAttr()); - input.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); - alertDialog.setView(input); - alertDialog.setPositiveButton("Скачать", (dialog, which) -> VideoDownloader.parseVideoLink(input.getText().toString(), ctx)); - var alert = alertDialog.create(); - alert.show(); - alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); - } - - private void logout(Context ctx) { - VkAlertDialog.Builder alertDialog = new VkAlertDialog.Builder(ctx); - alertDialog.setTitle("Вы уверены?"); - alertDialog.setMessage("Вы действительно хотите выйти из аккаунта?"); - alertDialog.setPositiveButton("Да", (dialog, which) -> { - Scrobbler.logout(); - }); - alertDialog.setNeutralButton("Нет", (dialog, which) -> { - dialog.cancel(); - }); - var alert = alertDialog.create(); - alert.show(); - alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); - alert.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(getResources().getColor(com.vtosters.lite.R.color.red)); - } - - private void lastfmAuth(Context ctx) { - LinearLayout linearLayout = new LinearLayout(ctx); - linearLayout.setOrientation(LinearLayout.VERTICAL); - - final EditText fn = new EditText(ctx); - fn.setHint("Логин"); - fn.setTextColor(getTextAttr()); - fn.setHintTextColor(getSTextAttr()); - fn.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); - linearLayout.addView(fn); - fn.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; - ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) fn.getLayoutParams()); - margin.setMargins(dp2px(20f), 0, dp2px(20f), 0); - fn.setLayoutParams(margin); - - final EditText ln = new EditText(ctx); - ln.setHint("Пароль"); - ln.setTextColor(getTextAttr()); - ln.setHintTextColor(getSTextAttr()); - ln.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); - linearLayout.addView(ln); - ln.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; - ln.setLayoutParams(margin); - - AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctx, getAlertStyle()); - alertDialog.setTitle("Введите логин и пароль"); - - alertDialog.setView(linearLayout); - alertDialog.setPositiveButton("Войти", (dialog, which) -> { - String login = fn.getText().toString(); - String pass = ln.getText().toString(); - - Scrobbler.auth(login, pass); - }); - var alert = alertDialog.create(); - alert.show(); - alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); - } - - public static void deleteVideoHistory() { - Thread thread = new Thread(() -> { - try { - var request = new Request.a() - .b("https://api.vk.com/method/" + "video.clearViewingHistoryRecords" + "?https=1" + "&access_token=" + getUserToken() + "&v=5.187") - .a(Headers.a("User-Agent", Network.l.c().a(), "Content-Type", "application/x-www-form-urlencoded; charset=utf-8")) - .a(); - - try { - var response = new OkHttpClient().a(request).execute().a().g(); - Log.d("VideoHistory", response); - } catch (IOException e) { - e.printStackTrace(); - } - } catch (Exception e) { - e.printStackTrace(); - } - }); - - thread.start(); - - sendToast("История просмотра видео очищена"); - } @Override public void onCreate(Bundle bundle) { @@ -146,6 +60,41 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment { prefs(); } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == Activity.RESULT_OK) { + var path = data.getData(); + if (path != null) { + var prefs = getPreferences(); + var editor = prefs.edit(); + var actualPath = FileUriUtils.getFullPathFromTreeUri(path, getContext()); + switch (requestCode) { + case REQUEST_CODE_SET_DOWNLOAD_DIRECTORY: + editor.putString("downloads_directory", actualPath); + break; + case REQUEST_CODE_SET_MUSIC_DIRECTORY: + editor.putString("music_directory", actualPath); + break; + case REQUEST_CODE_SET_PHOTOS_DIRECTORY: + editor.putString("photos_directory", actualPath); + break; + case REQUEST_CODE_SET_VIDEOS_DIRECTORY: + editor.putString("videos_directory", actualPath); + break; + default: + return; + } + editor.apply(); + } + } + } + + @Override + public void onResume() { + super.onResume(); + prefs(); + } + private void prefs() { findPreference("download_video").setOnPreferenceClickListener(new MediaFragment.download()); findPreference("clearvideohistory").setOnPreferenceClickListener(preference -> { @@ -162,8 +111,52 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment { return true; }); + findPreference("downloads_directory").setSummary( + AndroidUtils.getString("current_download_folder") + " " + Preferences.getDownloadsDir() + ); + + findPreference("photos_directory").setSummary( + AndroidUtils.getString("current_download_folder") + " " + Preferences.getPhotosDir() + ); + + findPreference("videos_directory").setSummary( + AndroidUtils.getString("current_download_folder") + " " + Preferences.getVideosDir() + ); + + findPreference("music_directory").setSummary( + AndroidUtils.getString("current_download_folder") + " " + Preferences.getMusicDir() + ); + + findPreference("downloads_directory").setOnPreferenceClickListener(preference -> { + var intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + intent.addCategory(Intent.CATEGORY_DEFAULT); + startActivityForResult(intent, REQUEST_CODE_SET_DOWNLOAD_DIRECTORY); + return true; + }); + + findPreference("photos_directory").setOnPreferenceClickListener(preference -> { + var intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + intent.addCategory(Intent.CATEGORY_DEFAULT); + startActivityForResult(intent, REQUEST_CODE_SET_PHOTOS_DIRECTORY); + return true; + }); + + findPreference("videos_directory").setOnPreferenceClickListener(preference -> { + var intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + intent.addCategory(Intent.CATEGORY_DEFAULT); + startActivityForResult(intent, REQUEST_CODE_SET_VIDEOS_DIRECTORY); + return true; + }); + + findPreference("music_directory").setOnPreferenceClickListener(preference -> { + var intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + intent.addCategory(Intent.CATEGORY_DEFAULT); + startActivityForResult(intent, REQUEST_CODE_SET_MUSIC_DIRECTORY); + return true; + }); + if (isLoggedIn()) { - findPreference("lastfm_auth").setSummary("Вы авторизованы как " + Scrobbler.getUserName()); + findPreference("lastfm_auth").setSummary(AndroidUtils.getString("lastfm_authorized_as") + " " + Scrobbler.getUserName()); } else { findPreference("lastfm_enabled").setEnabled(false); } @@ -192,6 +185,103 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment { }); } + private void lastfmAuth(Context ctx) { + LinearLayout linearLayout = new LinearLayout(ctx); + linearLayout.setOrientation(LinearLayout.VERTICAL); + + final EditText fn = new EditText(ctx); + fn.setHint(AndroidUtils.getString("lastfm_login")); + fn.setTextColor(getTextAttr()); + fn.setHintTextColor(getSTextAttr()); + fn.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); + linearLayout.addView(fn); + fn.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; + ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) fn.getLayoutParams()); + margin.setMargins(dp2px(20f), 0, dp2px(20f), 0); + fn.setLayoutParams(margin); + + final EditText ln = new EditText(ctx); + ln.setHint(AndroidUtils.getString("lastfm_password")); + ln.setTextColor(getTextAttr()); + ln.setHintTextColor(getSTextAttr()); + ln.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); + linearLayout.addView(ln); + ln.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; + ln.setLayoutParams(margin); + + AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctx, getAlertStyle()); + alertDialog.setTitle(AndroidUtils.getString("lastfm_enter_credentials")); + + alertDialog.setView(linearLayout); + alertDialog.setPositiveButton(AndroidUtils.getString("lastfm_enter"), (dialog, which) -> { + String login = fn.getText().toString(); + String pass = ln.getText().toString(); + + Scrobbler.auth(login, pass); + }); + var alert = alertDialog.create(); + alert.show(); + alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); + } + + private void logout(Context ctx) { + VkAlertDialog.Builder alertDialog = new VkAlertDialog.Builder(ctx); + alertDialog.setTitle(AndroidUtils.getString("lastfm_logout_title")); + alertDialog.setMessage(AndroidUtils.getString("lastfm_logout_confirm")); + alertDialog.setPositiveButton(AndroidUtils.getString("vkim_yes"), (dialog, which) -> { + Scrobbler.logout(); + }); + alertDialog.setNeutralButton(AndroidUtils.getString("vkim_no"), (dialog, which) -> { + dialog.cancel(); + }); + var alert = alertDialog.create(); + alert.show(); + alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); + alert.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(getResources().getColor(com.vtosters.lite.R.color.red)); + } + + public static void deleteVideoHistory() { + Thread thread = new Thread(() -> { + try { + var request = new Request.a() + .b("https://api.vk.com/method/" + "video.clearViewingHistoryRecords" + "?https=1" + "&access_token=" + getUserToken() + "&v=5.187") + .a(Headers.a("User-Agent", Network.l.c().a(), "Content-Type", "application/x-www-form-urlencoded; charset=utf-8")) + .a(); + + try { + var response = new OkHttpClient().a(request).execute().a().g(); + Log.d("VideoHistory", response); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (Exception e) { + e.printStackTrace(); + } + }); + + thread.start(); + + sendToast(AndroidUtils.getString("video_history_cleaned")); + } + + public static void download(Context ctx) { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(ctx, getAlertStyle()); + alertDialog.setTitle(AndroidUtils.getString("video_dl_enter_link")); + + final EditText input = new EditText(ctx); + LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.MATCH_PARENT); + input.setLayoutParams(lp); + input.setTextColor(getTextAttr()); + input.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); + alertDialog.setView(input); + alertDialog.setPositiveButton(AndroidUtils.getString("download"), (dialog, which) -> VideoDownloader.parseVideoLink(input.getText().toString(), ctx)); + var alert = alertDialog.create(); + alert.show(); + alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor()); + } + private class download implements Preference.OnPreferenceClickListener { @Override // android.support.v7.preference.Preference.c public boolean onPreferenceClick(Preference preference) { diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java index 0026a0821..eb66769f5 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MessagesFragment.java @@ -1,11 +1,14 @@ package ru.vtosters.lite.ui.fragments; +import static ru.vtosters.lite.utils.AndroidUtils.*; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; import static ru.vtosters.lite.utils.LifecycleUtils.restartApplicationWithTimer; import static ru.vtosters.lite.utils.Preferences.autoalltranslate; -import static ru.vtosters.lite.utils.Preferences.offline; +import static ru.vtosters.lite.utils.Preferences.vkme; +import static ru.vtosters.lite.utils.ThemesUtils.*; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.os.Bundle; @@ -19,9 +22,12 @@ import com.vk.navigation.Navigator; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; import java.util.Arrays; +import java.util.Objects; import ru.vtosters.lite.ui.adapters.ImagineArrayAdapter; import ru.vtosters.lite.ui.wallpapers.WallpaperMenuFragment; +import ru.vtosters.lite.utils.AndroidUtils; +import ru.vtosters.lite.utils.ThemesUtils; public class MessagesFragment extends MaterialPreferenceToolbarFragment { @Override @@ -31,6 +37,7 @@ public class MessagesFragment extends MaterialPreferenceToolbarFragment { prefs(); } + @SuppressLint("UseCompatLoadingForDrawables") private void prefs() { findPreference("vkme").setOnPreferenceClickListener(new MessagesFragment.restart()); findPreference("vkme_notifs").setOnPreferenceClickListener(new MessagesFragment.restart()); @@ -50,7 +57,7 @@ public class MessagesFragment extends MaterialPreferenceToolbarFragment { .create(); var listView = (ListView) LayoutInflater.from(getContext()).inflate(com.vtosters.lite.R.layout.abc_select_dialog_material, null, false); - var adapter = new ImagineArrayAdapter(getContext(), items, i -> { + var adapter = new ImagineArrayAdapter(requireContext(), items, i -> { getPreferences().edit().putInt("translator", i).apply(); alert.dismiss(); }); @@ -61,15 +68,20 @@ public class MessagesFragment extends MaterialPreferenceToolbarFragment { return true; }); + + findPreference("vkme_notifs").setEnabled(vkme()); + findPreference("wallpapers").setIcon(recolorDrawable(getGlobalContext().getDrawable(getIdentifier("ic_media_outline_28", "drawable")))); + findPreference("vkme").setIcon(getIdentifier("ic_vkme_28", "drawable")); } @Override public boolean onPreferenceTreeClick(Preference preference) { findPreference("autotranslate").setEnabled(!autoalltranslate()); + findPreference("vkme_notifs").setEnabled(vkme()); return super.onPreferenceTreeClick(preference); } - public boolean restart(Preference preference) { + public boolean restart() { restartApplicationWithTimer(); return true; } @@ -77,14 +89,14 @@ public class MessagesFragment extends MaterialPreferenceToolbarFragment { public class restart implements Preference.OnPreferenceClickListener { @Override public boolean onPreferenceClick(Preference preference) { - return MessagesFragment.this.restart(preference); + return MessagesFragment.this.restart(); } } public class clearCache implements Preference.OnPreferenceClickListener { @Override public boolean onPreferenceClick(Preference preference) { - return MessagesFragment.this.restart(preference); + return MessagesFragment.this.restart(); } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java index bfb82123d..3bb30b6bd 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java @@ -9,6 +9,7 @@ import static ru.vtosters.lite.ui.components.BackupManager.deletePrefs; import static ru.vtosters.lite.ui.components.BackupManager.restoreBackup; import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken; import static ru.vtosters.lite.utils.AndroidUtils.dp2px; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import static ru.vtosters.lite.utils.AndroidUtils.getDefaultPrefs; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.CacheUtils.deleteCache; @@ -76,7 +77,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { String token = data.getStringExtra("token"); AndroidUtils.getPreferences().edit().putString("vk_admin_token", token).apply(); Log.d("VkAdminToken", token); - Toast.makeText(getContext(), "Токен успешно сохранён", LENGTH_SHORT).show(); + Toast.makeText(getContext(), AndroidUtils.getString("token_saved"), LENGTH_SHORT).show(); } } } @@ -95,25 +96,31 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { return true; }); + findPreference("resetfolders").setOnPreferenceClickListener(preference -> { + edit().remove("photos_directory").remove("videos_directory").remove("audios_directory").remove("downloads_directory").apply(); + Toast.makeText(getContext(), AndroidUtils.getString("download_folders_reseted"), LENGTH_SHORT).show(); + return true; + }); + var pref = getDefaultPrefs().getString("autoclearcache", "Default"); switch (pref) { case "Default": - findPreference("autoclearcache").setSummary("Не включено"); + findPreference("autoclearcache").setSummary(AndroidUtils.getString("cache_disabled")); break; case "100mb": - findPreference("autoclearcache").setSummary("Очищать кеш при не менее 100 Мб"); + findPreference("autoclearcache").setSummary(AndroidUtils.getString("cache_100mb")); break; case "500mb": - findPreference("autoclearcache").setSummary("Очищать кеш при не менее 500 Мб"); + findPreference("autoclearcache").setSummary(AndroidUtils.getString("cache_500mb")); break; case "1gb": - findPreference("autoclearcache").setSummary("Очищать кеш при не менее 1 Гб"); + findPreference("autoclearcache").setSummary(AndroidUtils.getString("cache_1gb")); break; case "2gb": - findPreference("autoclearcache").setSummary("Очищать кеш при не менее 2 Гб"); + findPreference("autoclearcache").setSummary(AndroidUtils.getString("cache_2gb")); break; case "5gb": - findPreference("autoclearcache").setSummary("Очищать кеш при не менее 5 Гб"); + findPreference("autoclearcache").setSummary(AndroidUtils.getString("cache_5gb")); break; } @@ -185,12 +192,12 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { five.setChecked(val == 5); VkAlertDialog.Builder builder = new VkAlertDialog.Builder(getContext()); - builder.setTitle("Очистка кеша"); - builder.setMessage("Выберите объём кеша для очистки"); + builder.setTitle(AndroidUtils.getString("cache_clean_title")); + builder.setMessage(AndroidUtils.getString("cache_select_size")); builder.setCancelable(true); - builder.setNegativeButton("Отмена", null); + builder.setNegativeButton(AndroidUtils.getString("cancel"), null); builder.setView(rg); - builder.setPositiveButton("Сохранить", (dialog, which) -> { + builder.setPositiveButton(AndroidUtils.getString("save"), (dialog, which) -> { var pref = getDefaultPrefs().edit(); var checked = rg.getCheckedRadioButtonId(); @@ -221,8 +228,8 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { private void cacheCleanDialog() { VkAlertDialog.Builder builder = new VkAlertDialog.Builder(getContext()); - builder.setTitle("Выберите что вы хотите очистить"); - builder.setItems(new String[]{"Очистить весь кеш", "Очистить кеш стикеров", "Очистить кеш изображений", "Очистить кеш видео", "Очистить кеш сообщений", "Очистить кеш WebView"}, (dialog, which) -> { + builder.setTitle(AndroidUtils.getString("select_which_clean")); + builder.setItems(AndroidUtils.getArray("cache_cleaner"), (dialog, which) -> { switch (which) { case 0: { SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE); @@ -237,7 +244,6 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { ImEngineExt.a(ImEngine1.a()); AutoPlayCacheHolder.d.a(); MediaStorage.a(); - deleteCache(); break; } case 1: { @@ -264,7 +270,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { break; } - Toast.makeText(getContext(), "Кеш очищен", LENGTH_SHORT).show(); + Toast.makeText(getContext(), AndroidUtils.getString("cache_cleaned"), LENGTH_SHORT).show(); }); builder.create().show(); } @@ -283,7 +289,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { try { backupOnlines(); } catch (IOException e) { - Toast.makeText(getContext(), "Нет данных для резервного копирования", LENGTH_SHORT).show(); + Toast.makeText(getContext(), AndroidUtils.getString("no_data_to_backup"), LENGTH_SHORT).show(); } return true; } @@ -353,14 +359,14 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment { var arr = BackupManager.getBackupsNames(); var adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, arr); new VkAlertDialog.Builder(getContext()) - .setTitle("Выберите бэкап") + .setTitle(AndroidUtils.getString("select_backup")) .setAdapter(adapter, (dialog, which) -> { try { restoreBackup(arr[which]); - Toast.makeText(getContext(), "Настройки восстановлены", LENGTH_LONG).show(); + Toast.makeText(getContext(), AndroidUtils.getString("backup_success"), LENGTH_LONG).show(); } catch (IOException e) { e.printStackTrace(); - Toast.makeText(getContext(), "Ошибка, Настройки не восстановлены", LENGTH_LONG).show(); + Toast.makeText(getContext(), AndroidUtils.getString("backup_error"), LENGTH_LONG).show(); } }).create().show(); return true; diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java index 84b74cc20..b57dafd83 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java @@ -1,15 +1,30 @@ package ru.vtosters.lite.ui.fragments; +import static ru.vtosters.lite.proxy.RandomProxy.setupNewProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; +import static ru.vtosters.lite.utils.AndroidUtils.sendToast; import android.os.Bundle; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import java.io.IOException; + +import ru.vtosters.lite.proxy.RandomProxy; + public class ProxySettingsFragment extends MaterialPreferenceToolbarFragment { @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); addPreferencesFromResource(getIdentifier("preferences_proxy", "xml")); + findPreference("random_proxy").setOnPreferenceClickListener(preference -> { + try { + setupNewProxy(); + } catch (IOException e) { + sendToast("Ошибка при получении прокси"); + } + return true; + }); } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/SuperAppEditorFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/SuperAppEditorFragment.java index e6d3e44a7..42ed38119 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/SuperAppEditorFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/SuperAppEditorFragment.java @@ -4,6 +4,7 @@ import static ru.vtosters.lite.utils.AndroidUtils.dp2px; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; import static ru.vtosters.lite.utils.LifecycleUtils.restartApplication; +import android.os.Build; import android.os.Bundle; import android.view.ContextThemeWrapper; import android.view.Gravity; @@ -46,9 +47,9 @@ public class SuperAppEditorFragment extends BaseToolbarFragment { message.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); message.setTextColor(ThemesUtils.getTextAttr()); message.setPadding( - AndroidUtils.dp2px(10), - AndroidUtils.dp2px(10), - AndroidUtils.dp2px(10), + dp2px(10), + dp2px(10), + dp2px(10), 0 ); container.addView(message, LayoutUtils.createLinear(-1, -2)); @@ -94,16 +95,29 @@ public class SuperAppEditorFragment extends BaseToolbarFragment { : manager.getDisabledTabs().get(pos - manager.getSelectedTabs().size() - 2); holder.bindMovingItem(item.title); }); - manager.getSelectedTabs().forEach(item -> { - if (item.type.equals("menu")) - adapter.addUnmovedItem(item); - }); - manager.getDisabledTabs().forEach(item -> { - if (item.type.equals("menu")) - adapter.addUnmovedItem(item); - }); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + manager.getSelectedTabs().forEach(item -> { + if (item.type.equals("menu")) + adapter.addUnmovedItem(item); + }); - var recyclerView = new RecyclerView(getContext()); + manager.getDisabledTabs().forEach(item -> { + if (item.type.equals("menu")) + adapter.addUnmovedItem(item); + }); + } else { + for (var item : manager.getSelectedTabs()) { + if (item.type.equals("menu")) + adapter.addUnmovedItem(item); + } + + for (var item : manager.getDisabledTabs()) { + if (item.type.equals("menu")) + adapter.addUnmovedItem(item); + } + } + + var recyclerView = new RecyclerView(requireContext()); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); recyclerView.setAdapter(adapter); recyclerView.setHasFixedSize(true); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index 9bb91ae7a..d49bd4ea3 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -65,8 +65,6 @@ import ru.vtosters.lite.utils.CacheUtils; import ru.vtosters.lite.utils.SSFSUtils; public class VTSettings extends MaterialPreferenceToolbarFragment { - public int hideitems = 0; - public static String getValAsString(String stringid, Boolean value) { if (disableSettingsSumms()) return null; @@ -116,7 +114,7 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { public static String getSuperappsumm() { if (disableSettingsSumms()) return null; - return "Скрыто элементов" + ": " + SuperAppEditorManager.getInstance().getDisabledTabs().size(); + return AndroidUtils.getString("elements_hidden_count") + ": " + SuperAppEditorManager.getInstance().getDisabledTabs().size(); } public static String getCachesumm() { @@ -332,7 +330,7 @@ public class VTSettings extends MaterialPreferenceToolbarFragment { }); } } else { - addPreference(this, "", "Внимание!", "Некоторые пункты настроек были скрыты из-за режима VK Me \n\nДля отключения режима перейдите в настройки Сообщений", "ic_about_outline_28", preference -> false); + addPreference(this, "", AndroidUtils.getString("debug_warning"), AndroidUtils.getString("vkme_mode_info"), "ic_about_outline_28", preference -> false); } addPreference(this, "", AndroidUtils.getString("vtlmedia"), mediasumm, "ic_media_outline_28", preference -> { diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java index d3bb91c90..fecab7839 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/tgstickers/StickersFragment.java @@ -40,6 +40,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.vk.navigation.Navigator; import java.io.File; +import java.util.Objects; import ru.vtosters.lite.tgs.TGPref; import ru.vtosters.lite.ui.adapters.StickerPackAdapter; @@ -47,7 +48,6 @@ import ru.vtosters.lite.ui.fragments.BaseToolbarFragment; import ru.vtosters.lite.utils.AndroidUtils; public class StickersFragment extends BaseToolbarFragment { - public final static String ACTION_RELOAD = "com.vtosters.lite.action.RELOAD_TGS_LIST"; private final static int TYPE_DIRECT = 0, TYPE_SOCKS = 2; @@ -147,7 +147,7 @@ public class StickersFragment extends BaseToolbarFragment { @Override public void onDestroyView() { super.onDestroyView(); - getContext().unregisterReceiver(mReceiver); + requireContext().unregisterReceiver(mReceiver); } private void fabClick() { diff --git a/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java b/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java index 70fd6fc18..653f54e78 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java +++ b/app/src/main/java/ru/vtosters/lite/ui/vkui/MenuBuilder.java @@ -24,6 +24,7 @@ import java.util.Objects; import kotlin.Unit; import kotlin.jvm.b.Functions; +import ru.vtosters.lite.utils.AndroidUtils; import ru.vtosters.lite.utils.RenameTool; public class MenuBuilder { @@ -55,17 +56,17 @@ public class MenuBuilder { final ExtendedUserProfile eup = (ExtendedUserProfile) pfambObject.get(mb); final Context ctx = ((View) Objects.requireNonNull(apView.get(builder))).getContext(); - addItem(builder, "Скопировать ID", () -> { + addItem(builder, AndroidUtils.getString("menu_copy_id"), () -> { copy(ctx, String.valueOf(getUserID(eup))); return Unit.a; }); - addItem(builder, "Дополнительная информация", () -> { + addItem(builder, AndroidUtils.getString("menu_addon_info"), () -> { loadAndShow(ctx, getUserID(eup)); return Unit.a; }); - addItem(builder, "Изменить имя", () -> { + addItem(builder, AndroidUtils.getString("menu_change_name"), () -> { RenameTool.createDialog(eup, ctx); return Unit.a; }); @@ -80,12 +81,12 @@ public class MenuBuilder { final ExtendedCommunityProfile ecp = (ExtendedCommunityProfile) cfambObject.get(mb); final Context ctx = ((View) apView.get(builder)).getContext(); - addItem(builder, "Скопировать ID", () -> { + addItem(builder, AndroidUtils.getString("menu_copy_id"), () -> { copy(ctx, String.valueOf(getUserID(ecp))); return Unit.a; }); - addItem(builder, "Изменить имя", () -> { + addItem(builder, AndroidUtils.getString("menu_change_name"), () -> { RenameTool.createDialogGroup(ecp, ctx); return Unit.a; }); @@ -100,7 +101,7 @@ public class MenuBuilder { ClipData clip = ClipData.newPlainText("MBH-ST", txt); clipboard.setPrimaryClip(clip); - sendToast("Скопировано!"); + sendToast(AndroidUtils.getString("menu_copied")); } public static void addItem(final ActionsPopup.b builder, final String title, final Functions onClick) throws InvocationTargetException, IllegalAccessException { diff --git a/app/src/main/java/ru/vtosters/lite/ui/vkui/VBListBuilder.java b/app/src/main/java/ru/vtosters/lite/ui/vkui/VBListBuilder.java new file mode 100644 index 000000000..5d2c44118 --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/ui/vkui/VBListBuilder.java @@ -0,0 +1,50 @@ +package ru.vtosters.lite.ui.vkui; +import static ru.vtosters.lite.utils.AndroidUtils.dp2px; +import static ru.vtosters.lite.utils.ThemesUtils.getTextAttr; + +import android.content.Context; +import android.util.TypedValue; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.LinearLayout; + +import java.util.List; + +public class VBListBuilder{ + public static ViewGroup buildListOf(Context ctx, List items){ + LinearLayout mainView = new LinearLayout(ctx); + mainView.setOrientation(LinearLayout.VERTICAL); + mainView.setPadding(dp2px(8f), 0, dp2px(8f), 0); + + for (VBListItem item : items) { + CheckBox mcb = new CheckBox(ctx, null); + mcb.setPadding(0, dp2px(8f), 0, dp2px(8f)); + + mcb.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14f); + mcb.setTextColor(getTextAttr()); + + mcb.setChecked(item.checked); + mcb.setText(item.title); + + mcb.setOnCheckedChangeListener((buttonView, isChecked) -> { + item.checked = isChecked; + }); + + mainView.addView(mcb); + } + + return mainView; + } + + public static class VBListItem{ + public String id; + public String title; + public boolean checked; + + public VBListItem(String id, String title, boolean checked){ + this.id = id; + this.title = title; + this.checked = checked; + } + } +} diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java index dfe8fbbfb..1372564bf 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java @@ -31,6 +31,7 @@ import java.io.InputStream; import java.io.OutputStream; import ru.vtosters.lite.ui.PreferencesUtil; +import ru.vtosters.lite.utils.AndroidUtils; public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { @@ -56,20 +57,20 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { int vtosterXml = getIdentifier("empty", "xml"); addPreferencesFromResource(vtosterXml); - PreferencesUtil.addPreferenceCategory(this, "Предпросмотр"); + PreferencesUtil.addPreferenceCategory(this, AndroidUtils.getString("vkim_settings_appearance_chat_preview_title")); mWPPreviewPref = new WallpaperPreferences(getContext()); mWPPreviewPref.setIcon(null); mWPPreviewPref.setIconSpaceReserved(false); getPreferenceScreen().addPreference(mWPPreviewPref); - PreferencesUtil.addPreference(this, "wp_set", "Выбрать обои", "из галереи", "ic_picture_outline_28", preference -> { + PreferencesUtil.addPreference(this, "wp_set", AndroidUtils.getString("wallpaper_select"), AndroidUtils.getString("wallpaper_from_gallery"), "ic_picture_outline_28", preference -> { startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI), 1488); removeStickCache(); return true; }); - PreferencesUtil.addPreference(this, "wp_clear", "Удалить обои", "", "ic_delete_outline_28", preference -> { + PreferencesUtil.addPreference(this, "wp_clear", AndroidUtils.getString("wallpaper_remove"), "", "ic_delete_outline_28", preference -> { removeWallpaper(); requestUpdateWallpaper(); mWPPreviewPref.redraw(); @@ -77,36 +78,30 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addPreferenceCategory(this, "Фильтры"); + PreferencesUtil.addPreferenceCategory(this, AndroidUtils.getString("vtlfilters")); if (!hasVerification() && !getBoolValue("dialogrecomm", false)) { - PreferencesUtil.addPreference(this, "", "Доступны не все фильтры!", "Для разблокировки необходимо сделать пожертование от 99р", null, preference -> { - getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app"))); + PreferencesUtil.addPreference(this, "", AndroidUtils.getString("filters_warning"), AndroidUtils.getString("icons_warning_info"), null, preference -> { + getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app/donate/"))); return false; }); } - PreferencesUtil.addListPreference(this, "msg_blur_radius", "disabled", "Размытие фона сообщений", new CharSequence[]{ - "Отключено", "Низкое (15px)", "Среднее (25px)", "Высокое (50px)" - }, new String[]{ + PreferencesUtil.addListPreference(this, "msg_blur_radius", "disabled", AndroidUtils.getString("filter_blur"), AndroidUtils.getArray("filter_types"), new String[]{ "disabled", "low", "med", "high" }); - PreferencesUtil.addListPreference(this, "msg_dim", "off", "Затемнение изображения", new CharSequence[]{ - "Отключено", "Затемнить", "Осветлить" - }, new String[]{ + PreferencesUtil.addListPreference(this, "msg_dim", "off", AndroidUtils.getString("filter_dim"), AndroidUtils.getArray("filter_dim_types"), new String[]{ "off", "dim_black", "dim_white" }); - PreferencesUtil.addListPreference(this, "msg_mosaic", "disabled", "Мозаика", new CharSequence[]{ - "Отключено", "Низкое", "Среднее", "Высокое" - }, new String[]{ + PreferencesUtil.addListPreference(this, "msg_mosaic", "disabled", AndroidUtils.getString("filter_mosaic"), AndroidUtils.getArray("filter_types"), new String[]{ "disabled", "low", "med", "high" }); if (hasVerification()) { - PreferencesUtil.addMaterialSwitchPreference(this, "msg_monochrome", "Черно-белый фон", "", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_monochrome", AndroidUtils.getString("filter_monochrome"), "", null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_monochrome", value).commit(); requestUpdateWallpaper(); @@ -114,7 +109,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_invert", "Инвертировать цвета", "", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_invert", AndroidUtils.getString("filter_invert_colors"), "", null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_invert", value).commit(); requestUpdateWallpaper(); @@ -122,7 +117,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_sepia", "Эффект сепии", "", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_sepia", AndroidUtils.getString("filter_sepia"), "", null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_sepia", value).commit(); requestUpdateWallpaper(); @@ -130,7 +125,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_emboss", "Emboss фильтр", "Возможна нагрузка на устройство", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_emboss", AndroidUtils.getString("filter_emboss"), AndroidUtils.getString("filter_maybe_lag"), null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_emboss", value).commit(); requestUpdateWallpaper(); @@ -138,7 +133,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_engrave", "Engrave фильтр", "Возможна нагрузка на устройство", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_engrave", AndroidUtils.getString("filter_engrave"), AndroidUtils.getString("filter_maybe_lag"), null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_engrave", value).commit(); requestUpdateWallpaper(); @@ -146,7 +141,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_flea", "Flea фильтр", "", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_flea", AndroidUtils.getString("filter_flea"), "", null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_flea", value).commit(); requestUpdateWallpaper(); @@ -154,7 +149,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { return true; }); - PreferencesUtil.addMaterialSwitchPreference(this, "msg_snow", "Эффект снега", "", null, false, (preference, o) -> { + PreferencesUtil.addMaterialSwitchPreference(this, "msg_snow", AndroidUtils.getString("filter_flea"), "", null, false, (preference, o) -> { boolean value = (boolean) o; edit().putBoolean("msg_snow", value).commit(); requestUpdateWallpaper(); @@ -223,7 +218,6 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment { private void removeStickCache() { SharedPreferences prefs2 = getContext().getSharedPreferences("stickers_storage", Context.MODE_PRIVATE); prefs2.edit().clear().apply(); - deleteCache(); ImEngineProvider.b().a(); } diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperPreferences.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperPreferences.java index 58b326bab..df2329e4a 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperPreferences.java +++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperPreferences.java @@ -5,6 +5,7 @@ import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getWallpaperFile; import static ru.vtosters.lite.utils.AndroidUtils.dp2px; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.AttributeSet; @@ -64,6 +65,7 @@ public class WallpaperPreferences extends Preference { mChatBackground.setImageDrawable(null); } + @SuppressLint("NotifyDataSetChanged") void redraw() { mAdapter.notifyDataSetChanged(); requestBg(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java index d6d7978de..d512711cc 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java +++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java @@ -10,11 +10,18 @@ import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; import static ru.vtosters.lite.utils.Preferences.hasVerification; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.view.View; import android.widget.ImageView; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +import ru.vtosters.lite.utils.AndroidUtils; public class WallpapersHooks { private static File mWallpaperFile; @@ -23,7 +30,28 @@ public class WallpapersHooks { private static boolean mUpdateWallpaperRequested = true; public static File getWallpaperFile() { - return mWallpaperFile == null ? mWallpaperFile = new File(getGlobalContext().getFilesDir(), "wallpaper.png") : mWallpaperFile; + return mWallpaperFile == null ? mWallpaperFile = compressFile(new File(getGlobalContext().getFilesDir(), "wallpaper.png")) : mWallpaperFile; + } + + public static File compressFile(File file) { + Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); + File compressedFile = new File(file.getParent(), file.getName()); + OutputStream out = null; + try { + out = new FileOutputStream(compressedFile); + bitmap.compress(Bitmap.CompressFormat.PNG, 95, out); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (out != null) { + out.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return compressedFile; } public static void setBg(View view) { @@ -91,13 +119,13 @@ public class WallpapersHooks { String radius = getPreferences().getString("msg_blur_radius", "disabled"); switch (radius) { case "low": - return "Низкое"; + return AndroidUtils.getString("wallpapers_low"); case "med": - return "Среднее"; + return AndroidUtils.getString("wallpapers_med"); case "high": - return "Высокое"; + return AndroidUtils.getString("wallpapers_high"); default: - return "Отключено"; + return AndroidUtils.getString("wallpapers_disabled"); } } @@ -105,11 +133,11 @@ public class WallpapersHooks { String radius = getPreferences().getString("msg_dim", "disabled"); switch (radius) { case "dim_black": - return "Затемнить"; + return AndroidUtils.getString("wallpapers_dim_black"); case "dim_white": - return "Осветлить"; + return AndroidUtils.getString("wallpapers_dim_white"); default: - return "Отключено"; + return AndroidUtils.getString("wallpapers_disabled"); } } @@ -117,13 +145,13 @@ public class WallpapersHooks { String radius = getPreferences().getString("msg_mosaic", "disabled"); switch (radius) { case "low": - return "Низкое"; + return AndroidUtils.getString("wallpapers_low"); case "med": - return "Среднее"; + return AndroidUtils.getString("wallpapers_med"); case "high": - return "Высокое"; + return AndroidUtils.getString("wallpapers_high"); default: - return "Отключено"; + return AndroidUtils.getString("wallpapers_disabled"); } } diff --git a/app/src/main/java/ru/vtosters/lite/utils/About.java b/app/src/main/java/ru/vtosters/lite/utils/About.java index 8cbf0a867..b171835bd 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/About.java +++ b/app/src/main/java/ru/vtosters/lite/utils/About.java @@ -22,10 +22,10 @@ public class About { public static void injectToToolBar(View view) { view.setOnLongClickListener(v -> { if (devmenu()) { - sendToast("Меню для разработчиков уже активировано"); + sendToast(AndroidUtils.getString("debug_menu_already_activated")); } else { edit().putBoolean("devmenu", true).apply(); - sendToast("Меню для разработчиков активировано"); + sendToast(AndroidUtils.getString("debug_menu_activated")); } return true; }); diff --git a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java index 0e8bffa8d..ce67c19f1 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java @@ -42,7 +42,7 @@ public class AndroidUtils { @NonNull public static Context getGlobalContext() { try { - return (Context) ReflectionUtils.invokeStaticMethod("android.app.AppGlobals", "getInitialApplication"); + return ReflectionUtils.invokeStaticMethod("android.app.AppGlobals", "getInitialApplication"); } catch (Exception e) { e.printStackTrace(); } @@ -63,6 +63,10 @@ public class AndroidUtils { return 0; } // Get res id + public static String[] getArray(String resourcename) { + return getResources().getStringArray(getIdentifier(resourcename, "array")); + } // Get array from arrays.xml + public static String getString(String resourcename) { return getGlobalContext().getString(getIdentifier(resourcename, "string")); } // Get string via getIdentifier diff --git a/app/src/main/java/ru/vtosters/lite/utils/CacheUtils.java b/app/src/main/java/ru/vtosters/lite/utils/CacheUtils.java index c4b4031a4..01a0704b9 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/CacheUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/CacheUtils.java @@ -7,9 +7,21 @@ import static ru.vtosters.lite.utils.Preferences.getSizeForDelete; import android.annotation.SuppressLint; +import com.vk.im.engine.ImEngine1; +import com.vk.im.engine.ImEngineExt; +import com.vk.im.ui.providers.audiomsg.ImAudioMsgPlayerProvider; +import com.vk.im.ui.providers.audiomsg.PlayerActionSources; +import com.vk.imageloader.VKImageLoader; +import com.vk.media.player.cache.AutoPlayCacheHolder; +import com.vk.mediastore.MediaStorage; +import com.vk.stickers.Stickers; +import com.vtosters.lite.im.ImEngineProvider; + import java.text.CharacterIterator; import java.text.StringCharacterIterator; +import b.h.g.m.FileUtils; + public class CacheUtils { private static CacheUtils sInstance = new CacheUtils(); public long size = 0; @@ -44,8 +56,14 @@ public class CacheUtils { size = IOUtils.getDirSize(getGlobalContext().getCacheDir()); if (size >= getSizeForDelete()) { - if (dev()) sendToast("Кеш очищен"); - deleteCache(); + if (dev()) sendToast(AndroidUtils.getString("cache_cleaned")); + VKImageLoader.e(); + ImAudioMsgPlayerProvider.b().e(PlayerActionSources.a); + ImAudioMsgPlayerProvider.b().d(PlayerActionSources.a); + FileUtils.l(); + Stickers.l.c(); + ImEngineExt.a(ImEngine1.a()); + AutoPlayCacheHolder.d.a(); size = 0; } } diff --git a/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java b/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java index 3d79533aa..dca9be775 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java +++ b/app/src/main/java/ru/vtosters/lite/utils/DeletedMessagesHandler.java @@ -7,9 +7,7 @@ import static ru.vtosters.lite.utils.Preferences.getBoolValue; import android.annotation.SuppressLint; import android.content.ContentValues; import android.database.Cursor; -import android.text.TextUtils; -import com.vk.im.engine.ImEnvironment; import com.vk.im.engine.events.OnMsgUpdateEvent; import com.vk.im.engine.internal.longpoll.tasks.MsgDeleteLpTask; import com.vk.im.engine.internal.storage.StorageEnvironment; @@ -75,36 +73,37 @@ public class DeletedMessagesHandler { } private static String getPrefixUndelete() { - return getPrefsValue("undeletemsg_prefix_value") + " "; + var prefs = getPrefsValue("undeletemsg_prefix_value"); + + if (prefs.isEmpty()) { + return "\uD83D\uDDD1 "; + } + + return prefs + " "; } public static void updateDialog(MsgDeleteLpTask msgDeleteLpTask) throws NoSuchFieldException, IllegalAccessException { - Cursor c = getMessageFromDatabaseById(ReflectionUtils.getObjectField(msgDeleteLpTask.getClass(), "d", msgDeleteLpTask)); - if (c == null) return; + var cursor = getMessageFromDatabaseById(msgDeleteLpTask.d); + if (cursor == null) return; @SuppressLint("Range") - int localId = c.getInt(c.getColumnIndex("local_id")); + int localId = cursor.getInt(cursor.getColumnIndex("local_id")); - String str = DeletedMessagesHandler.class.getSimpleName(); - var imEnvironment = (ImEnvironment) ReflectionUtils.getObjectField(msgDeleteLpTask.getClass(), "b", msgDeleteLpTask); - var cint = (int) ReflectionUtils.getObjectField(msgDeleteLpTask.getClass(), "c", msgDeleteLpTask); - imEnvironment.a(str, new OnMsgUpdateEvent(str, cint, localId)); + var className = DeletedMessagesHandler.class.getSimpleName(); + var imEnvironment = msgDeleteLpTask.b; + var cint = msgDeleteLpTask.c; + imEnvironment.a(className, new OnMsgUpdateEvent(className, cint, localId)); } - public static void hookDeletedMessageId(MsgDeleteLpTask msgDeleteLpTask) throws NoSuchFieldException, IllegalAccessException { + public static void hookDeletedMessageId(MsgDeleteLpTask msgDeleteLpTask) { if (!hook()) return; - var field = msgDeleteLpTask.getClass().getDeclaredField("c"); - field.setAccessible(true); - var messageId = (int) field.get(msgDeleteLpTask); + var messageId = msgDeleteLpTask.d; Cursor c = getMessageFromDatabaseById(messageId); if (c == null) return; + if (sBodyIndex == -1) sBodyIndex = c.getColumnIndex("body"); - if (TextUtils.isEmpty(c.getString(sBodyIndex))) { - deleteMessageFromDB(messageId); - return; - } sDeletedMessagesList.add(messageId); sVTDatabase.saveDeletedMessage(messageId); diff --git a/app/src/main/java/ru/vtosters/lite/utils/FileUriUtils.java b/app/src/main/java/ru/vtosters/lite/utils/FileUriUtils.java new file mode 100644 index 000000000..4c7ef068f --- /dev/null +++ b/app/src/main/java/ru/vtosters/lite/utils/FileUriUtils.java @@ -0,0 +1,119 @@ +package ru.vtosters.lite.utils; + +import android.annotation.TargetApi; +import android.content.Context; +import android.net.Uri; +import android.os.Build; +import android.os.storage.StorageManager; +import android.os.storage.StorageVolume; +import android.provider.DocumentsContract; + +import androidx.annotation.Nullable; + +import java.io.File; +import java.lang.reflect.Array; +import java.lang.reflect.Method; +import java.util.List; + +// https://stackoverflow.com/questions/34927748/android-5-0-documentfile-from-tree-uri/36162691#36162691 + +public final class FileUriUtils { + + private static final String PRIMARY_VOLUME_NAME = "primary"; + + @Nullable + public static String getFullPathFromTreeUri(@Nullable final Uri treeUri, Context con) { + if (treeUri == null) return null; + String volumePath = getVolumePath(getVolumeIdFromTreeUri(treeUri),con); + if (volumePath == null) return File.separator; + if (volumePath.endsWith(File.separator)) + volumePath = volumePath.substring(0, volumePath.length() - 1); + + String documentPath = getDocumentPathFromTreeUri(treeUri); + if (documentPath.endsWith(File.separator)) + documentPath = documentPath.substring(0, documentPath.length() - 1); + + if (documentPath.length() > 0) { + if (documentPath.startsWith(File.separator)) + return volumePath + documentPath; + else + return volumePath + File.separator + documentPath; + } + else return volumePath; + } + + + private static String getVolumePath(final String volumeId, Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + return getVolumePathForAndroid11AndAbove(volumeId, context); + else + return getVolumePathBeforeAndroid11(volumeId, context); + } + + + private static String getVolumePathBeforeAndroid11(final String volumeId, Context context){ + try { + StorageManager mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); + Class storageVolumeClazz = Class.forName("android.os.storage.StorageVolume"); + Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList"); + Method getUuid = storageVolumeClazz.getMethod("getUuid"); + Method getPath = storageVolumeClazz.getMethod("getPath"); + Method isPrimary = storageVolumeClazz.getMethod("isPrimary"); + Object result = getVolumeList.invoke(mStorageManager); + + final int length = Array.getLength(result); + for (int i = 0; i < length; i++) { + Object storageVolumeElement = Array.get(result, i); + String uuid = (String) getUuid.invoke(storageVolumeElement); + Boolean primary = (Boolean) isPrimary.invoke(storageVolumeElement); + + if (primary && PRIMARY_VOLUME_NAME.equals(volumeId)) // primary volume? + return (String) getPath.invoke(storageVolumeElement); + + if (uuid != null && uuid.equals(volumeId)) // other volumes? + return (String) getPath.invoke(storageVolumeElement); + } + // not found. + return null; + } catch (Exception ex) { + return null; + } + } + + @TargetApi(Build.VERSION_CODES.R) + private static String getVolumePathForAndroid11AndAbove(final String volumeId, Context context) { + try { + StorageManager mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); + List storageVolumes = mStorageManager.getStorageVolumes(); + for (StorageVolume storageVolume : storageVolumes) { + // primary volume? + if (storageVolume.isPrimary() && PRIMARY_VOLUME_NAME.equals(volumeId)) + return storageVolume.getDirectory().getPath(); + + // other volumes? + String uuid = storageVolume.getUuid(); + if (uuid != null && uuid.equals(volumeId)) + return storageVolume.getDirectory().getPath(); + + } + // not found. + return null; + } catch (Exception ex) { + return null; + } + } + + private static String getVolumeIdFromTreeUri(final Uri treeUri) { + final String docId = DocumentsContract.getTreeDocumentId(treeUri); + final String[] split = docId.split(":"); + if (split.length > 0) return split[0]; + else return null; + } + + private static String getDocumentPathFromTreeUri(final Uri treeUri) { + final String docId = DocumentsContract.getTreeDocumentId(treeUri); + final String[] split = docId.split(":"); + if ((split.length >= 2) && (split[1] != null)) return split[1]; + else return File.separator; + } +} diff --git a/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java index 632e800d1..32cdb5694 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java @@ -3,12 +3,14 @@ package ru.vtosters.lite.utils; import static android.graphics.Bitmap.createBitmap; import static android.graphics.Bitmap.createScaledBitmap; import static androidx.core.content.ContextCompat.getDrawable; +import static ru.vtosters.lite.utils.Preferences.preferences; import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import android.graphics.RectF; @@ -27,7 +29,7 @@ import okhttp3.Response; public class ImageUtils { - private static OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = new OkHttpClient(); public static Bitmap bmp = null; @@ -105,15 +107,21 @@ public class ImageUtils { final int width = bitmap.getWidth(); final int height = bitmap.getHeight(); final Bitmap outputBitmap = createBitmap(width, height, Bitmap.Config.ARGB_8888); + int pref = preferences.getInt("pic_rounding", 0); + final Canvas canvas = new Canvas(outputBitmap); final Path path = new Path(); - path.addCircle( - (float) (width / 2), - (float) (height / 2), - (float) Math.min(width, (height / 2)), - Path.Direction.CCW); - final Canvas canvas = new Canvas(outputBitmap); + if (pref > 0) { + path.addRoundRect(new RectF(0, 0, width, height), pref, pref, Path.Direction.CCW); + } else { + path.addCircle( + (float) (width / 2), + (float) (height / 2), + (float) Math.min(width, (height / 2)), + Path.Direction.CCW); + } + canvas.clipPath(path); canvas.drawBitmap(bitmap, 0, 0, null); return outputBitmap; diff --git a/app/src/main/java/ru/vtosters/lite/utils/LifecycleUtils.java b/app/src/main/java/ru/vtosters/lite/utils/LifecycleUtils.java index 47882cba5..9f9d1486b 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/LifecycleUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/LifecycleUtils.java @@ -21,10 +21,12 @@ public class LifecycleUtils { application.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() { @Override // android.app.Application.ActivityLifecycleCallbacks public void onActivityPaused(Activity activity) { + activities.remove(activity); } @Override // android.app.Application.ActivityLifecycleCallbacks public void onActivityResumed(Activity activity) { + activities.add(activity); } @Override // android.app.Application.ActivityLifecycleCallbacks @@ -70,16 +72,11 @@ public class LifecycleUtils { public static void restartApplicationWithTimer() { Handler handler = new Handler(); - handler.postDelayed(new Runnable() { - public void run() { - restartApplication(); - } - }, 500); + handler.postDelayed(LifecycleUtils::restartApplication, 500); } public static void restartApplicationInto(Class Class) { Context ctx = AndroidUtils.getGlobalContext(); - PackageManager pm = ctx.getPackageManager(); Intent intent = new Navigator(Class).b(ctx); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/java/ru/vtosters/lite/utils/NewsFeedFiltersUtils.java b/app/src/main/java/ru/vtosters/lite/utils/NewsFeedFiltersUtils.java index 322a399f7..d75401571 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/NewsFeedFiltersUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/NewsFeedFiltersUtils.java @@ -27,10 +27,12 @@ import ru.vtosters.lite.hooks.JsonInjectors; public class NewsFeedFiltersUtils { public static List mFilters; + public static List mFiltersNames; public static List mFiltersLinks; public static void setupFilters() { mFilters = new ArrayList<>(); + mFiltersNames = new ArrayList<>(); mFiltersLinks = new ArrayList<>(); getFilter("refsfilter", "Referals.txt", mFilters); @@ -41,12 +43,17 @@ public class NewsFeedFiltersUtils { var customFilters = getPrefsValue("spamfilters"); if (!customFilters.isEmpty()) { - mFilters.addAll(Arrays.asList(customFilters.split(", "))); + mFilters.addAll(Arrays.asList(customFilters.toLowerCase().split(", "))); + } + + var sourceNameFilter = getPrefsValue("sourcenamefilter"); + if (!sourceNameFilter.isEmpty()) { + mFiltersNames.addAll(Arrays.asList(sourceNameFilter.toLowerCase().split(", "))); } var linkFilter = getPrefsValue("linkfilter"); if (!linkFilter.isEmpty()) { - mFiltersLinks.addAll(Arrays.asList(linkFilter.split(", "))); + mFiltersLinks.addAll(Arrays.asList(linkFilter.toLowerCase().split(", "))); } } @@ -99,11 +106,15 @@ public class NewsFeedFiltersUtils { if (copyright_post()) return true; var copyright = json.optJSONObject("copyright"); + var copyrightName = copyright.getString("name").toLowerCase(); var copyrightLink = copyright.getString("link").toLowerCase(); + + for (String filter : mFiltersNames) { + if (copyrightName.contains(filter)) return true; + } + for (String filter : mFiltersLinks) { - if (copyrightLink.contains(filter)) { - return true; - } + if (copyrightLink.contains(filter)) return true; } } return false; diff --git a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java index 2147789f7..2eb0211fc 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Preferences.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Preferences.java @@ -3,11 +3,12 @@ package ru.vtosters.lite.utils; import static java.lang.Long.MAX_VALUE; import static ru.vtosters.lite.utils.AndroidUtils.edit; import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; +import static ru.vtosters.lite.utils.AndroidUtils.getPreferences; import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; import static ru.vtosters.lite.utils.CacheUtils.getInstance; import static ru.vtosters.lite.utils.DeletedMessagesHandler.reloadMessagesList; import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.setupFilters; -import static ru.vtosters.lite.utils.ProxyUtils.setProxy; +import static ru.vtosters.lite.proxy.ProxyUtils.setProxy; import static ru.vtosters.lite.utils.SignatureChecker.validateAppSignature; import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme; import static ru.vtosters.lite.utils.VTVerifications.isPrometheus; @@ -17,11 +18,13 @@ import android.app.Application; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.os.Environment; import android.preference.PreferenceManager; import com.vtosters.lite.data.Users; import com.vtosters.lite.fragments.SettingsListFragment; +import java.io.File; import java.security.NoSuchAlgorithmException; import ru.vtosters.lite.ui.fragments.VTSettings; @@ -149,10 +152,6 @@ public class Preferences { return getBoolValue("calls", false); } - public static boolean globalUsersOnline() { - return getBoolValue("globalUsersOnline", false); - } - public static boolean dev() { return getBoolValue("dev", false); } @@ -356,6 +355,10 @@ public class Preferences { return isPrometheus(AccountManagerUtils.getUserId()); } + public static boolean isLikesOnRightEnabled() { + return getBoolValue("is_likes_on_right", false); + } + public static long getSizeForDelete() { switch (getPrefsValue("clearcache")) { case "100mb": @@ -379,4 +382,28 @@ public class Preferences { } return origquality; } + + public static File getDownloadsDir() { + return new File(getPreferences().getString( + "downloads_directory", + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath())); + } + + public static File getPhotosDir() { + return new File(getPreferences().getString( + "photos_directory", + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath())); + } + + public static File getVideosDir() { + return new File(getPreferences().getString( + "videos_directory", + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getAbsolutePath())); + } + + public static File getMusicDir() { + return new File(getPreferences().getString( + "music_directory", + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath())); + } } diff --git a/app/src/main/java/ru/vtosters/lite/utils/ProxyUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ProxyUtils.java deleted file mode 100644 index 081a87482..000000000 --- a/app/src/main/java/ru/vtosters/lite/utils/ProxyUtils.java +++ /dev/null @@ -1,203 +0,0 @@ -package ru.vtosters.lite.utils; - -import static java.lang.System.clearProperty; -import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext; -import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import android.util.ArrayMap; -import android.util.Log; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -public class ProxyUtils { - public static String getApi() { - var proxyapi = getPrefsValue("proxyapi"); - - if (apiproxy() & !proxyapi.isEmpty()) { - return proxyapi; - } - - return "api.vk.com"; - } - - public static Boolean isZaboronaEnabled() { - return getPrefsValue("proxy").equals("zaborona"); - } - - private static void setProxyRefl() { - Log.d("Proxy", "Setting proxy..."); - try { - var context = getGlobalContext().getApplicationContext(); - Class applicationClass = Class.forName("android.app.Application"); - @SuppressLint("DiscouragedPrivateApi") @SuppressWarnings("JavaReflectionMemberAccess") - Field mLoadedApkField = applicationClass.getDeclaredField("mLoadedApk"); - mLoadedApkField.setAccessible(true); - Object mLoadedApkObject = mLoadedApkField.get(context); - - @SuppressLint("PrivateApi") - Class loadedApkClass = Class.forName("android.app.LoadedApk"); - @SuppressLint("DiscouragedPrivateApi") Field mReceiversField = loadedApkClass.getDeclaredField("mReceivers"); - mReceiversField.setAccessible(true); - ArrayMap receivers = (ArrayMap) mReceiversField.get(mLoadedApkObject); - for (Object receiverMap : receivers.values()) { - for (Object receiver : ((ArrayMap) receiverMap).keySet()) { - Class receiverClass = receiver.getClass(); - - if (receiverClass.getName().contains("ProxyChangeListener")) { - Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class); - Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION); - onReceiveMethod.invoke(receiver, context, intent); - } else { - for (Field field : receiverClass.getDeclaredFields()) { - if (field.getType().getName().contains("ProxyChangeListener")) { - Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class); - Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION); - onReceiveMethod.invoke(receiver, context, intent); - } - } - } - } - } - - Log.d("Proxy", "Setting proxy successful!"); - } catch (Exception e) { - Log.d("Proxy", "Setting proxy failed!"); - } - } - - public static void setProxy() { - switch (getPrefsValue("proxy")) { - case "zaborona": - System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua"); - System.setProperty("socksProxyPort", "1488"); - setProxyRefl(); - resetProxySocks(); - break; - case "socks": - System.setProperty("socksProxyHost", proxyHostSocks()); - System.setProperty("socksProxyPort", proxyPortSocks()); - setProxyRefl(); - resetProxySocks(); - break; - case "http": - System.setProperty("http.proxyHost", proxyHostHTTP()); - System.setProperty("http.proxyPort", proxyPortHTTP()); - System.setProperty("http.proxyUser", proxyUserHTTP()); - System.setProperty("http.proxyPassword", proxyPassHTTP()); - setProxyRefl(); - resetProxyHttp(); - break; - case "https": - System.setProperty("https.proxyHost", proxyHostHTTPS()); - System.setProperty("https.proxyPort", proxyPortHTTPS()); - System.setProperty("https.proxyUser", proxyUserHTTPS()); - System.setProperty("https.proxyPassword", proxyPassHTTPS()); - setProxyRefl(); - resetProxyHttps(); - break; - default: - resetProxy(); - break; - } - } - - public static void resetProxy() { - clearProperty("https.proxyHost"); - clearProperty("https.proxyPort"); - clearProperty("https.proxyUser"); - clearProperty("https.proxyPassword"); - clearProperty("http.proxyHost"); - clearProperty("http.proxyPort"); - clearProperty("http.proxyUser"); - clearProperty("http.proxyPassword"); - clearProperty("socksProxyHost"); - clearProperty("socksPortHost"); - } // Reset all proxies - - public static void resetProxySocks() { - clearProperty("https.proxyHost"); - clearProperty("https.proxyPort"); - clearProperty("https.proxyUser"); - clearProperty("https.proxyPassword"); - clearProperty("http.proxyHost"); - clearProperty("http.proxyPort"); - clearProperty("http.proxyUser"); - clearProperty("http.proxyPassword"); - } // Reset all except socks - - public static void resetProxyHttp() { - clearProperty("https.proxyHost"); - clearProperty("https.proxyPort"); - clearProperty("https.proxyUser"); - clearProperty("https.proxyPassword"); - clearProperty("socksProxyHost"); - clearProperty("socksPortHost"); - } // Reset all except http - - public static void resetProxyHttps() { - clearProperty("http.proxyHost"); - clearProperty("http.proxyPort"); - clearProperty("http.proxyUser"); - clearProperty("http.proxyPassword"); - clearProperty("socksProxyHost"); - clearProperty("socksPortHost"); - } // Reset all except https - - private static String proxyHostHTTP() { - var string = getPrefsValue("proxyHostHTTP"); - return string.isEmpty() ? "192.168.0.1" : string; - } - - private static String proxyHostHTTPS() { - var string = getPrefsValue("proxyHostHTTPS"); - return string.isEmpty() ? "192.168.0.1" : string; - } - - private static String proxyHostSocks() { - var string = getPrefsValue("proxyHostSocks"); - return string.isEmpty() ? "192.168.0.1" : string; - } - - private static String proxyPortHTTP() { - var string = getPrefsValue("proxyPortHTTP"); - return string.isEmpty() ? "8888" : string; - } - - private static String proxyPortHTTPS() { - var string = getPrefsValue("proxyPortHTTPS"); - return string.isEmpty() ? "8888" : string; - } - - private static String proxyPortSocks() { - var string = getPrefsValue("proxyPortSocks"); - return string.isEmpty() ? "8888" : string; - } - - private static String proxyUserHTTP() { - var string = getPrefsValue("proxyUserHTTP"); - return string.isEmpty() ? "" : string; - } - - private static String proxyUserHTTPS() { - var string = getPrefsValue("proxyUserHTTPS"); - return string.isEmpty() ? "" : string; - } - - private static String proxyPassHTTP() { - var string = getPrefsValue("proxyPassHTTP"); - return string.isEmpty() ? "" : string; - } - - private static String proxyPassHTTPS() { - String string = getPrefsValue("proxyPassHTTPS"); - return string.isEmpty() ? "" : string; - } - - public static boolean apiproxy() { - return getPrefsValue("proxy").equals("apiproxy"); - } -} diff --git a/app/src/main/java/ru/vtosters/lite/utils/RenameTool.java b/app/src/main/java/ru/vtosters/lite/utils/RenameTool.java index 0873e82f7..58bf46da4 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/RenameTool.java +++ b/app/src/main/java/ru/vtosters/lite/utils/RenameTool.java @@ -152,7 +152,7 @@ public class RenameTool { linearLayout.setOrientation(LinearLayout.VERTICAL); final EditText fn = new EditText(ctx); - fn.setHint("Имя"); + fn.setHint(AndroidUtils.getString("vk_auth_sign_up_first_name")); fn.setTextColor(getTextAttr()); fn.setHintTextColor(getSTextAttr()); fn.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); @@ -163,7 +163,7 @@ public class RenameTool { fn.setLayoutParams(margin); final EditText ln = new EditText(ctx); - ln.setHint("Фамилия"); + ln.setHint(AndroidUtils.getString("vk_auth_sign_up_last_name")); ln.setTextColor(getTextAttr()); ln.setHintTextColor(getSTextAttr()); ln.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); @@ -178,8 +178,8 @@ public class RenameTool { int id = AccountManagerUtils.getUserID(profile); AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle()); - builder.setTitle("Смена имени"); - builder.setMessage("Это локальное изменение, которое будет отображатся только в данном клиенте."); + builder.setTitle(AndroidUtils.getString("rename_title")); + builder.setMessage(AndroidUtils.getString("rename_message")); builder.setView(linearLayout); builder.setPositiveButton("OK", (dialog, which) -> { String firstName = fn.getText().toString(); @@ -197,19 +197,20 @@ public class RenameTool { } ctx.sendBroadcast(new Intent("com.vkontakte.android.ACTION_PROFILE_UPDATED").putExtra("uid", id)); - sendToast("Пользователь успешно переименован!"); + sendToast(AndroidUtils.getString("rename_success")); } catch (Exception e) { e.printStackTrace(); + sendToast(AndroidUtils.getString("rename_error")); } }); - if (isChangedName(id)) builder.setNeutralButton("Сбросить", (dialog, which) -> { + if (isChangedName(id)) builder.setNeutralButton(AndroidUtils.getString("rename_reset"), (dialog, which) -> { getHelper().getWritableDatabase().execSQL(String.format("DELETE FROM %s WHERE %s='%s'", TABLE_NAME, COLUMN_VKID, id)); if (id == AccountManagerUtils.getUserId()) { ctx.sendBroadcast(new Intent("com.vkontakte.android.USER_NAME_CHANGED")); } updateRequested = true; ctx.sendBroadcast(new Intent("com.vkontakte.android.ACTION_PROFILE_UPDATED").putExtra("uid", id)); - sendToast("Пользователь успешно удален из базы данных!"); + sendToast(AndroidUtils.getString("rename_remove_from_bd_success")); }); var alert = builder.create(); @@ -225,7 +226,7 @@ public class RenameTool { linearLayout.setOrientation(LinearLayout.VERTICAL); final EditText fn = new EditText(ctx); - fn.setHint("Имя"); + fn.setHint(AndroidUtils.getString("vk_auth_sign_up_first_name")); fn.setHintTextColor(getSTextAttr()); fn.setTextColor(getTextAttr()); fn.setBackgroundTintList(ColorStateList.valueOf(getAccentColor())); @@ -244,8 +245,8 @@ public class RenameTool { final int id = fid; AlertDialog.Builder builder = new AlertDialog.Builder(ctx, getAlertStyle()); - builder.setTitle("Смена имени"); - builder.setMessage("Это локальное изменение, которое будет отображатся только в данном клиенте"); + builder.setTitle(AndroidUtils.getString("rename_title")); + builder.setMessage(AndroidUtils.getString("rename_message")); builder.setView(linearLayout); builder.setPositiveButton("OK", (dialog, which) -> { String firstName = fn.getText().toString(); @@ -257,15 +258,15 @@ public class RenameTool { writableDatabase.execSQL(String.format("INSERT INTO %s (%s, %s) VALUES (%s, '%s')", TABLE_NAME_GROUP, COLUMN_VKID, COLUMN_NAME, id, URLEncoder.encode(firstName, "UTF-8"))); } updateRequested = true; - sendToast("Сообщество успешно переименовано!"); + sendToast(AndroidUtils.getString("rename_group_success")); } catch (Exception e) { e.printStackTrace(); } }); - if (isChangedNameGroup(id)) builder.setNeutralButton("Сбросить", (dialog, which) -> { + if (isChangedNameGroup(id)) builder.setNeutralButton(AndroidUtils.getString("rename_reset"), (dialog, which) -> { getHelper().getWritableDatabase().execSQL(String.format("DELETE FROM %s WHERE %s='%s'", TABLE_NAME_GROUP, COLUMN_VKID, id)); updateRequested = true; - sendToast("Сообщество успешно удалено из базы данных!"); + sendToast(AndroidUtils.getString("rename_remove_group_from_bd_success")); }); var alert = builder.create(); diff --git a/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java b/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java index aa6973966..d854fb575 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/SSFSUtils.java @@ -5,7 +5,7 @@ import static ru.vtosters.lite.utils.About.getBuildNumber; import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue; import static ru.vtosters.lite.utils.Preferences.dev; import static ru.vtosters.lite.utils.Preferences.vksans; -import static ru.vtosters.lite.utils.ProxyUtils.apiproxy; +import static ru.vtosters.lite.proxy.ProxyUtils.isApiProxyEnabled; import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme; public class SSFSUtils { @@ -39,7 +39,7 @@ public class SSFSUtils { } public static String getUserProxy() { - return apiproxy() ? "1" : "0"; + return isApiProxyEnabled() ? "1" : "0"; } public static String isVKSansEnabled() { diff --git a/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java index 9cda8659e..60ecdf909 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/ThemesUtils.java @@ -298,7 +298,11 @@ public class ThemesUtils { if (isColorRefAccented(i) && isAndroidMonet()) { return getAccentColor(); } - return context.getColor(i); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + return context.getColor(i); + } else { + return context.getResources().getColor(i); + } } // Android Support color injector + accent color checker public static int getColor2(int i) { @@ -352,7 +356,7 @@ public class ThemesUtils { } public static String hex(int i) { - return String.format("#%06X", Integer.valueOf(i & 16777215)); + return String.format("#%06X", i & 16777215); } // Get color as hex string public static int getNavigationHeight(int Default) { diff --git a/build.gradle b/build.gradle index f75f1768f..8f8a149c6 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.android.tools.build:gradle:7.2.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 648b950c2..629d28829 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Apr 22 13:33:27 MSK 2022 +#Tue Aug 16 21:49:57 MSK 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/smali/assets/vt_ui_accent.css b/smali/assets/vt_ui_accent.css index 43ab44a2e..82b5fd501 100644 --- a/smali/assets/vt_ui_accent.css +++ b/smali/assets/vt_ui_accent.css @@ -11,9 +11,9 @@ body[scheme=bright_light] { --attach_picker_tab_active_background: %accent% !important; --attach_picker_tab_active_text: %accent% !important; --button_muted_foreground: %accent% !important; - --button_outline_border: %accent% !important; - --button_outline_foreground: %accent% !important; - --button_primary_background: %accent% !important; + --button_outline_border: %button_outline_border% !important; + --button_outline_foreground: %button_outline_foreground% !important; + --button_primary_background: %button_primary_background% !important; --button_secondary_foreground: %accent% !important; --button_tertiary_foreground: %accent% !important; --cell_button_foreground: %accent% !important; @@ -40,7 +40,7 @@ body[scheme=bright_light] { /* backgrounds */ --background_content: %background_content% !important; --background_page: %background_page% !important; - --content_tint_background: %background_page% !important; + --content_tint_background: %content_tint_background% !important; --loader_background: %background_page% !important; --header_background: %header_background% !important; --header_background_before_blur: %header_background% !important; @@ -62,9 +62,9 @@ body[scheme=space_gray] { --attach_picker_tab_active_background: %accent% !important; --attach_picker_tab_active_text: %accent% !important; --button_muted_foreground: %accent% !important; - --button_outline_border: %accent% !important; - --button_outline_foreground: %accent% !important; - --button_primary_background: %accent% !important; + --button_outline_border: %button_outline_border% !important; + --button_outline_foreground: %button_outline_foreground% !important; + --button_primary_background: %button_primary_background% !important; --button_secondary_foreground: %accent% !important; --button_tertiary_foreground: %accent% !important; --cell_button_foreground: %accent% !important; @@ -90,7 +90,7 @@ body[scheme=space_gray] { --dynamic_blue: %accent% !important; --background_content: %background_content% !important; --background_page: %background_page% !important; - --content_tint_background: %background_page% !important; + --content_tint_background: %content_tint_background% !important; --loader_background: %background_page% !important; --header_background: %header_background% !important; --header_background_before_blur: %header_background% !important; diff --git a/smali/res/drawable-anydpi-v24/ic_logo_vkpay_28.xml b/smali/res/drawable-anydpi-v24/ic_logo_vkpay_28.xml index cf3ba1ba8..a1966e053 100644 --- a/smali/res/drawable-anydpi-v24/ic_logo_vkpay_28.xml +++ b/smali/res/drawable-anydpi-v24/ic_logo_vkpay_28.xml @@ -1,13 +1,23 @@ - - - \ No newline at end of file + android:width="69dp" + android:height="24dp" + android:viewportWidth="69" + android:viewportHeight="24"> + + + + + + diff --git a/smali/res/drawable-hdpi/google.png b/smali/res/drawable-hdpi/google.png new file mode 100644 index 000000000..9a6c2918b Binary files /dev/null and b/smali/res/drawable-hdpi/google.png differ diff --git a/smali/res/drawable-hdpi/ic_deepl_logo_icon.png b/smali/res/drawable-hdpi/ic_deepl_logo_icon.png new file mode 100644 index 000000000..43d348df7 Binary files /dev/null and b/smali/res/drawable-hdpi/ic_deepl_logo_icon.png differ diff --git a/smali/res/drawable-hdpi/ic_google_translate_logo.png b/smali/res/drawable-hdpi/ic_google_translate_logo.png new file mode 100644 index 000000000..ab099f002 Binary files /dev/null and b/smali/res/drawable-hdpi/ic_google_translate_logo.png differ diff --git a/smali/res/drawable-hdpi/ic_vkme_28.png b/smali/res/drawable-hdpi/ic_vkme_28.png index 4fae2af3d..14230a13c 100644 Binary files a/smali/res/drawable-hdpi/ic_vkme_28.png and b/smali/res/drawable-hdpi/ic_vkme_28.png differ diff --git a/smali/res/drawable-hdpi/ic_yandex_translate_icon.png b/smali/res/drawable-hdpi/ic_yandex_translate_icon.png new file mode 100644 index 000000000..ef2cb482c Binary files /dev/null and b/smali/res/drawable-hdpi/ic_yandex_translate_icon.png differ diff --git a/smali/res/drawable-hdpi/yandex.png b/smali/res/drawable-hdpi/yandex.png new file mode 100644 index 000000000..934159e62 Binary files /dev/null and b/smali/res/drawable-hdpi/yandex.png differ diff --git a/smali/res/drawable-mdpi/google.png b/smali/res/drawable-mdpi/google.png new file mode 100644 index 000000000..53877dd77 Binary files /dev/null and b/smali/res/drawable-mdpi/google.png differ diff --git a/smali/res/drawable-mdpi/ic_deepl_logo_icon.png b/smali/res/drawable-mdpi/ic_deepl_logo_icon.png new file mode 100644 index 000000000..948e7d053 Binary files /dev/null and b/smali/res/drawable-mdpi/ic_deepl_logo_icon.png differ diff --git a/smali/res/drawable-mdpi/ic_google_translate_logo.png b/smali/res/drawable-mdpi/ic_google_translate_logo.png new file mode 100644 index 000000000..209d675a5 Binary files /dev/null and b/smali/res/drawable-mdpi/ic_google_translate_logo.png differ diff --git a/smali/res/drawable-mdpi/ic_vkme_28.png b/smali/res/drawable-mdpi/ic_vkme_28.png index 0384cc87b..1864b4385 100644 Binary files a/smali/res/drawable-mdpi/ic_vkme_28.png and b/smali/res/drawable-mdpi/ic_vkme_28.png differ diff --git a/smali/res/drawable-mdpi/ic_yandex_translate_icon.png b/smali/res/drawable-mdpi/ic_yandex_translate_icon.png new file mode 100644 index 000000000..6ac604898 Binary files /dev/null and b/smali/res/drawable-mdpi/ic_yandex_translate_icon.png differ diff --git a/smali/res/drawable-mdpi/yandex.png b/smali/res/drawable-mdpi/yandex.png new file mode 100644 index 000000000..123c46d31 Binary files /dev/null and b/smali/res/drawable-mdpi/yandex.png differ diff --git a/smali/res/drawable-xhdpi/google.png b/smali/res/drawable-xhdpi/google.png new file mode 100644 index 000000000..1b3b45dc0 Binary files /dev/null and b/smali/res/drawable-xhdpi/google.png differ diff --git a/smali/res/drawable-xhdpi/ic_deepl_logo_icon.png b/smali/res/drawable-xhdpi/ic_deepl_logo_icon.png new file mode 100644 index 000000000..f63d03d3e Binary files /dev/null and b/smali/res/drawable-xhdpi/ic_deepl_logo_icon.png differ diff --git a/smali/res/drawable-xhdpi/ic_google_translate_logo.png b/smali/res/drawable-xhdpi/ic_google_translate_logo.png new file mode 100644 index 000000000..a88018e57 Binary files /dev/null and b/smali/res/drawable-xhdpi/ic_google_translate_logo.png differ diff --git a/smali/res/drawable-xhdpi/ic_vkme_28.png b/smali/res/drawable-xhdpi/ic_vkme_28.png index e5f321a7a..30f6c2201 100644 Binary files a/smali/res/drawable-xhdpi/ic_vkme_28.png and b/smali/res/drawable-xhdpi/ic_vkme_28.png differ diff --git a/smali/res/drawable-xhdpi/ic_yandex_translate_icon.png b/smali/res/drawable-xhdpi/ic_yandex_translate_icon.png new file mode 100644 index 000000000..8e6cc3d7a Binary files /dev/null and b/smali/res/drawable-xhdpi/ic_yandex_translate_icon.png differ diff --git a/smali/res/drawable-xhdpi/yandex.png b/smali/res/drawable-xhdpi/yandex.png new file mode 100644 index 000000000..82724ae15 Binary files /dev/null and b/smali/res/drawable-xhdpi/yandex.png differ diff --git a/smali/res/drawable-xxhdpi/google.png b/smali/res/drawable-xxhdpi/google.png new file mode 100644 index 000000000..7e661e7c7 Binary files /dev/null and b/smali/res/drawable-xxhdpi/google.png differ diff --git a/smali/res/drawable-xxhdpi/ic_deepl_logo_icon.png b/smali/res/drawable-xxhdpi/ic_deepl_logo_icon.png new file mode 100644 index 000000000..369766606 Binary files /dev/null and b/smali/res/drawable-xxhdpi/ic_deepl_logo_icon.png differ diff --git a/smali/res/drawable-xxhdpi/ic_google_translate_logo.png b/smali/res/drawable-xxhdpi/ic_google_translate_logo.png new file mode 100644 index 000000000..c35654adc Binary files /dev/null and b/smali/res/drawable-xxhdpi/ic_google_translate_logo.png differ diff --git a/smali/res/drawable-xxhdpi/ic_vkme_28.png b/smali/res/drawable-xxhdpi/ic_vkme_28.png index 6de771331..e3b84bd76 100644 Binary files a/smali/res/drawable-xxhdpi/ic_vkme_28.png and b/smali/res/drawable-xxhdpi/ic_vkme_28.png differ diff --git a/smali/res/drawable-xxhdpi/ic_yandex_translate_icon.png b/smali/res/drawable-xxhdpi/ic_yandex_translate_icon.png new file mode 100644 index 000000000..3e165fdbb Binary files /dev/null and b/smali/res/drawable-xxhdpi/ic_yandex_translate_icon.png differ diff --git a/smali/res/drawable-xxhdpi/yandex.png b/smali/res/drawable-xxhdpi/yandex.png new file mode 100644 index 000000000..587067080 Binary files /dev/null and b/smali/res/drawable-xxhdpi/yandex.png differ diff --git a/smali/res/drawable-xxxhdpi/google.png b/smali/res/drawable-xxxhdpi/google.png new file mode 100644 index 000000000..c01233a17 Binary files /dev/null and b/smali/res/drawable-xxxhdpi/google.png differ diff --git a/smali/res/drawable-xxxhdpi/ic_deepl_logo_icon.png b/smali/res/drawable-xxxhdpi/ic_deepl_logo_icon.png new file mode 100644 index 000000000..524c22308 Binary files /dev/null and b/smali/res/drawable-xxxhdpi/ic_deepl_logo_icon.png differ diff --git a/smali/res/drawable-xxxhdpi/ic_google_translate_logo.png b/smali/res/drawable-xxxhdpi/ic_google_translate_logo.png new file mode 100644 index 000000000..508508b1b Binary files /dev/null and b/smali/res/drawable-xxxhdpi/ic_google_translate_logo.png differ diff --git a/smali/res/drawable-xxxhdpi/ic_vkme_28.png b/smali/res/drawable-xxxhdpi/ic_vkme_28.png index 20e85a061..201ad0aec 100644 Binary files a/smali/res/drawable-xxxhdpi/ic_vkme_28.png and b/smali/res/drawable-xxxhdpi/ic_vkme_28.png differ diff --git a/smali/res/drawable-xxxhdpi/ic_yandex_translate_icon.png b/smali/res/drawable-xxxhdpi/ic_yandex_translate_icon.png new file mode 100644 index 000000000..372fca288 Binary files /dev/null and b/smali/res/drawable-xxxhdpi/ic_yandex_translate_icon.png differ diff --git a/smali/res/drawable-xxxhdpi/yandex.png b/smali/res/drawable-xxxhdpi/yandex.png new file mode 100644 index 000000000..b53bd3b1c Binary files /dev/null and b/smali/res/drawable-xxxhdpi/yandex.png differ diff --git a/smali/res/drawable/catalog_item_bg_large_slider.xml b/smali/res/drawable/catalog_item_bg_large_slider.xml index 917345554..1d6420ed4 100644 --- a/smali/res/drawable/catalog_item_bg_large_slider.xml +++ b/smali/res/drawable/catalog_item_bg_large_slider.xml @@ -7,8 +7,8 @@ + android:topLeftRadius="@dimen/stickers_catalog_large_slider_image_corner_radius" + android:topRightRadius="@dimen/stickers_catalog_large_slider_image_corner_radius" /> \ No newline at end of file diff --git a/smali/res/drawable/catalog_item_bg_small_slider.xml b/smali/res/drawable/catalog_item_bg_small_slider.xml index 579dfea9c..86be012ca 100644 --- a/smali/res/drawable/catalog_item_bg_small_slider.xml +++ b/smali/res/drawable/catalog_item_bg_small_slider.xml @@ -7,8 +7,8 @@ + android:topLeftRadius="@dimen/stickers_catalog_small_slider_image_corner_radius" + android:topRightRadius="@dimen/stickers_catalog_small_slider_image_corner_radius" /> \ No newline at end of file diff --git a/smali/res/drawable/catalog_item_bg_vertical_list.xml b/smali/res/drawable/catalog_item_bg_vertical_list.xml index 7d900b3ac..c9169d777 100644 --- a/smali/res/drawable/catalog_item_bg_vertical_list.xml +++ b/smali/res/drawable/catalog_item_bg_vertical_list.xml @@ -5,9 +5,9 @@ diff --git a/smali/res/layout/apps_info_item.xml b/smali/res/layout/apps_info_item.xml index e25c50207..9575c409c 100644 --- a/smali/res/layout/apps_info_item.xml +++ b/smali/res/layout/apps_info_item.xml @@ -28,7 +28,7 @@ android:layout_weight="1.0" android:fontFamily="@string/font_family_regular" android:singleLine="true" - android:text="Играет 8 Ваших друзей" + android:text="@string/eight_friends" android:textColor="@color/subhead_gray" android:textSize="15.0sp" /> diff --git a/smali/res/layout/bottom_confirm_btn_components_view_holder.xml b/smali/res/layout/bottom_confirm_btn_components_view_holder.xml index 0915fce21..cfb44de2b 100644 --- a/smali/res/layout/bottom_confirm_btn_components_view_holder.xml +++ b/smali/res/layout/bottom_confirm_btn_components_view_holder.xml @@ -11,10 +11,10 @@ android:layout_height="48.0dip" app:bcb_anim_duration="100" app:bcb_cancel_bg_color="?background_content" - app:bcb_cancel_text="Отмена" + app:bcb_cancel_text="@string/cancel" app:bcb_cancel_text_color="?accent" app:bcb_divider="@color/black_alpha12" app:bcb_send_bg_color="?accent" - app:bcb_send_text="Отправить" + app:bcb_send_text="@string/send" app:bcb_send_text_color="@color/white" /> \ No newline at end of file diff --git a/smali/res/layout/buttons_components_view_holder.xml b/smali/res/layout/buttons_components_view_holder.xml index cd188ec69..ccb3e777f 100644 --- a/smali/res/layout/buttons_components_view_holder.xml +++ b/smali/res/layout/buttons_components_view_holder.xml @@ -23,14 +23,14 @@ android:layout_height="wrap_content" android:layout_marginRight="8.0dip" android:clickable="true" - android:text="Принять" /> + android:text="@string/group_accept_member" /> + android:text="@string/group_accept_member" /> + android:text="@string/send" /> + android:text="@string/send" /> + android:text="@string/vkim_msg_request_reject" /> + android:text="@string/vkim_msg_request_reject" /> + android:text="@string/apps_remove_action" /> + android:text="@string/apps_remove_action" /> + android:text="@string/vkim_request_money" /> + android:text="@string/vkim_request_money" /> + android:text="@string/delete" /> + android:text="@string/delete" /> + android:text="@string/accessibility_more" /> + android:text="@string/accessibility_more" /> + android:text="@string/buy" /> + android:text="@string/buy" /> + android:text="@string/nine_votes" /> + android:text="@string/nine_votes" /> + android:text="@string/music_artist_listen_all_btn" /> + android:text="@string/music_artist_listen_all_btn" /> \ No newline at end of file diff --git a/smali/res/layout/catalog_stickers_double_stacked_slider_item.xml b/smali/res/layout/catalog_stickers_double_stacked_slider_item.xml index 4316ed409..4c88c5354 100644 --- a/smali/res/layout/catalog_stickers_double_stacked_slider_item.xml +++ b/smali/res/layout/catalog_stickers_double_stacked_slider_item.xml @@ -12,19 +12,19 @@ \ No newline at end of file diff --git a/smali/res/layout/collection_item_hint.xml b/smali/res/layout/collection_item_hint.xml index 14bd0343d..b2786e575 100644 --- a/smali/res/layout/collection_item_hint.xml +++ b/smali/res/layout/collection_item_hint.xml @@ -12,7 +12,7 @@ android:layout_marginRight="32.0dip" android:layout_marginBottom="16.0dip" android:gravity="center" - android:text="Вы можете добавлять объекты, которыми вы сможете поделиться во время трансляции" + android:text="@string/collection_item_hint_text" android:textColor="?content_placeholder_text" android:textSize="15.0dip" /> \ No newline at end of file diff --git a/smali/res/layout/collection_item_tip.xml b/smali/res/layout/collection_item_tip.xml index 86438b5a3..b7381194a 100644 --- a/smali/res/layout/collection_item_tip.xml +++ b/smali/res/layout/collection_item_tip.xml @@ -35,5 +35,5 @@ android:layout_gravity="center_horizontal" android:layout_marginTop="24.0dip" android:clickable="true" - android:text="Отправить" /> + android:text="@string/send" /> \ No newline at end of file diff --git a/smali/res/layout/input_fields_components_view_holder.xml b/smali/res/layout/input_fields_components_view_holder.xml index 5424599ff..7b7241ed7 100644 --- a/smali/res/layout/input_fields_components_view_holder.xml +++ b/smali/res/layout/input_fields_components_view_holder.xml @@ -10,7 +10,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8.0dip" - android:text="Имя" /> + android:text="@string/vk_auth_sign_up_first_name" /> + android:text="@string/item_no_place_in_result_text" /> \ No newline at end of file diff --git a/smali/res/layout/live_write_bar.xml b/smali/res/layout/live_write_bar.xml index 0dd6ef7b9..1a3cfbdd6 100644 --- a/smali/res/layout/live_write_bar.xml +++ b/smali/res/layout/live_write_bar.xml @@ -57,7 +57,7 @@ android:gravity="center|left" android:paddingLeft="20.0dip" android:paddingRight="20.0dip" - android:text="Смореть пост" + android:text="@string/watch_post_text" android:textColor="@color/gray_800" android:textSize="15.0dip" android:visibility="gone" /> diff --git a/smali/res/layout/loaders_components_view_holder.xml b/smali/res/layout/loaders_components_view_holder.xml index 9103f6982..f03b225a8 100644 --- a/smali/res/layout/loaders_components_view_holder.xml +++ b/smali/res/layout/loaders_components_view_holder.xml @@ -46,7 +46,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16.0dip" - android:text="для загрузки из сети" + android:text="@string/for_loading_from_network" app:layout_constraintStart_toEndOf="@id/pb_auto_animation" app:layout_constraintTop_toTopOf="@id/pb_auto_animation" /> \ No newline at end of file diff --git a/smali/res/layout/money_people_transfer_new.xml b/smali/res/layout/money_people_transfer_new.xml index 018828a22..4c2fea5b3 100644 --- a/smali/res/layout/money_people_transfer_new.xml +++ b/smali/res/layout/money_people_transfer_new.xml @@ -31,7 +31,7 @@ android:layout_marginEnd="16.0dip" android:fontFamily="@font/roboto_regular" android:includeFontPadding="false" - android:text="Откуда списать" + android:text="@string/where_from_send" android:textColor="?text_subhead" android:textSize="14.0sp" android:visibility="gone" /> @@ -92,7 +92,7 @@ android:layout_marginEnd="16.0dip" android:fontFamily="@font/roboto_regular" android:includeFontPadding="false" - android:text="Куда зачислить" + android:text="@string/where_to_send" android:textColor="?text_subhead" android:textSize="14.0sp" android:visibility="gone" /> @@ -118,7 +118,7 @@ android:layout_height="fill_parent" android:checked="true" android:maxLines="1" - android:text="Карта любого банка" + android:text="@string/any_bank_card" android:textColor="?text_muted" android:textSize="14.0sp" /> diff --git a/smali/res/layout/music_promo_continue_using_free_plan.xml b/smali/res/layout/music_promo_continue_using_free_plan.xml index 3d615b108..7f83be7aa 100644 --- a/smali/res/layout/music_promo_continue_using_free_plan.xml +++ b/smali/res/layout/music_promo_continue_using_free_plan.xml @@ -9,5 +9,5 @@ android:ellipsize="end" android:maxLines="1" android:minHeight="36.0dip" - android:text="@string/music_promo_no_more_music_сontimue_using_free_plan" + android:text="@string/music_promo_no_more_music_continue_using_free_plan" android:textSize="15.0sp" /> \ No newline at end of file diff --git a/smali/res/layout/sticker_details_bottom_container.xml b/smali/res/layout/sticker_details_bottom_container.xml index 5eda6aeb8..2d0cf0fe0 100644 --- a/smali/res/layout/sticker_details_bottom_container.xml +++ b/smali/res/layout/sticker_details_bottom_container.xml @@ -62,7 +62,7 @@ android:fontFamily="@font/roboto_medium" android:gravity="center" android:maxLines="1" - android:text="Установить VK Me" + android:text="@string/vkim_install_vk_me_button_text" android:textAllCaps="false" android:textColor="@color/vkui_primary_button_text" android:textSize="15.0sp" /> diff --git a/smali/res/layout/test_place_fragment.xml b/smali/res/layout/test_place_fragment.xml index 71f7f1f32..a7591a1d3 100644 --- a/smali/res/layout/test_place_fragment.xml +++ b/smali/res/layout/test_place_fragment.xml @@ -12,7 +12,7 @@ android:layout_marginStart="16.0dip" android:layout_marginTop="16.0dip" android:layout_marginEnd="16.0dip" - android:hint="Номер текущего места" + android:hint="@string/current_place_number" android:inputType="numberDecimal" android:singleLine="true" /> diff --git a/smali/res/values-es/strings.xml b/smali/res/values-es/strings.xml index 43a10b608..311e070e5 100644 --- a/smali/res/values-es/strings.xml +++ b/smali/res/values-es/strings.xml @@ -2035,7 +2035,7 @@ estrenos exclusivos y mucho más" Obtener una oferta especial La industria musical tiene sus propias reglas, y tuvimos que llegar a un compromiso para salvar el acceso gratuito a la música. Las pistas se pueden escuchar con la app abierta sin suscripción. Sólo asegúrate de no bloquear tu pantalla o cerrar la app. Ya no hay reproducción de fondo gratuita - Seguir escuchando gratis + Seguir escuchando gratis Acceso a la música Recomendaciones personalizadas Reproducción de fondo diff --git a/smali/res/values-kk/strings.xml b/smali/res/values-kk/strings.xml index 21d3a17e6..1f332d12b 100644 --- a/smali/res/values-kk/strings.xml +++ b/smali/res/values-kk/strings.xml @@ -2002,7 +2002,7 @@ Арнайы ұсыныс алу Музыка саласында өз ережелері бар — музыканы тегін тыңдау үшін бізге ымыраға келуге тура келді. Жазылым болмаса ашық қосымшада тыңдауға болады: оны жаппаңыз және экранды бұғаттамаңыз. Тегін қосымшадан тыс тыңдау енді мүмкін емес - Тегін пайдалануды жалғастыру + Тегін пайдалануды жалғастыру Музыкаға рұқсат Жеке ұсыныстар Өшірулі экранмен тыңдау diff --git a/smali/res/values-pt/strings.xml b/smali/res/values-pt/strings.xml index 612539ad2..db980b83e 100644 --- a/smali/res/values-pt/strings.xml +++ b/smali/res/values-pt/strings.xml @@ -2005,7 +2005,7 @@ estréias exclusivas e muito mais" Ver oferta A indústria da música tem suas próprias regras. Nós tivemos que chegar a um compromisso para manter a oportunidade de ouvir as músicas de graça. Sem a assinatura você pode ouvir as músicas no aplicativo aberto — não o minimize nem bloqueie a tela. A reprodução de música em segundo plano não está mais disponível - Continuar ouvir de graça + Continuar ouvir de graça Acesso às músicas Recomendações personalizadas Reprodução com a tela desligada diff --git a/smali/res/values-ru/arrays.xml b/smali/res/values-ru/arrays.xml index 1e39121da..b61210724 100644 --- a/smali/res/values-ru/arrays.xml +++ b/smali/res/values-ru/arrays.xml @@ -595,6 +595,8 @@ Без прокси zaborona.help + VikaMobile + Рандомный прокси Сторонний прокси для API Сторонний HTTP Сторонний HTTPS @@ -651,4 +653,29 @@ 15 апреля в 18:42:28 15 апреля 2022 в 18:42:28 + + Доброе время + Доброе утро, день, вечер, ночь + Как живёшь? + Не мёртвый, и то хорошо + + + Очистить весь кеш + Очистить кеш стикеров + Очистить кеш изображений + Очистить кеш видео + Очистить кеш сообщений + Очистить кеш WebView + + + Отключено + Низкое + Среднее + Высокое + + + Отключено + Затемнить + Осветлить + diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml index 31a965ae0..14cbf51eb 100644 --- a/smali/res/values-ru/strings.xml +++ b/smali/res/values-ru/strings.xml @@ -282,6 +282,9 @@ Музыкант Трансляция аудиозаписей Аудиозапись удалена + Произошла ошибка. Вы пытаетесь воспроизвести пустой плейлист. + Произошла ошибка + Произошла ошибка. Проверьте соединение и повторите попытку. Текст песни Голосовое сообщение Удерживайте, чтобы записать @@ -350,6 +353,7 @@ Обсуждения Комментарий отправлен Закладки + Токен удален Магазин Закешировать мою музыку Во время эфира нельзя изменять ориентацию съёмки @@ -451,6 +455,7 @@ Добавить Вы уже добавили такую ссылку Добавить опрос + Добавить объект Добавить запись Поделиться со зрителями Выберите материал, которым хотите поделиться со зрителями прямо сейчас @@ -599,6 +604,20 @@ Назад Продолжить просмотр Завершение покупки... + Контекстное меню + Основные + Нижняя кнопка + Кнопки + Диалоги + Поля ввода + Интро/Промо + Лоадеры + Заглушки + Снекбар + Заглушки + Текст + VK UI компоненты + Тултипы Подтверждение Подтверждение действия Вы действительно хотите заблокировать %s? @@ -2044,7 +2063,7 @@ Получить спецпредложение В музыкальной индустрии свои правила — нам пришлось пойти на компромисс, чтобы сохранить возможность слушать музыку бесплатно. Без подписки треки можно слушать в открытом приложении: не сворачивайте его и не блокируйте экран. Бесплатного фонового прослушивания музыки больше нет - Продолжить пользоваться бесплатно + Продолжить пользоваться бесплатно Доступ к музыке Персональные рекомендации Прослушивание с выключенным экраном @@ -3267,6 +3286,7 @@ Выберите получателя Выбрано Выбрано: %,d + Купить Отправить Отправить подарок Отпр. @@ -5319,6 +5339,16 @@ Ваш баланс:  Ваш пол: + Вы можете добавлять объекты, которыми вы сможете поделиться во время трансляции + Места нет в списке + Смотреть пост + для загрузки из сети + Откуда списать + Куда зачислить + Карта любого банка + Номер текущего места + Играет 8 Ваших друзей + Лента Интерфейс Медиа контент @@ -5346,8 +5376,10 @@ Как делать фильтры? "Формат фильтра: слова или предложения, разделенные запятой с пробелом Пример: #реклама, Выиграйте сегодня, НОВИНКА! -Фильтры чувствительны к регистру!" - Собственный фильтр +Фильтры не чувствительны к регистру!" + Фильтр слов и выражений + Фильтр ссылок в источнике + Фильтр по названию источника Стандартный фильтр рекламы Фильтр для блокировки постов с пометкой #реклама и тд Использовать VKUI @@ -5357,6 +5389,32 @@ Запись голосовых сообщений Иконка записи голосовых сообщений в поле ввода сообщения Покрасить панель навигации + Посты с возможной рекламой + Блокировать посты с источником где есть ссылка на VK / Telegram (группу, страницу или посты) или на другие возможные ресурсы + Репосты с ссылками + Блокировать посты с репостом внутри которых есть ссылка на VK / Telegram + Почему не обновляются новости? + Возможно у вас включена Интересная лента \n\nЕсли вы хотите поменять ленту на Временную, то вы можете сменить ее нажав на пункт выше + Списки новостей + Настройки списков новостей + Сбросить список новостей + Где настройки кеша? + Они переехали в настройки мода во вкладку Другое + О GMS + Что такое GMS? + GMS - Google Mobile Services, необходимый компонент для нормальной работы приложений. Все уведомления, вход в игры, Google Play и прочие функции устройства используют этот компонент + Зачем мне нужен GMS для этого приложения? + GMS необходим для работы уведомлений, для работы музыки и ещё очень многих компонентов приложения + Как скачать? + Что тогда делать? + Вам необходимо скачать MicroG. + Что такое MicroG? + Это открытая альтернатива сервисам GMS с возможностью установить её на устройство без GMS + Официальный сайт MicroG + Скачать MicroG + Что делать дальше? + Что делать после установки MicroG? + Обновите регистрацию Firebase в настройках в разделе "Другое" Помочь проекту dd MMMM yyyy в HH:mm:ss dd MMMM в HH:mm:ss @@ -5449,6 +5507,62 @@ "Сокращать текст в постах Показать полностью..." + Результаты опросов + Показывать результаты в опросах без участия в них + Загрузки + Текущая папка: + Папка для загрузок + Папка для фото + Папка для видео + Папка для музыки + Отключение значительно улучшит качество загружаемых фотографий + Отключение значительно улучшит качество загружаемых видео + Аккаунт + Ошибка входа + Вы не вошли в аккаунт + Вы успешно вышли из учетной записи + Включить скробблинг + Полезный сервис по учету прослушивания песен + Логин или пароль не заданы + Музыка + Новый раздел музыки + Новый каталог музыкального раздела с динамическим контентом + Выберите раздел по умолчанию + Раздел музыки по умолчанию + Видео + Скачать видео + Новый раздел видео + Новый каталог видео раздела с динамическим контентом + Очистить историю видео + Очистка истории просмотра видео удалит все видео из истории просмотра и рекомендации основанные на них + Фото + Выбор движка для поиска фото + Обои в сообщениях + Скрыть рекомендации + Скрыть блок рекомендаций добавления в друзья в сообщениях и других советов + VK Мессенджер + Переводчик + Выберите язык + Язык переводчика + Сервис переводов + Автоматический перевод + Автоматически переводить ваши исходящие сообщения + Автоматический перевод всего + Автоматически переводить все сообщения\n\nМогут быть проблемы с загрузкой сообщений + Очистка кеша приложения + Сбросить пути папок + Токен от VK Admin + Бэкапы + Сохранить список онлайнов + Сохранить список AppId и их названия в файл + Сохранить настройки + Восстановить настройки + Милкшейк + Глобальный редизайн ВКонтакте как на новых версиях + Докбар + Использовать акцент для иконок + Выбрать иконку приложения + Большой выбор иконок для приложения Лента Боковая камера в новостях Работает только с классическим дизайном новостей @@ -5510,6 +5624,41 @@ Фильтр очистки постов с РФ и действиями связанными на Украине\n\nМогут быть ошибочные срабатывания Показывать истории Блок истории в верхней части ленты + Блок написания поста в ленте + Показывать блок поста + Показ лайков в посте справа + Размер закругления картинок + Редизайн видеопостов + Текст к видео будет отображаться под видеоматериалом + Блок миниаппов + Показывать Miniapps/Игры в меню + Блок VK Pay + Показывать VK Pay в меню + Супераппы + Новый вид меню как в новых версиях ВКонтакте + Скрыть друзей + Скрыть блок рекомендаций друзей в друзьях + Расширенный онлайн + Показывать с какого приложения/клиента человек в онлайне + Голосовые сообщения + Функция позволяет не отправлять статус прослушивания голосовых сообщений человека вами + Отключить статус прослушивания + Скрытый онлайн VK Me + Показывать онлайн пользователей в профилях если у вас включен режим скрытия онлайна из VK Messenger + Обходить онлайн + Глобальный обход онлайна + Может вызывать долгие загрузки разделов и большое потребление трафика \n\nНе рекомендуется включать данную функцию + Сохранять настройки сообщений + Сохранять положение тумблеров в настройках сообщений + Отключить детект скриншотов + Отключить уведомление о том, что вы сделали скриншот + Отключить отправку метрики + Отключить отправку информации об устройстве пользователя и вашем местоположении + Использовать новый AdBlock (Beta) + Добавить каталог подкастов + Использовать новые настройки + Фикс музыки v2 + Новый способ скачивания музыки Отключить рекомендации Показывать специальные верификации Показывать верификации @@ -5605,6 +5754,7 @@ Анти-удаление сообщений Пометка удалённого сообщения + Выберите пометку удалённого сообщения Оставлять удалённые сообщения Может не сохранять вложения @@ -5641,6 +5791,8 @@ Проверить обновления + Значения toggles не были получены с сервера + Внимание! Данное меню предназначено только для тестирования работоспособности приложения. Если вы являетесь рядовым юзером, то вам не следует ничего не трогать в данных настройках (пожалуйста) Показывать пункт дебага в настройках @@ -5683,17 +5835,26 @@ Отображать ошибки api с помощью тоста Моментальная отправка статы Дебаг WebView - Визуализация view_post_timen + Визуализация view_post_time Подсвечивать посты при регистрации события view_post_time + Разрешить брекпоинты + Разрешить брекпоинты запросов через Proxy (Charles) Применять дырки Применять дырки для сообщений после long poll history Включить MemLeak detect + Сеть + Кэш Очистить хэш 2фа Очистить кеш WebView + Удалить токен VK Pay для оплаты по QR + Очистить кеш стикеров Очистить видео кеш + Зона кликабельного стикера + Зоны стикера при создании + Системные Подменить язык Завершить процесс @@ -5710,6 +5871,10 @@ Демо карусель карточек VK UI Uri (для теста) Тест VK UI + Тестовый тултип + + Список версий + Сбросить токен баг-трекера Официальный прокси ВК Вкшные костыли для своего прокси @@ -5717,6 +5882,11 @@ Не работает Прочее + Отключить рекламу + Прокси + Использовать libverify для авторизации + + 9 голосов Включить нечиталку Отключить нечиталку @@ -5751,8 +5921,8 @@ Анимация фрагментов (бета) Выберите анимацию фрагментов - Режим VK Me - Замена докбара и некоторых элементов на что-то похожее как в VK Me + Режим VK Мессенджера + Замена докбара и некоторых элементов на что-то похожее как в VK Мессенджере Аккаунт Темная тема @@ -5768,7 +5938,7 @@ Блокировать рекламу Докбар элементов VKX интеграция - Режим VK Me + Режим VK Мессенджера Офлайн режим Покраска навбара Установлено паков @@ -5795,6 +5965,208 @@ Поддержи проект донатом и получи бонусы Обои + Прочитать до Перевести - + + Сервис стикеров Telegram в VTLite + : загрузка + : обновление + Получение информации + успешно обновлен + успешно загружен + : ошибка при обновлении + : ошибка при загрузке + + Вы авторизованы как + Логин + Пароль + Введите логин и пароль + Войти + Вы уверены? + Вы действительно хотите выйти из аккаунта? + + История просмотра видео очищена + + Введите ссылку на видео + + Загрузка музыки + Прогресс загрузки музыки + + Копирование библиотеки ffmpegkit + + Не удалось сохранить лог-файл + Лог-файл был сохранен + + Скопировать ID + Дополнительная информация + Изменить имя + Скопировано! + + Применить + + Выберите размер закругления углов + Для отключения функции закругления углов поставьте 0 + + + Отключено + Низкое + Среднее + Высокое + Затемнить + Осветлить + + Реплай: + Нет текста для перевода + + Диалог успешно + закреплен + откреплен + + Меню для разработчиков уже активировано + Меню для разработчиков активировано + + Некоторые пункты настроек были скрыты из-за режима VK Мессенджер \n\nДля отключения режима перейдите в настройки Сообщений + + Скрыто элементов + + Помоги проекту донатом и получи бонус! + Карточка Тестера + Я купил + Я создал говно + Я не загрузил данные (9(9(( + + Токен успешно сохранён + Папки успешно сброшены + + Не включено + Очищать кеш при не менее 100 Мб + Очищать кеш при не менее 500 Мб + Очищать кеш при не менее 1 Гб + Очищать кеш при не менее 2 Гб + Очищать кеш при не менее 5 Гб + Очистка кеша + Выберите объём кеша для очистки + Выберите, что вы хотите очистить + Кеш очищен + + Нет данных для резервного копирования + Выберите бэкап + Настройки восстановлены + Ошибка: настройки не восстановлены + + Смена имени + Это локальное изменение, которое будет отображаться только в данном клиенте. + Пользователь успешно переименован! + Ошибка при переименовании пользователя + Сбросить + Пользователь успешно удалён из базы данных! + Сообщество успешно переименовано! + Сообщество успешно удалено из базы данных! + + Не удалось найти ссылку на аудиозапись + Не удалось загрузить аудиозапись + Загрузка аудиозаписи + + Настроить прокси + Отключить + Включить + Zaborona никак не связана с ВТостерс и мы не можем гарантировать её работу и безопасность + Настройки прокси + + Ошибка установки обновления + + 15 секунд + 1 минута + 5 минут + 1 час + 24 часа + + Бесшумные сообщения + Настройки отправки + Выберите время исчезновения сообщения + + Обновите токен VK Admin в настройках в разделе Другое + + Сохранено в файл + Не удалось сохранить файл + + Обновите ленту для получения списка доступных пунктов + Выберите пункты для скрытия + Для применения изменений обновите ленту + Сброшены пункты для скрытия + + Загрузка историй не поддерживается + Неверная ссылка + Обработка видео + Видео нельзя скачать + + Меню приложения + MiniApps: виджет + VK Pay + Приветствие + MiniApps: промо + Дни рождения у друзей + Погода + Спортивные события + Игры + Информер + Еда + Мероприятия + Музыка + VK Run + + Скрыто %1$d лент новостей + Нет добавленных элементов + Добавлено %1$d элементов + + Выберите название приложения + Доступны не все функции! + Для разблокировки необходимо сделать пожертование от 99 рублей + Иконки + Недоступные иконки + Иконка доступна только обладателям верификации + + Размер закругления: %1$ddp + + Сферум + VK Звонки + VK Музыка + VK Клипы + VK Видео + VK Почта + + Выбрать обои + из галереи + Удалить обои + Доступны не все фильтры! + Возможна нагрузка на устройство + Размытие фона сообщений + Затемнение изображения + Мозаика + Черно-белый фон + Инвертировать цвета + Эффект сепии + Emboss фильтр + Engrave фильтр + Flea фильтр + Эффект снега + + Метод шифрования + Настройки шифрования + Отключить шифрование + Настройки шифрования + Выбранный алгоритм публичный и не имеет настроек! + Введите ключ шифрования + Используемый алгоритм: %1$s.\nУчтите, что если поле будет пустым, то будет использоваться ключ по умолчанию. + + Ошибка обновления + Произошла ошибка при попытке скачать новую версию приложения.\nОбновить приложение вручную? + + Не удалось получить ссылку на фото + + Отказ от ответственности + Разработчики клиента VTLite не несут никакой ответственности за работу и безопасность использования сторонних прокси-серверов \n\nИспользуйте на свой страх и риск + + Альтернативный домен VikaMobile + \ No newline at end of file diff --git a/smali/res/values-uk/strings.xml b/smali/res/values-uk/strings.xml index 2d7f63a96..009536617 100644 --- a/smali/res/values-uk/strings.xml +++ b/smali/res/values-uk/strings.xml @@ -2007,7 +2007,7 @@ Отримати спецпропозицію У музичній індустрії свої правила — нам довелося піти на компроміс, щоб зберегти можливість слухати музику безплатно. Без підписки треки можна слухати у відкритому додатку: не згортайте його і не блокуйте екран. Безплатного фонового прослуховування музики більше немає - Продовжити користуватися безплатно + Продовжити користуватися безплатно Доступ до музики Персональні рекомендації Прослуховування з вимкненим екраном diff --git a/smali/res/values/arrays.xml b/smali/res/values/arrays.xml index b994d56c4..e0554d215 100644 --- a/smali/res/values/arrays.xml +++ b/smali/res/values/arrays.xml @@ -743,6 +743,8 @@ No Proxy zaborona.help + VikaMobile + Random proxy Custom API proxy Custom HTTP Custom HTTPS @@ -751,6 +753,8 @@ noproxy zaborona + vika + randomproxy apiproxy http https @@ -853,4 +857,29 @@ noyear full + + Good time + Good morning, afternoon, evening, night + How are you? + Not dead, that\'s good + + + Clear all cache + Clear stickers cache + Clear images cache + Clear videos cache + Clear messages cache + Clear WebView cache + + + Disabled + Low + Average + High + + + Disabled + Dim + Lighten + diff --git a/smali/res/values/dimens.xml b/smali/res/values/dimens.xml index 4420dba8a..69dde40bc 100644 --- a/smali/res/values/dimens.xml +++ b/smali/res/values/dimens.xml @@ -648,26 +648,26 @@ 96.0dip 0.0dip 48.0dip - 2.0dip - 16.5dip - 16.5dip - 2.0dip - 92.0dip - 12.0dip - 76.0dip - 94.0dip - 147.0dip - 12.0dip - 75.0dip - 94.0dip - 12.0dip - 76.0dip - 68.0dip - 12.0dip - 56.0dip - 92.0dip - 12.0dip - 76.0dip + 2.0dip + 16.5dip + 16.5dip + 2.0dip + 92.0dip + 12.0dip + 76.0dip + 94.0dip + 147.0dip + 12.0dip + 75.0dip + 94.0dip + 12.0dip + 76.0dip + 68.0dip + 12.0dip + 56.0dip + 92.0dip + 12.0dip + 76.0dip 78.0dip 12.0dip 44.0dip diff --git a/smali/res/values/public.xml b/smali/res/values/public.xml index c65c6e65e..7bb676f7e 100644 --- a/smali/res/values/public.xml +++ b/smali/res/values/public.xml @@ -3540,26 +3540,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -15183,7 +15183,7 @@ - + diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml index 555175c29..0f2a01a66 100644 --- a/smali/res/values/strings.xml +++ b/smali/res/values/strings.xml @@ -297,9 +297,9 @@ Artist Broadcast music Track deleted - Произошла ошибка. Вы пытаетесь воспроизвести пустой плейлист. - Произошла ошибка - Произошла ошибка. Проверьте соединение и повторите попытку. + An error has occurred. You are trying to play an empty playlist. + An error has occurred + An error has occurred. Check the connection and try again. Lyrics Voice message Hold to record @@ -371,7 +371,7 @@ You can use the menu on a user’s profile to block them." Comment sent Bookmarks com.google.android.material.bottomsheet.BottomSheetBehavior - Токен удален + Token removed Store Cache my music "You can't change your frame orientation while streaming" @@ -469,6 +469,7 @@ no results" "You don't have any products. Add a product on the desktop version of VK, and then you can share it with your viewers." More Nothing selected + Add object Add product Add content that you want to share with viewers during your live stream Add link @@ -627,20 +628,20 @@ no results" Back Continue Completing purchase... - Контекстное меню - Основные - Нижняя кнопка - Кнопки - Диалоги - Поля ввода - Интро/Промо - Лоадеры - Заглушки - Снекбар - Заглушки - Текст - VK UI компоненты - Тултипы + Context menu + Basics + Bottom button + Buttons + Dialogs + Input fields + Intro/Promo + Loaders + Stubs + Snackbar + Stubs + Text + VK UI components + Tooltips Confirmation Confirm action Are you sure you want to block %s? @@ -694,7 +695,7 @@ no results" sans-serif-light Month grid of days Hints - Значения toggles не были получены с сервера + No toggles values were received from the server Toggles Default Progressbar: 841415684880-i5q85vkpnnj8fgbd1qde5o9kq87656dk.apps.googleusercontent.com @@ -2133,7 +2134,7 @@ premieres and much more" Get special offer The music industry has its own set of rules, and we had to come to a compromise to save free access to music. You can still listen to music even without a subscription. Just make sure not to lock your screen or close the app. Free background playback is no longer available - Continue listening for free + Continue listening for free Access to music Personalized recommendations Background playback @@ -2301,8 +2302,8 @@ Please try again later" story Displayed in the news feed and on your page for 24 hours My videos - %$1d час. %$2d мин. - %1$d мин. %2$02d сек. + %1$d h. %$2d min. + %1$d min. %2$02d sec. %d sec %d seconds You canceled your name change request @@ -3380,6 +3381,7 @@ the VK camera" Selected %,d selected 0.16 + Buy Send Send a gift Send @@ -3717,7 +3719,7 @@ photo" Sticker Active Add to favorites - Добавление недоступно + Adding unavailable Buy for %1$s Free Settings @@ -5469,6 +5471,16 @@ with video" Your feedback… Your gender: + You can add items that you can share while streaming + There is no place in the list + Watch post + to download from the network + Where to withdraw + Where to deposit + Card of any bank + Current place number + Your 8 friends are playing + Feed Interface Media content @@ -5488,8 +5500,8 @@ with video" All your questions are answered here Our site Install Google Play Services - Disable Ads - Disable Groups Ads + Disable ads + Disable groups ads Posts with ads mark Disable ad carousel Disable ads in stories @@ -5498,8 +5510,10 @@ with video" How to make filters? "Filter format: words or sentences, separated by a comma with a space Example: #sponsored, Free gift cards, #PROMO -Filters are case-sensitive!" - Custom filter +Filters are not case-sensitive!" + Filter words and expressions + Source link filter + Source name filter Standard adblock filter Blocks posts with common tags, such as #ad, #pr and so on Use VKUI @@ -5509,6 +5523,32 @@ Filters are case-sensitive!" Recording voice messages The icon for recording voice messages in the message input field Color navigation bar + Posts with possible advertising + Block posts with a source where there is a link to VK / Telegram (group, page or posts) or to other possible resources + Reposts with links + Block posts with repost inside which there is a link to VK / Telegram + Why is the news not updated? + Perhaps you have the Interesting feed turned on \n\nIf you want to change the feed to the Temporary feed, you can change it by clicking on the item above + Newsfeed list + Newsfeed list settings + Reset newsfeed list + Where is cache settings? + They moved to the mod settings in the Other tab + About GMS + What is GMS? + GMS - Google Mobile Services, a necessary component for the normal operation of applications. All notifications, logging into games, Google Play and other device functions use this component + Why do I need GMS for this app? + GMS is necessary for notifications to work, for music to work, and for many other application components + How to download? + What to do then? + You need to download MicroG. + What is MicroG? + It is an open alternative to GMS services with the ability to install it on a non-GMS device + MicroG official website + Download MicroG + What to do next? + What to do after installing MicroG? + Update Firebase registration in Other settings Donate dd MMMM yyyy HH:mm:ss dd MMMM HH:mm:ss @@ -5601,6 +5641,62 @@ Registration date:" "Shorten the text in posts Expand text..." + Poll results + Show results in polls without voting in them + Downloads + Current folder: + Folder for downloads + Folder for photos + Folder for videos + Folder for music + Disabling will significantly improve the quality of uploaded photos + Disabling will significantly improve the quality of uploaded videos + Account + Login failed + You are not logged in + You have successfully logged out + Enable scrobbling + Useful song tracking service + Username or password not set + Music + New music catalog + New music catalog with dynamic content + Select default section + Default music section + Video + Download video + New video catalog + New video catalog with dynamic content + Clear video history + Clearing video history will remove all videos from your watch history and recommendations based on them + Photo + Selecting a photo search engine + Wallpaper in Messages + Hide recommendations + Hide friend recommendation section in messages and other tips + VK Messenger + Translator + Choose a language + Translator language + Translation service + Auto-translate + Automatically translate your outgoing messages + Auto-translate everything + Automatically translate all messages\n\nThere may be problems loading messages + Clear app cache + Reset download folders paths + Token from VK Admin + Backups + Save online list + Save the list of AppIds and their names to a file + Save preferences + Restore preferences + Milkshake + Global redesign of VK as on new versions + Dockbar + Use accent for icons + Select app icon + Great selection of app icons Feed Side camera in the news Works only with classic newsfeed design @@ -5662,6 +5758,41 @@ You need to restart the application to apply proxy settings" Filter for cleaning posts with the Russian Federation and actions related in Ukraine\n\nThere may be incorrect triggers Show stories The story section at the top of the feed + Section of writing a post at the feed + Show the post section + Show likes to the right of the post + Image rounding size + Video post redesign + The text for the video will be displayed below the video + Miniapps section + Show Miniapps/Games in menu + VK Pay section + Show VK Pay in the menu + Superapps + New menu view as in new versions of VK + Hide friends + Hide the block of recommendations of friends in friends section + Extended online indicator + Show what app/device a person is online from + Voice messages + The function allows you not to send the status of listening to the person\'s voice messages by you + Disable listening status + Hidden VK Me online + Show online users in profiles if you have the mode of hiding online from VK Messenger enabled + Bypass online indicator + Global online bypass + May cause slow partition loading and high traffic consumption \n\nIt is not recommended to enable this feature + Save message settings + Save the position of the toggle switches in the message settings + Disable screenshot detection + Turn off the notification that you took a screenshot + Disable sending metric + Disable sending information about the user\'s device and your location + Use new AdBlock (Beta) + Add podcast catalog + Use new settings + Music fix v2 + New way to download music Disable recommendations Show special verifications Show verifications @@ -5724,7 +5855,7 @@ May look like a fake leaving the online" Recommend popular authors\' posts friends Recommend posts that your friends like - Audo update news + Auto update news Choose update type Sort comments Sort comments by newest @@ -5849,9 +5980,13 @@ May look like a fake leaving the online" Apply spaces for messages after longpoll history Turn on MemLeak detect + Network + Cache - Clear 2fa hash + Clear 2FA hash Clear WebView cache + Remove VK Pay token for QR payment + Clear stickers cache Clear video cache System @@ -5861,6 +5996,9 @@ May look like a fake leaving the online" Copy push token Update Google Now + Clickable sticker border + Sticker border on create + Tests Test BD notification Test need_validation error @@ -5870,6 +6008,10 @@ May look like a fake leaving the online" pretty_cards demo Test VK UI uri Test VK UI + Test tooltip + + App versions list + Drop bugtracker token Official VK Proxy Force VK Proxy features @@ -5878,6 +6020,11 @@ May look like a fake leaving the online" Won\'t work Other + Disable ads + Proxy + Use libverify for authorization + + 9 votes Enable Do Not Read Disable Do Not Read @@ -5909,8 +6056,8 @@ May look like a fake leaving the online" Fragment animation (beta) Select fragment animation - VK Me mode - Replacing the dock and some elements with something similar as in VK Me + VK Messenger mode + Replacing the dock and some elements with something similar as in VK Messenger Account Dark theme @@ -5926,7 +6073,7 @@ May look like a fake leaving the online" Block ads Dockbar elements VKX Integration - VK Me mode + VK Messenger mode Offline mode Navbar coloring Installed packs @@ -5955,7 +6102,209 @@ May look like a fake leaving the online" Wallpapers Translate + Read to Disable protection VK has started blocking the use of third-party applications, so for the stable operation of all parts of the application, it is necessary to disable Protection from suspicious applications \n\nVK ID -> Security and Login -> Protection from suspicious applications + + Telegram stickers service in VTLite + : downloading + : update + Getting info + updated successfully + downloaded successfully + : update failed + : download failed + + You are authorized as + Login + Password + Enter your username and password + Login + Are you sure? + Are you sure you want to log out? + + Video history cleared + + Enter video link + + Music downloading + Music downloading progress + + Copying the ffmpegkit library + + Failed to save log file + The log file has been saved + + Copy ID + Addon info + Change name + Copied! + + Apply + + Select the size of the rounding corners + Set to 0 to disable corner rounding + + + Disabled + Low + Medium + High + Dim + Lighten + + Reply: + No text to translate + + Dialog successfully + pinned + unpinned + + Developer menu already activated + Developer menu activated + + Some settings were hidden due to VK Messenger mode \n\nTo disable the mode, go to the Messages settings + + Elements hidden + + Help the project with a donation and get a bonus! + Tester\'s profile + I bought + I created a poop + I didn\'t get data (9(9(( + + Token saved successfully + Download folders reset successfully + + Not enabled + Clear cache at least 100mb + Clear cache at least 500mb + Clear cache at least 1 GB + Clear cache at least 2 GB + Clear cache at least 5 GB + Cache cleaning + Select the amount of cache to clear + Select what you want to clean + Cache cleared + + No data to backup + Choose a backup + Settings restored + Error: Settings not restored + + Name change + This is a local change that will only be visible at this client. + User renamed successfully! + Error while renaming user + Reset + User successfully removed from database! + Community renamed successfully! + Community was successfully removed from the database! + + Audio link could not be found + Unable to load audio + Audio downloading + + Set up proxy + Disable + Enable + Zaborona is not associated with VTosters in any way and we cannot guarantee its work and security + Proxy settings + + Error installing update + + 15 seconds + 1 minute + 5 minutes + 1 hour + 24 hours + + Silent messages + Send settings + Select the time when the message disappears + + Update VK Admin token in Other settings + + Saved to file + Failed to save file + + Update the feed to get a list of available items + Choose items to hide + Update the feed to apply changes + Hidden items reset + + Downloading stories is not supported + Invalid link + Video processing + Video cannot be downloaded + + App menu + MiniApps widget + VK Pay + Greeting + MiniApps promo + Friends\' birthdays + Weather + Sport events + Games + Informer + Food + Events + Music + VK Run + + %1$d feeds are hidden + No items added + %1$d items added + + Select app title + Not all features are available! + To unlock, you need to make a donation of at least 99 rubles + Icons + Unavailable icons + The icon is only available to verified owners + + Rounding size: %1$ddp + + Sferum + VK Calls + VK Music + VK Clips + VK Video + VK Mail + + Select wallpaper + from gallery + Remove wallpaper + Not all filters are available! + Device may be loaded + Blur message background + Dimming an image + Mosaic + Black and white background + Invert colors + Sepia effect + Emboss filter + Engrave filter + Flea filter + Snow effect + + Encryption method + Encryption settings + Disable encryption + Encryption settings + The selected algorithm is public and has no settings! + Enter encryption key + Algorithm used: %1$s.\nPlease note that if the field is empty, the default key will be used. + + Update failed + An error occurred while trying to download the new version of the app.\nDo you want to update the app manually? + + Failed to get photo link + + Disclaimer + The developers of the VTLite client assume no responsibility for the safety of using third-party proxies \n\nUse at your own risk + + Alternative VikaMobile domain diff --git a/smali/res/values/styles.xml b/smali/res/values/styles.xml index 12b5ef973..ef23bea00 100644 --- a/smali/res/values/styles.xml +++ b/smali/res/values/styles.xml @@ -1915,10 +1915,10 @@ @color/vkui_text_commerce_new end center - @dimen/stiсkers_catalog_button_padding_left - @dimen/stiсkers_catalog_button_padding_top - @dimen/stiсkers_catalog_button_padding_right - @dimen/stiсkers_catalog_button_padding_bottom + @dimen/stickers_catalog_button_padding_left + @dimen/stickers_catalog_button_padding_top + @dimen/stickers_catalog_button_padding_right + @dimen/stickers_catalog_button_padding_bottom wrap_content wrap_content true @@ -6359,8 +6359,8 @@ @color/gold_400 @color/white @color/gold_250 - @color/black - @color/black + @color/gray_900 + @color/gray_900 @color/gray_600 @color/gray_600 @color/gray_800 @@ -6619,8 +6619,8 @@ @color/gold_400 @color/white @color/gold_250 - @color/black - @color/black + @color/gray_900 + @color/gray_900 @color/gray_600 @color/gray_600 @color/gray_800 diff --git a/smali/res/xml/preferences_activity.xml b/smali/res/xml/preferences_activity.xml index e03dbbe23..835e52ec0 100644 --- a/smali/res/xml/preferences_activity.xml +++ b/smali/res/xml/preferences_activity.xml @@ -29,8 +29,8 @@ + android:summary="@string/onlineformatter_summ" + android:title="@string/onlineformatter_title" /> - + + android:title="@string/listen_v_title" /> - + - + android:summary="@string/onlinefix_summ" + android:title="@string/onlinefix_title" /> + android:summary="@string/savemsgsett_summ" + android:title="@string/savemsgsett_title" /> + android:summary="@string/screenshotdetect_summ" + android:title="@string/screenshotdetect_title" /> + android:summary="@string/hideDeviceInfo_summ" + android:title="@string/hideDeviceInfo_title" /> \ No newline at end of file diff --git a/smali/res/xml/preferences_debug.xml b/smali/res/xml/preferences_debug.xml index d2771cc29..a3d76aea3 100644 --- a/smali/res/xml/preferences_debug.xml +++ b/smali/res/xml/preferences_debug.xml @@ -25,11 +25,11 @@ + android:title="@string/newadblock_title" /> + android:title="@string/podcastcatalog_title" /> + android:title="@string/useNewSettings_title" /> + android:title="@string/musicFixNew_title" /> + android:title="@string/new_music_downloading_way_title" /> + android:title="@string/debug_domains"> + android:title="@string/debug_domains_api" /> + android:title="@string/debug_domains_oauth" /> + android:title="@string/debug_domains_awayphp" /> + android:title="@string/debug_network"> + android:title="@string/debug_logging"> + android:title="@string/debug_logging_api" /> + android:title="@string/debug_logging_force_stats_sending" /> + android:title="@string/debug_logging_webview" /> + android:summary="@string/debug_logging_visualise_viewposttime_summary" + android:title="@string/debug_logging_visualise_viewposttime" /> + android:summary="@string/debug_logging_breakpoints_summary" + android:title="@string/debug_logging_breakpoints" /> + android:summary="@string/debug_logging_apply_spaces_summary" + android:title="@string/debug_logging_apply_spaces" /> + android:title="@string/debug_logging_memleak" /> + android:title="@string/debug_logging_api_errors" /> + android:summary="@string/debug_logging_file_summary" + android:title="@string/debug_logging_file" /> + android:title="@string/debug_cache"> + android:title="@string/debug_cache_trusted_hash" /> + android:title="@string/debug_cache_webview" /> + android:title="@string/debug_cache_vkpay_token" /> + android:title="@string/debug_cache_stickers" /> + android:title="@string/debug_system"> + android:title="@string/debug_system_language" /> + android:title="@string/debug_system_terminate" /> + android:title="@string/debug_system_fcm" /> + android:title="@string/debug_system_fcm_copy_token" /> + android:title="@string/stories"> + android:title="@string/debug_clickable_sticker_border_title" /> + android:title="@string/debug_create_sticker_border_title" /> + android:title="@string/debug_tests"> + android:title="@string/debug_tests_bd" /> + android:title="@string/debug_tests_validation" /> + android:title="@string/debug_tests_captcha" /> + android:title="@string/debug_tests_crash" /> + android:title="@string/debug_tests_spa_uri" /> + android:title="@string/debug_tests_tooltip" /> + android:title="@string/bugs"> + android:title="@string/debug_app_versions_list_title" /> + android:title="@string/debug_drop_bugtracker_token_title" /> + android:title="@string/debug_other"> + android:title="@string/debug_no_ads_title" /> + android:title="@string/debug_proxy_enable_title" /> + android:title="@string/debug_use_libverify_for_auth_title" /> \ No newline at end of file diff --git a/smali/res/xml/preferences_feed.xml b/smali/res/xml/preferences_feed.xml index 24a0c994c..6ed207495 100644 --- a/smali/res/xml/preferences_feed.xml +++ b/smali/res/xml/preferences_feed.xml @@ -31,6 +31,14 @@ android:defaultValue="" android:key="spamfilters" android:title="@string/vtlownfilter" /> + + - + android:summary="@string/cringecopyright_summ" + android:title="@string/cringecopyright_title" /> + android:summary="@string/cringerepost_summ" + android:title="@string/cringerepost_title" /> + android:summary="@string/why_news_not_updated_summ" + android:title="@string/why_news_not_updated_title" /> + + - \ No newline at end of file + diff --git a/smali/res/xml/preferences_general.xml b/smali/res/xml/preferences_general.xml index 4811f8862..67f0f5f55 100644 --- a/smali/res/xml/preferences_general.xml +++ b/smali/res/xml/preferences_general.xml @@ -96,8 +96,8 @@ android:title="@string/sett_clear_audio_cache" /> + android:summary="@string/where_is_cache_settings_summ" + android:title="@string/where_is_cache_settings" /> \ No newline at end of file diff --git a/smali/res/xml/preferences_general_milkshake.xml b/smali/res/xml/preferences_general_milkshake.xml index fd145a56c..afe785912 100644 --- a/smali/res/xml/preferences_general_milkshake.xml +++ b/smali/res/xml/preferences_general_milkshake.xml @@ -96,7 +96,7 @@ android:title="@string/sett_clear_audio_cache" /> + android:summary="@string/where_is_cache_settings_summ" + android:title="@string/where_is_cache_settings" /> \ No newline at end of file diff --git a/smali/res/xml/preferences_gms.xml b/smali/res/xml/preferences_gms.xml index 9ebb78a6d..bf3bc58ab 100644 --- a/smali/res/xml/preferences_gms.xml +++ b/smali/res/xml/preferences_gms.xml @@ -1,43 +1,43 @@ - + + android:summary="@string/gms_what_is_summ" + android:title="@string/gms_what_is_title" /> + android:summary="@string/gms_why_need_summ" + android:title="@string/gms_why_need_title" /> - + + android:summary="@string/gms_what_to_do_then_summ" + android:title="@string/gms_what_to_do_then" /> + android:summary="@string/gms_what_is_microg_summ" + android:title="@string/gms_what_is_microg" /> + android:title="@string/gms_microg_site"> + + + - - - - + + android:summary="@string/gms_what_to_do_after_microg_summ" + android:title="@string/gms_what_to_do_after_microg_title" /> \ No newline at end of file diff --git a/smali/res/xml/preferences_interface.xml b/smali/res/xml/preferences_interface.xml index ace298ee3..4142f05af 100644 --- a/smali/res/xml/preferences_interface.xml +++ b/smali/res/xml/preferences_interface.xml @@ -13,8 +13,12 @@ + android:summary="@string/whatsnew_summ" + android:title="@string/whatsnew_title" /> + + + android:summary="@string/postsredesign_summ" + android:title="@string/postsredesign_title" /> - + + android:summary="@string/miniapps_summ" + android:title="@string/miniapps_title" /> + android:summary="@string/show_vkpay_summ" + android:title="@string/show_vkpay_title" /> + android:summary="@string/show_superapps_summ" + android:title="@string/show_superapps_title" /> + android:summary="@string/friendsblock_summ" + android:title="@string/friendsblock_title" /> + android:summary="@string/pollresults_summ" + android:title="@string/pollresults_title" /> + + + + + + + android:summary="@string/lastfm_auth_summ" + android:title="@string/lastfm_auth_title" /> + android:summary="@string/lastfm_enabled_summ" + android:title="@string/lastfm_enabled_title" /> - + + android:summary="@string/musicnewcatalog_summ" + android:title="@string/musicnewcatalog_title" /> + android:title="@string/musicdefcatalog_title" /> - + + android:title="@string/vtl_download_video_title" /> + android:summary="@string/videonewcatalog_summ" + android:title="@string/videonewcatalog_title" /> + android:summary="@string/clearvideohistory_summ" + android:title="@string/clearvideohistory_title" /> - + + android:title="@string/photo_search_engine_title" /> + android:title="@string/wallpapers_title" /> + android:summary="@string/convBarRecomm_summ" + android:title="@string/convBarRecomm_title" /> - + - + + android:title="@string/translator_translate_language" /> + android:title="@string/translator_translate_service" /> + android:summary="@string/autotranslate_summ" + android:title="@string/autotranslate_title" /> + android:summary="@string/autoalltranslate_summ" + android:title="@string/autoalltranslate_title" /> + android:title="@string/clearcache_other_title" /> @@ -19,28 +19,31 @@ + + android:title="@string/vk_admin_token_title" /> - + + android:summary="@string/saveonlines_summ" + android:title="@string/saveonlines_title" /> + android:title="@string/saveprefs_title" /> + android:title="@string/restoreprefs_title" /> + + + android:title="Hookzof Socks"> + android:data="https://github.com/hookzof/socks5_list" /> + android:title="Jetkai Socks/Https/Http"> + android:data="https://github.com/jetkai/proxy-list" /> + + + + + + + + + + + + + + + + @@ -100,20 +149,5 @@ android:action="android.intent.action.VIEW" android:data="https://github.com/xtrafrancyz/vk-proxy" /> - - - - - - \ No newline at end of file diff --git a/smali/res/xml/preferences_themes.xml b/smali/res/xml/preferences_themes.xml index 3759d0523..8d0768465 100644 --- a/smali/res/xml/preferences_themes.xml +++ b/smali/res/xml/preferences_themes.xml @@ -4,8 +4,8 @@ + android:summary="@string/milkshake_summ" + android:title="@string/milkshake_title" /> - + + android:title="@string/dockbar_accent_title" /> + android:summary="@string/iconmanager_summ" + android:title="@string/iconmanager_title" /> inject(FFFF)Lcom/facebook/drawee/generic/RoundingParams; - invoke-direct {v0}, Lcom/facebook/drawee/generic/RoundingParams;->()V - - .line 5 - invoke-virtual {v0, p0, p1, p2, p3}, Lcom/facebook/drawee/generic/RoundingParams;->a(FFFF)Lcom/facebook/drawee/generic/RoundingParams; + move-result-object v0 return-object v0 .end method @@ -88,12 +84,9 @@ .method public static d(F)Lcom/facebook/drawee/generic/RoundingParams; .locals 1 - .line 2 - new-instance v0, Lcom/facebook/drawee/generic/RoundingParams; + invoke-static {p0}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(F)Lcom/facebook/drawee/generic/RoundingParams; - invoke-direct {v0}, Lcom/facebook/drawee/generic/RoundingParams;->()V - - invoke-virtual {v0, p0}, Lcom/facebook/drawee/generic/RoundingParams;->b(F)Lcom/facebook/drawee/generic/RoundingParams; + move-result-object v0 return-object v0 .end method @@ -101,14 +94,9 @@ .method public static i()Lcom/facebook/drawee/generic/RoundingParams; .locals 2 - .line 1 - new-instance v0, Lcom/facebook/drawee/generic/RoundingParams; + invoke-static {}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject()Lcom/facebook/drawee/generic/RoundingParams; - invoke-direct {v0}, Lcom/facebook/drawee/generic/RoundingParams;->()V - - const/4 v1, 0x1 - - invoke-virtual {v0, v1}, Lcom/facebook/drawee/generic/RoundingParams;->a(Z)Lcom/facebook/drawee/generic/RoundingParams; + move-result-object v0 return-object v0 .end method diff --git a/smali/smali_classes2/b/h/g/m/FileUtils.smali b/smali/smali_classes2/b/h/g/m/FileUtils.smali index 1132cd993..41e01c81f 100644 --- a/smali/smali_classes2/b/h/g/m/FileUtils.smali +++ b/smali/smali_classes2/b/h/g/m/FileUtils.smali @@ -187,13 +187,17 @@ .locals 2 .line 6 - invoke-static {}, Lb/h/g/m/FileUtils;->getVKDir()Ljava/io/File; +# invoke-static {}, Lb/h/g/m/FileUtils;->getVKDir()Ljava/io/File; +# +# move-result-object v0 +# +# const-string v1, "Downloads" +# +# invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; +# +# move-result-object v0 - move-result-object v0 - - const-string v1, "Downloads" - - invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; + invoke-static {}, Lru/vtosters/lite/utils/Preferences;->getDownloadsDir()Ljava/io/File; move-result-object v0 @@ -1807,14 +1811,18 @@ .method private static c()Ljava/io/File; .locals 2 - .line 1 - invoke-static {}, Lb/h/g/m/FileUtils;->getVKDir()Ljava/io/File; + # .line 1 + # invoke-static {}, Lb/h/g/m/FileUtils;->getVKDir()Ljava/io/File; - move-result-object v0 + # move-result-object v0 - const-string v1, "Photos" + # const-string v1, "Photos" - invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; + # invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; + + # move-result-object v0 + + invoke-static {}, Lru/vtosters/lite/utils/Preferences;->getPhotosDir()Ljava/io/File; move-result-object v0 @@ -2101,14 +2109,18 @@ .method private static e()Ljava/io/File; .locals 2 - .line 1 - invoke-static {}, Lb/h/g/m/FileUtils;->getVKDir()Ljava/io/File; + # .line 1 + # invoke-static {}, Lb/h/g/m/FileUtils;->getVKDir()Ljava/io/File; - move-result-object v0 + # move-result-object v0 - const-string v1, "Videos" + # const-string v1, "Videos" - invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; + # invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; + + # move-result-object v0 + + invoke-static {}, Lru/vtosters/lite/utils/Preferences;->getVideosDir()Ljava/io/File; move-result-object v0 @@ -3627,12 +3639,6 @@ .line 2 invoke-static {v0}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;)V - const-string v1, "Download" - - invoke-static {v0, v1}, Lb/h/g/m/FileUtils;->a(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; - - move-result-object v0 - const-string v1, "VK" .line 3 diff --git a/smali/smali_classes2/com/vk/api/account/AccountGetBanned.smali b/smali/smali_classes2/com/vk/api/account/AccountGetBanned.smali index 68ad7c124..9b7b90c52 100644 --- a/smali/smali_classes2/com/vk/api/account/AccountGetBanned.smali +++ b/smali/smali_classes2/com/vk/api/account/AccountGetBanned.smali @@ -82,6 +82,10 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookProfiles(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + const-string v0, "items" .line 3 @@ -106,6 +110,8 @@ invoke-direct {v1}, Landroid/util/SparseArray;->()V + + const-string v2, "profiles" .line 6 diff --git a/smali/smali_classes2/com/vk/api/base/ApiConfig$a$a$a.smali b/smali/smali_classes2/com/vk/api/base/ApiConfig$a$a$a.smali index 64df05ebd..7ebfa7d71 100644 --- a/smali/smali_classes2/com/vk/api/base/ApiConfig$a$a$a.smali +++ b/smali/smali_classes2/com/vk/api/base/ApiConfig$a$a$a.smali @@ -103,7 +103,7 @@ const-string v0, "api.vk.com" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 @@ -123,7 +123,7 @@ const-string v0, "api.vk.com" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/api/base/ApiRequest.smali b/smali/smali_classes2/com/vk/api/base/ApiRequest.smali index 243d92b16..c01e1be67 100644 --- a/smali/smali_classes2/com/vk/api/base/ApiRequest.smali +++ b/smali/smali_classes2/com/vk/api/base/ApiRequest.smali @@ -827,25 +827,23 @@ invoke-direct {v0}, Lcom/vk/api/internal/MethodCall$a;->()V + invoke-virtual {p0}, Lcom/vk/api/sdk/o/VKRequest;->a()Ljava/lang/String; move-result-object v1 - invoke-virtual {v0, v1}, Lcom/vk/api/internal/MethodCall$a;->a(Ljava/lang/String;)Lcom/vk/api/internal/MethodCall$a; - .line 9 invoke-virtual {p0}, Lcom/vk/api/sdk/o/VKRequest;->b()Ljava/util/LinkedHashMap; - move-result-object v1 - - invoke-virtual {v0, v1}, Lcom/vk/api/internal/MethodCall$a;->a(Ljava/util/Map;)Lcom/vk/api/internal/MethodCall$a; + move-result-object v2 .line 10 invoke-virtual {p0}, Lcom/vk/api/base/ApiRequest;->f()Ljava/lang/String; - move-result-object v1 + move-result-object v3 + + invoke-static {v0, v1, v2, v3}, Lru/vtosters/lite/hooks/RequestDumper;->addParams(Lcom/vk/api/internal/MethodCall$a;Ljava/lang/String;Ljava/util/LinkedHashMap;Ljava/lang/String;)V - invoke-virtual {v0, v1}, Lcom/vk/api/internal/MethodCall$a;->b(Ljava/lang/String;)Lcom/vk/api/internal/MethodCall$a; .line 11 iget-boolean v1, p0, Lcom/vk/api/base/ApiRequest;->g:Z @@ -1260,7 +1258,7 @@ move-result-object v0 - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 @@ -1269,7 +1267,7 @@ :cond_0 const-string v0, "api.vk.com" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/api/base/ListAPIRequest.smali b/smali/smali_classes2/com/vk/api/base/ListAPIRequest.smali index 62f9b3209..692bf7983 100644 --- a/smali/smali_classes2/com/vk/api/base/ListAPIRequest.smali +++ b/smali/smali_classes2/com/vk/api/base/ListAPIRequest.smali @@ -186,5 +186,13 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookProfiles(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookItems(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + return-object p1 .end method diff --git a/smali/smali_classes2/com/vk/api/friends/FriendsGet.smali b/smali/smali_classes2/com/vk/api/friends/FriendsGet.smali index 860a5328d..e90620e3e 100644 --- a/smali/smali_classes2/com/vk/api/friends/FriendsGet.smali +++ b/smali/smali_classes2/com/vk/api/friends/FriendsGet.smali @@ -297,6 +297,10 @@ move-result-object v5 + invoke-static {v5}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookItems(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object v5 + const-string v6, "items" invoke-virtual {v5, v6}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray; diff --git a/smali/smali_classes2/com/vk/api/friends/FriendsGetRequestsAndRecommendations.smali b/smali/smali_classes2/com/vk/api/friends/FriendsGetRequestsAndRecommendations.smali index feb537e5f..8bb83d6ff 100644 --- a/smali/smali_classes2/com/vk/api/friends/FriendsGetRequestsAndRecommendations.smali +++ b/smali/smali_classes2/com/vk/api/friends/FriendsGetRequestsAndRecommendations.smali @@ -57,6 +57,10 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookRequestsAndRecommendations(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + const-string v1, "r.getJSONObject(\"response\")" invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V @@ -133,4 +137,4 @@ aput v2, v0, v1 return-object v0 -.end method +.end method \ No newline at end of file diff --git a/smali/smali_classes2/com/vk/api/gifts/GiftGetByStickerId$a.smali b/smali/smali_classes2/com/vk/api/gifts/GiftGetByStickerId$a.smali deleted file mode 100644 index 019ebdc25..000000000 --- a/smali/smali_classes2/com/vk/api/gifts/GiftGetByStickerId$a.smali +++ /dev/null @@ -1,37 +0,0 @@ -.class public Lcom/vk/api/gifts/GiftGetByStickerId$a; -.super Ljava/lang/Object; -.source "GiftGetByStickerId.java" - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/vk/api/gifts/GiftGetByStickerId; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x9 - name = "a" -.end annotation - - -# instance fields -.field public final a:I - -.field public final b:Lcom/vk/dto/gift/CatalogedGift; - - -# direct methods -.method public constructor (ILcom/vk/dto/gift/CatalogedGift;)V - .locals 0 - - .line 1 - invoke-direct {p0}, Ljava/lang/Object;->()V - - .line 2 - iput p1, p0, Lcom/vk/api/gifts/GiftGetByStickerId$a;->a:I - - .line 3 - iput-object p2, p0, Lcom/vk/api/gifts/GiftGetByStickerId$a;->b:Lcom/vk/dto/gift/CatalogedGift; - - return-void -.end method diff --git a/smali/smali_classes2/com/vk/api/gifts/GiftGetByStickerId.smali b/smali/smali_classes2/com/vk/api/gifts/GiftGetByStickerId.smali deleted file mode 100644 index f25452270..000000000 --- a/smali/smali_classes2/com/vk/api/gifts/GiftGetByStickerId.smali +++ /dev/null @@ -1,121 +0,0 @@ -.class public Lcom/vk/api/gifts/GiftGetByStickerId; -.super Lcom/vk/api/base/ApiRequest; -.source "GiftGetByStickerId.java" - - -# annotations -.annotation system Ldalvik/annotation/MemberClasses; - value = { - Lcom/vk/api/gifts/GiftGetByStickerId$a; - } -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Lcom/vk/api/base/ApiRequest<", - "Lcom/vk/api/gifts/GiftGetByStickerId$a;", - ">;" - } -.end annotation - - -# direct methods -.method public constructor (Landroid/content/Context;I)V - .locals 1 - - const-string v0, "execute.getGiftByStickerId" - - .line 1 - invoke-direct {p0, v0}, Lcom/vk/api/base/ApiRequest;->(Ljava/lang/String;)V - - const-string v0, "sticker_id" - - .line 2 - invoke-virtual {p0, v0, p2}, Lcom/vk/api/base/ApiRequest;->b(Ljava/lang/String;I)Lcom/vk/api/base/ApiRequest; - - .line 3 - invoke-static {p1}, Lcom/google/android/gms/common/GooglePlayServicesUtil;->isGooglePlayServicesAvailable(Landroid/content/Context;)I - - move-result p1 - - if-eqz p1, :cond_0 - - const-string p1, "1" - - goto :goto_0 - - :cond_0 - const-string p1, "0" - - :goto_0 - const-string p2, "no_inapp" - - invoke-virtual {p0, p2, p1}, Lcom/vk/api/base/ApiRequest;->c(Ljava/lang/String;Ljava/lang/String;)Lcom/vk/api/base/ApiRequest; - - const/4 p1, 0x1 - - const-string p2, "force_payment" - - .line 4 - invoke-virtual {p0, p2, p1}, Lcom/vk/api/base/ApiRequest;->b(Ljava/lang/String;I)Lcom/vk/api/base/ApiRequest; - - return-void -.end method - - -# virtual methods -.method public a(Lorg/json/JSONObject;)Lcom/vk/api/gifts/GiftGetByStickerId$a; - .locals 3 - .annotation system Ldalvik/annotation/Throws; - value = { - Lorg/json/JSONException; - } - .end annotation - - const-string v0, "response" - - .line 2 - invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject; - - move-result-object p1 - - .line 3 - new-instance v0, Lcom/vk/dto/gift/CatalogedGift; - - const-string v1, "gift" - - invoke-virtual {p1, v1}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject; - - move-result-object v1 - - invoke-direct {v0, v1}, Lcom/vk/dto/gift/CatalogedGift;->(Lorg/json/JSONObject;)V - - .line 4 - new-instance v1, Lcom/vk/api/gifts/GiftGetByStickerId$a; - - const-string v2, "balance" - - invoke-virtual {p1, v2}, Lorg/json/JSONObject;->optInt(Ljava/lang/String;)I - - move-result p1 - - invoke-direct {v1, p1, v0}, Lcom/vk/api/gifts/GiftGetByStickerId$a;->(ILcom/vk/dto/gift/CatalogedGift;)V - - return-object v1 -.end method - -.method public bridge synthetic a(Lorg/json/JSONObject;)Ljava/lang/Object; - .locals 0 - .annotation system Ldalvik/annotation/Throws; - value = { - Ljava/lang/Exception; - } - .end annotation - - .line 1 - invoke-virtual {p0, p1}, Lcom/vk/api/gifts/GiftGetByStickerId;->a(Lorg/json/JSONObject;)Lcom/vk/api/gifts/GiftGetByStickerId$a; - - move-result-object p1 - - return-object p1 -.end method diff --git a/smali/smali_classes2/com/vk/api/polls/PollGetVoters.smali b/smali/smali_classes2/com/vk/api/polls/PollGetVoters.smali index 2dcac7ead..b18f4e577 100644 --- a/smali/smali_classes2/com/vk/api/polls/PollGetVoters.smali +++ b/smali/smali_classes2/com/vk/api/polls/PollGetVoters.smali @@ -184,6 +184,10 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookItems(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + const-string v0, "r.getJSONArray(\"response\u20260).getJSONObject(\"users\")" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/smali/smali_classes2/com/vk/api/sdk/VKApiConfig$6.smali b/smali/smali_classes2/com/vk/api/sdk/VKApiConfig$6.smali index 866aa4178..506c985e6 100644 --- a/smali/smali_classes2/com/vk/api/sdk/VKApiConfig$6.smali +++ b/smali/smali_classes2/com/vk/api/sdk/VKApiConfig$6.smali @@ -71,7 +71,7 @@ const-string v0, "api.vk.com" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/api/sdk/auth/VKAuthParams$a.smali b/smali/smali_classes2/com/vk/api/sdk/auth/VKAuthParams$a.smali index 66da43a0d..02c8fd670 100644 --- a/smali/smali_classes2/com/vk/api/sdk/auth/VKAuthParams$a.smali +++ b/smali/smali_classes2/com/vk/api/sdk/auth/VKAuthParams$a.smali @@ -114,7 +114,7 @@ const-string v3, "https://oauth.vk.com/blank.html" - invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 diff --git a/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity.smali b/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity.smali index 176b8f987..a035c9a7a 100644 --- a/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity.smali +++ b/smali/smali_classes2/com/vk/api/sdk/ui/VKWebViewAuthActivity.smali @@ -202,7 +202,7 @@ :cond_0 const-string v0, "https://oauth.vk.com/authorize" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/attachpicker/u/j/FiltersController.smali b/smali/smali_classes2/com/vk/attachpicker/u/j/FiltersController.smali index de38f6314..fd862a9ba 100644 --- a/smali/smali_classes2/com/vk/attachpicker/u/j/FiltersController.smali +++ b/smali/smali_classes2/com/vk/attachpicker/u/j/FiltersController.smali @@ -21,7 +21,7 @@ const-string v1, "{\"response\":{\"catalog_version\":11,\"filters\":{\"count\":9,\"items\":[{\"id\":\"snow\",\"app_version\":\"v2.0.0(14077)\",\"preset\":{\"col\":[{\"lumAdj\":0.036000,\"satAdj\":0.145000,\"sm\":0.350000,\"fG\":0.500000,\"fB\":0.500000,\"thr\":0.350000,\"fR\":0.500000,\"hue\":0},{\"lumAdj\":0.099000,\"satAdj\":0,\"sm\":0.350000,\"fG\":1,\"fB\":1,\"thr\":0.034000,\"fR\":1,\"hue\":0.567000},{\"lumAdj\":0.061000,\"satAdj\":0.860000,\"sm\":0.224000,\"fG\":0.451000,\"fB\":0.451000,\"thr\":0.069000,\"fR\":1,\"hue\":0.057000},{\"lumAdj\":0,\"satAdj\":0.224000,\"sm\":0.111000,\"fG\":0,\"fB\":0,\"thr\":0.051000,\"fR\":0.702000,\"hue\":0.018000},{\"lumAdj\":-0.038000,\"satAdj\":0.136000,\"sm\":0.332000,\"fG\":0,\"fB\":0,\"thr\":0.177000,\"fR\":1,\"hue\":0.018000},{\"lumAdj\":0.111000,\"satAdj\":0.864000,\"sm\":0.348000,\"fG\":1,\"fB\":1,\"thr\":0.071000,\"fR\":0,\"hue\":0.572000},{\"lumAdj\":-0.069000,\"satAdj\":0.178000,\"sm\":0.068000,\"fG\":0,\"fB\":0,\"thr\":0,\"fR\":0,\"hue\":0.949000}],\"red_curve\":[0,64,128,192,255],\"sat\":-0.025000,\"con\":-0.299000,\"green_curve\":[0,64,128,192,255],\"blue_curve\":[0,64,128,192,255],\"rgb_curve\":[0,57,132,194,255],\"br\":-0.102000,\"enh\":0.399000,\"tint\":-0.138000},\"name\":\"Snow\",\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/snow@2x.jpg?3\"},{\"id\":\"lake\",\"date\":0,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":0.018145,\"col\":[{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":0.441830,\"lumAdj\":-0.095000,\"satAdj\":0.311000,\"sm\":0.264000,\"thr\":0.185000},{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":1.000000,\"lumAdj\":0.021000,\"satAdj\":0.000000,\"sm\":0.350000,\"thr\":0.409000},{\"fB\":0.176000,\"fG\":0.192000,\"fR\":0.243000,\"hue\":0.662092,\"lumAdj\":-0.003000,\"satAdj\":0.122984,\"sm\":0.146000,\"thr\":0.026000},{\"fB\":0.251000,\"fG\":0.251000,\"fR\":0.251000,\"hue\":0.418954,\"lumAdj\":-0.035685,\"satAdj\":-0.012097,\"sm\":0.311000,\"thr\":0.120000},{\"fB\":0.600000,\"fG\":1.000000,\"fR\":0.992000,\"hue\":0.170000,\"lumAdj\":0.023000,\"satAdj\":-0.347000,\"sm\":0.271000,\"thr\":0.130000},{\"fB\":0.302000,\"fG\":0.302000,\"fR\":1.000000,\"hue\":0.022000,\"lumAdj\":0.021000,\"satAdj\":0.250000,\"sm\":0.255000,\"thr\":0.087000},{\"fB\":0.424000,\"fG\":0.525000,\"fR\":0.765000,\"hue\":0.069935,\"lumAdj\":0.040524,\"satAdj\":-0.177419,\"sm\":0.129486,\"thr\":0.038199},{\"fB\":0.188000,\"fG\":0.220000,\"fR\":0.329000,\"hue\":0.037000,\"lumAdj\":-0.016000,\"satAdj\":0.333000,\"sm\":0.097000,\"thr\":0.006000},{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":0.350980,\"lumAdj\":0.061000,\"satAdj\":0.052000,\"sm\":0.319000,\"thr\":0.009000}],\"con\":0.119000,\"localCurrentColor\":3,\"enh\":0.000000,\"fade\":0.000000,\"gr\":0.000000,\"green_curve\":[0,64,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,71,134,192,255],\"sat\":0.370968,\"shar\":0.000000,\"tem\":-0.415000,\"tint\":0.000000,\"vig\":0.000000},\"isDisabled\":false,\"name\":\"Lake\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/lake@2x.jpg?3\"},{\"id\":\"dew\",\"date\":0,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":0.000000,\"col\":[{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":0.505000,\"lumAdj\":-0.041000,\"satAdj\":0.089000,\"sm\":0.194000,\"thr\":0.039000},{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":0.108000,\"lumAdj\":-0.031000,\"satAdj\":-0.084000,\"sm\":0.350000,\"thr\":0.096000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":1.000000,\"hue\":0.071895,\"lumAdj\":-0.031000,\"satAdj\":0.038000,\"sm\":0.172000,\"thr\":0.243000},{\"fB\":0.000000,\"fG\":0.549000,\"fR\":0.012000,\"hue\":0.506000,\"lumAdj\":-0.096000,\"satAdj\":1.000000,\"sm\":0.204000,\"thr\":0.096000},{\"fB\":0.451000,\"fG\":0.427000,\"fR\":0.467000,\"hue\":0.900000,\"lumAdj\":0.000000,\"satAdj\":0.190000,\"sm\":0.030000,\"thr\":0.000000},{\"fB\":0.431000,\"fG\":0.420000,\"fR\":0.392000,\"hue\":0.550000,\"lumAdj\":0.000000,\"satAdj\":0.482000,\"sm\":0.077000,\"thr\":0.002000},{\"fB\":0.780000,\"fG\":0.792000,\"fR\":0.745000,\"hue\":0.542000,\"lumAdj\":0.000000,\"satAdj\":-1.000000,\"sm\":0.297000,\"thr\":0.003000},{\"fB\":0.200000,\"fG\":0.200000,\"fR\":0.200000,\"hue\":0.966013,\"lumAdj\":-0.029032,\"satAdj\":0.098790,\"sm\":0.350000,\"thr\":0.023000},{\"fB\":0.337000,\"fG\":0.047000,\"fR\":0.035000,\"hue\":0.837908,\"lumAdj\":-0.001000,\"satAdj\":0.216000,\"sm\":0.117000,\"thr\":0.105000},{\"fB\":1.000000,\"fG\":0.835000,\"fR\":0.690000,\"hue\":0.480000,\"lumAdj\":-0.110000,\"satAdj\":0.201000,\"sm\":0.086000,\"thr\":0.002000},{\"fB\":0.490000,\"fG\":0.659000,\"fR\":0.698000,\"hue\":0.022000,\"lumAdj\":-0.002000,\"satAdj\":0.318000,\"sm\":0.307000,\"thr\":0.028000},{\"fB\":0.478000,\"fG\":0.592000,\"fR\":0.835000,\"hue\":0.053000,\"lumAdj\":0.108000,\"satAdj\":0.333000,\"sm\":0.221000,\"thr\":0.004000},{\"fB\":0.886000,\"fG\":0.612000,\"fR\":0.380000,\"hue\":0.476000,\"lumAdj\":-0.052000,\"satAdj\":0.571000,\"sm\":0.155000,\"thr\":0.010000}],\"con\":0.000000,\"localCurrentColor\":8,\"enh\":0.000000,\"fade\":0.000000,\"gr\":0.000000,\"green_curve\":[0,64,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,64,128,192,255],\"sat\":0.000000,\"shar\":0.000000,\"tem\":0.000000,\"tint\":0.000000,\"vig\":0.007000},\"isDisabled\":false,\"name\":\"Dew\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/dew@2x.jpg?3\"},{\"id\":\"ash\",\"date\":0,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":0.000000,\"col\":[{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":1.000000,\"lumAdj\":-0.027000,\"satAdj\":-0.636000,\"sm\":0.348000,\"thr\":0.018000},{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":0.032026,\"lumAdj\":-0.041129,\"satAdj\":0.100806,\"sm\":0.348000,\"thr\":0.138000},{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":0.167320,\"lumAdj\":-0.062298,\"satAdj\":0.062500,\"sm\":0.256000,\"thr\":0.000000},{\"fB\":0.561000,\"fG\":0.651000,\"fR\":0.745000,\"hue\":0.104000,\"lumAdj\":-0.025000,\"satAdj\":0.309000,\"sm\":0.092000,\"thr\":0.019000},{\"fB\":0.149000,\"fG\":0.149000,\"fR\":0.149000,\"hue\":0.986000,\"lumAdj\":-0.043000,\"satAdj\":0.206000,\"sm\":0.188000,\"thr\":0.008000},{\"fB\":0.961000,\"fG\":0.631000,\"fR\":0.412000,\"hue\":0.535294,\"lumAdj\":0.000000,\"satAdj\":0.989919,\"sm\":0.202000,\"thr\":0.000000}],\"con\":0.000000,\"localCurrentColor\":5,\"enh\":0.179000,\"fade\":0.000000,\"gr\":0.000000,\"green_curve\":[0,64,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,64,128,192,255],\"sat\":0.000000,\"shar\":0.000000,\"tem\":0.000000,\"tint\":0.000000,\"vig\":0.000000},\"isDisabled\":false,\"name\":\"Ash\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/ash@2x.jpg?3\"},{\"id\":\"fen\",\"date\":0,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":0.058000,\"col\":[{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":1.000000,\"lumAdj\":-0.044000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":1.000000,\"lumAdj\":-0.032000,\"satAdj\":0.000000,\"sm\":0.344000,\"thr\":0.358000},{\"fB\":0.176000,\"fG\":0.196000,\"fR\":0.294000,\"hue\":0.030065,\"lumAdj\":-0.019000,\"satAdj\":0.336000,\"sm\":0.037000,\"thr\":0.000000},{\"fB\":0.200000,\"fG\":0.216000,\"fR\":0.235000,\"hue\":0.601307,\"lumAdj\":-0.047177,\"satAdj\":0.133065,\"sm\":0.095000,\"thr\":0.006000},{\"fB\":0.780000,\"fG\":0.471000,\"fR\":0.329000,\"hue\":0.437255,\"lumAdj\":0.000000,\"satAdj\":0.344758,\"sm\":0.150000,\"thr\":0.031000}],\"con\":-0.516000,\"localCurrentColor\":3,\"enh\":0.000000,\"fade\":0.163000,\"gr\":0.000000,\"green_curve\":[0,65,124,192,255],\"red_curve\":[0,65,126,192,255],\"rgb_curve\":[0,42,119,185,249],\"sat\":0.000000,\"shar\":0.000000,\"tem\":0.000000,\"tint\":0.000000,\"vig\":0.000000},\"isDisabled\":false,\"name\":\"Fen\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/fen@2x.jpg?3\"},{\"id\":\"drama\",\"date\":0,\"preset\":{\"blue_curve\":[0,62,128,192,255],\"br\":0.000000,\"col\":[{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.153000,\"fG\":0.180000,\"fR\":0.337000,\"hue\":0.025000,\"lumAdj\":0.000000,\"satAdj\":0.284000,\"sm\":0.103000,\"thr\":0.021000},{\"fB\":0.537000,\"fG\":0.565000,\"fR\":0.804000,\"hue\":0.016993,\"lumAdj\":0.037500,\"satAdj\":0.161290,\"sm\":0.108000,\"thr\":0.010000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":1.000000,\"hue\":1.000000,\"lumAdj\":-0.031452,\"satAdj\":0.800403,\"sm\":0.338004,\"thr\":0.038588},{\"fB\":0.549000,\"fG\":0.631000,\"fR\":0.824000,\"hue\":1.000000,\"lumAdj\":0.058669,\"satAdj\":0.175403,\"sm\":0.155000,\"thr\":0.035000},{\"fB\":0.270588,\"fG\":0.270588,\"fR\":0.325490,\"hue\":1.000000,\"lumAdj\":0.059879,\"satAdj\":0.008065,\"sm\":0.083266,\"thr\":0.008340}],\"con\":0.054435,\"localCurrentColor\":6,\"enh\":0.163306,\"fade\":0.000000,\"gr\":0.000000,\"green_curve\":[0,60,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,49,118,196,255],\"sat\":-0.514113,\"shar\":0.000000,\"tem\":-0.328000,\"tint\":0.000000,\"vig\":0.000000},\"isDisabled\":false,\"name\":\"Drama\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/drama@2x.jpg?3\"},{\"id\":\"sunset\",\"date\":1457719798,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":0.004032,\"col\":[{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":0.533000,\"lumAdj\":-0.177000,\"satAdj\":-0.234000,\"sm\":0.350000,\"thr\":0.000000},{\"fB\":0.337000,\"fG\":0.047000,\"fR\":0.035000,\"hue\":0.570000,\"lumAdj\":-0.052000,\"satAdj\":0.201000,\"sm\":0.117000,\"thr\":0.105000},{\"fB\":0.514000,\"fG\":0.384000,\"fR\":0.361000,\"hue\":0.596078,\"lumAdj\":0.000000,\"satAdj\":0.252000,\"sm\":0.203000,\"thr\":0.025368},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.400000,\"hue\":0.985000,\"lumAdj\":-0.069000,\"satAdj\":0.276000,\"sm\":0.100000,\"thr\":0.057000},{\"fB\":0.400000,\"fG\":0.000000,\"fR\":0.008000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.108871,\"sm\":0.150000,\"thr\":0.100000},{\"fB\":0.043000,\"fG\":0.090000,\"fR\":0.153000,\"hue\":0.041000,\"lumAdj\":-0.036000,\"satAdj\":0.327000,\"sm\":0.059000,\"thr\":0.000000},{\"fB\":0.945000,\"fG\":0.961000,\"fR\":0.961000,\"hue\":0.580000,\"lumAdj\":0.119000,\"satAdj\":0.584000,\"sm\":0.114000,\"thr\":0.000000},{\"fB\":0.333000,\"fG\":0.506000,\"fR\":0.725000,\"hue\":0.083000,\"lumAdj\":0.018000,\"satAdj\":0.679000,\"sm\":0.173000,\"thr\":0.067000},{\"fB\":0.251000,\"fG\":0.251000,\"fR\":0.251000,\"hue\":1.000000,\"lumAdj\":-0.059000,\"satAdj\":0.163000,\"sm\":0.350000,\"thr\":0.000000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":0.619000,\"lumAdj\":-0.013000,\"satAdj\":0.000000,\"sm\":0.177000,\"thr\":0.053000}],\"con\":0.268145,\"localCurrentColor\":3,\"enh\":0.157258,\"fade\":0.000000,\"gr\":0.000000,\"green_curve\":[0,64,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,64,128,192,255],\"sat\":-0.155000,\"shar\":0.250000,\"tem\":-0.488510,\"tint\":-0.186000,\"vig\":0.293000},\"isDisabled\":false,\"name\":\"Sunset\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/sunset@2x.jpg?3\"},{\"id\":\"downpour\",\"date\":1457719647,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":0.000000,\"col\":[{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":0.560131,\"lumAdj\":-0.047177,\"satAdj\":0.107000,\"sm\":0.157000,\"thr\":0.025368},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":1.000000,\"hue\":0.026797,\"lumAdj\":-0.034476,\"satAdj\":0.320564,\"sm\":0.200000,\"thr\":0.243000},{\"fB\":0.337000,\"fG\":0.047000,\"fR\":0.035000,\"hue\":0.466013,\"lumAdj\":-0.020565,\"satAdj\":0.092742,\"sm\":0.117000,\"thr\":0.105000},{\"fB\":0.247000,\"fG\":0.416000,\"fR\":0.580000,\"hue\":0.090196,\"lumAdj\":-0.035081,\"satAdj\":0.391129,\"sm\":0.186290,\"thr\":0.008739},{\"fB\":0.514000,\"fG\":0.384000,\"fR\":0.361000,\"hue\":0.549020,\"lumAdj\":-0.032661,\"satAdj\":0.252000,\"sm\":0.233216,\"thr\":0.003378},{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":0.532680,\"lumAdj\":0.000000,\"satAdj\":-0.285000,\"sm\":0.200000,\"thr\":0.038000},{\"fB\":0.137255,\"fG\":0.133333,\"fR\":0.105882,\"hue\":1.000000,\"lumAdj\":-0.053831,\"satAdj\":0.308468,\"sm\":0.185585,\"thr\":0.000624},{\"fB\":0.470588,\"fG\":0.529412,\"fR\":0.639216,\"hue\":0.058170,\"lumAdj\":0.095565,\"satAdj\":0.118952,\"sm\":0.221573,\"thr\":0.018977}],\"con\":-0.143145,\"localCurrentColor\":8,\"enh\":0.146169,\"fade\":0.000000,\"gr\":0.000000,\"green_curve\":[0,64,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,62,141,205,255],\"sat\":-0.348790,\"shar\":0.232000,\"tem\":-0.314516,\"tint\":-0.135000,\"vig\":0.008000},\"isDisabled\":false,\"name\":\"Downpour\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/downpour@2x.jpg?3\"},{\"id\":\"dark\",\"date\":1457715727,\"preset\":{\"blue_curve\":[0,64,128,192,255],\"br\":-0.107500,\"col\":[{\"fB\":1.000000,\"fG\":1.000000,\"fR\":1.000000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.500000,\"fG\":0.500000,\"fR\":0.500000,\"hue\":1.000000,\"lumAdj\":0.211694,\"satAdj\":-0.629032,\"sm\":0.349647,\"thr\":0.761176},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.000000,\"hue\":1.000000,\"lumAdj\":0.000000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.000000,\"fG\":0.000000,\"fR\":0.549000,\"hue\":1.000000,\"lumAdj\":0.168750,\"satAdj\":0.000000,\"sm\":0.325302,\"thr\":0.814856},{\"fB\":0.302000,\"fG\":0.302000,\"fR\":1.000000,\"hue\":1.000000,\"lumAdj\":0.091000,\"satAdj\":0.000000,\"sm\":0.163000,\"thr\":0.129000},{\"fB\":0.914000,\"fG\":0.761000,\"fR\":0.612000,\"hue\":0.584000,\"lumAdj\":-0.121000,\"satAdj\":0.000000,\"sm\":0.120000,\"thr\":0.060000},{\"fB\":0.102000,\"fG\":0.102000,\"fR\":0.102000,\"hue\":1.000000,\"lumAdj\":0.052000,\"satAdj\":0.000000,\"sm\":0.287000,\"thr\":0.000000},{\"fB\":0.647059,\"fG\":0.745098,\"fR\":0.968627,\"hue\":0.050980,\"lumAdj\":0.137903,\"satAdj\":0.000000,\"sm\":0.340474,\"thr\":0.156163}],\"con\":0.295000,\"localCurrentColor\":7,\"enh\":0.212000,\"fade\":0.028000,\"gr\":0.000000,\"green_curve\":[0,64,128,192,255],\"red_curve\":[0,64,128,192,255],\"rgb_curve\":[0,64,128,192,255],\"sat\":-1.000000,\"shar\":0.240000,\"tem\":0.000000,\"tint\":0.000000,\"vig\":0.000000},\"isDisabled\":false,\"name\":\"Dark\",\"uploadedToServer\":false,\"v\":2,\"image_url\":\"https:\\/\\/api.vk.com\\/images\\/filters\\/chronicle\\/dark@2x.jpg?3\"}]},\"instagram_suffix\":\"\",\"instagram_fallback\":0}}" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes2/com/vk/attachpicker/widget/TabImageView.smali b/smali/smali_classes2/com/vk/attachpicker/widget/TabImageView.smali index 98c0ebcb1..1736680ab 100644 --- a/smali/smali_classes2/com/vk/attachpicker/widget/TabImageView.smali +++ b/smali/smali_classes2/com/vk/attachpicker/widget/TabImageView.smali @@ -315,7 +315,7 @@ iget-object v3, p0, Lcom/vk/attachpicker/widget/TabImageView;->b:Landroid/graphics/Paint; - invoke-virtual {p1, v1, v2, v0, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, v1, v2, v0, v3}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V .line 7 invoke-super {p0, p1}, Landroid/widget/ImageView;->onDraw(Landroid/graphics/Canvas;)V diff --git a/smali/smali_classes2/com/vk/audioipc/core/l.smali b/smali/smali_classes2/com/vk/audioipc/core/l.smali index 463185d5d..5c43228fd 100644 --- a/smali/smali_classes2/com/vk/audioipc/core/l.smali +++ b/smali/smali_classes2/com/vk/audioipc/core/l.smali @@ -704,7 +704,7 @@ .field public static final music_promo_no_more_music_title:I = 0x7f120821 -.field public static final music_promo_no_more_music_сontimue_using_free_plan:I = 0x7f120822 +.field public static final music_promo_no_more_music_continue_using_free_plan:I = 0x7f120822 .field public static final music_promo_no_more_option_1:I = 0x7f120823 diff --git a/smali/smali_classes2/com/vk/audioipc/player/h.smali b/smali/smali_classes2/com/vk/audioipc/player/h.smali index 77e36ca95..ebb01305c 100644 --- a/smali/smali_classes2/com/vk/audioipc/player/h.smali +++ b/smali/smali_classes2/com/vk/audioipc/player/h.smali @@ -704,7 +704,7 @@ .field public static final music_promo_no_more_music_title:I = 0x7f120821 -.field public static final music_promo_no_more_music_сontimue_using_free_plan:I = 0x7f120822 +.field public static final music_promo_no_more_music_continue_using_free_plan:I = 0x7f120822 .field public static final music_promo_no_more_option_1:I = 0x7f120823 diff --git a/smali/smali_classes2/com/vk/auth/RestoreUtils.smali b/smali/smali_classes2/com/vk/auth/RestoreUtils.smali index a8fc02642..2f3540322 100644 --- a/smali/smali_classes2/com/vk/auth/RestoreUtils.smali +++ b/smali/smali_classes2/com/vk/auth/RestoreUtils.smali @@ -47,7 +47,7 @@ const-string v1, "static.vk.com/restore" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes2/com/vk/auth/VkAuthModel.smali b/smali/smali_classes2/com/vk/auth/VkAuthModel.smali index dbeca25f7..a27f19b06 100644 --- a/smali/smali_classes2/com/vk/auth/VkAuthModel.smali +++ b/smali/smali_classes2/com/vk/auth/VkAuthModel.smali @@ -657,7 +657,7 @@ move-result-object v0 - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/auth/y/b/UrlCheckFragment$b.smali b/smali/smali_classes2/com/vk/auth/y/b/UrlCheckFragment$b.smali index 4e2dca9ef..a1c3ad44b 100644 --- a/smali/smali_classes2/com/vk/auth/y/b/UrlCheckFragment$b.smali +++ b/smali/smali_classes2/com/vk/auth/y/b/UrlCheckFragment$b.smali @@ -56,7 +56,7 @@ const-string v0, "oauth.vk.com" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/balance/BalancePresenter.smali b/smali/smali_classes2/com/vk/balance/BalancePresenter.smali index 5baa638a4..6d3f3a30c 100644 --- a/smali/smali_classes2/com/vk/balance/BalancePresenter.smali +++ b/smali/smali_classes2/com/vk/balance/BalancePresenter.smali @@ -166,7 +166,7 @@ const-string v2, "https://static.vk.com/promo_codes/" - invoke-static {v2}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v2}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 diff --git a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackDoubleStackedSliderItemVh.smali b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackDoubleStackedSliderItemVh.smali index bf4c5000a..7b7724b36 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackDoubleStackedSliderItemVh.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackDoubleStackedSliderItemVh.smali @@ -28,7 +28,7 @@ sget v0, Lcom/vk/catalog2/core/r;->catalog_stickers_double_stacked_slider_item:I .line 2 - sget v1, Lcom/vk/catalog2/core/o;->stiсkers_catalog_double_stacked_slider_image_size:I + sget v1, Lcom/vk/catalog2/core/o;->stickers_catalog_double_stacked_slider_image_size:I .line 3 invoke-direct {p0, v0, v1, p1, p2}, Lcom/vk/catalog2/core/holders/stickers/BaseStickerPackWithBuyVh;->(IILkotlin/jvm/b/Functions1;Lkotlin/jvm/b/Functions2;)V diff --git a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderLargeItemVh.smali b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderLargeItemVh.smali index 5c411121d..11a820163 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderLargeItemVh.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderLargeItemVh.smali @@ -23,7 +23,7 @@ sget v0, Lcom/vk/catalog2/core/r;->catalog_stickers_large_slider_item:I .line 2 - sget v1, Lcom/vk/catalog2/core/o;->stiсkers_catalog_large_slider_image_size:I + sget v1, Lcom/vk/catalog2/core/o;->stickers_catalog_large_slider_image_size:I .line 3 invoke-direct {p0, v0, v1, p1}, Lcom/vk/catalog2/core/holders/stickers/BaseStickerPackVh;->(IILkotlin/jvm/b/Functions1;)V diff --git a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderSmallItemVh.smali b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderSmallItemVh.smali index 6db629619..61317ea0b 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderSmallItemVh.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackSliderSmallItemVh.smali @@ -27,7 +27,7 @@ sget v0, Lcom/vk/catalog2/core/r;->catalog_stickers_small_slider_item:I .line 2 - sget v1, Lcom/vk/catalog2/core/o;->stiсkers_catalog_small_slider_image_size:I + sget v1, Lcom/vk/catalog2/core/o;->stickers_catalog_small_slider_image_size:I .line 3 invoke-direct {p0, v0, v1, p1}, Lcom/vk/catalog2/core/holders/stickers/BaseStickerPackVh;->(IILkotlin/jvm/b/Functions1;)V diff --git a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackTripleStackedSliderItemVh.smali b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackTripleStackedSliderItemVh.smali index f7c5d05e7..f24a59645 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackTripleStackedSliderItemVh.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackTripleStackedSliderItemVh.smali @@ -28,7 +28,7 @@ sget v0, Lcom/vk/catalog2/core/r;->catalog_stickers_triple_stacked_slider_item:I .line 2 - sget v1, Lcom/vk/catalog2/core/o;->stiсkers_catalog_triple_stacked_slider_image_size:I + sget v1, Lcom/vk/catalog2/core/o;->stickers_catalog_triple_stacked_slider_image_size:I .line 3 invoke-direct {p0, v0, v1, p1, p2}, Lcom/vk/catalog2/core/holders/stickers/BaseStickerPackWithBuyVh;->(IILkotlin/jvm/b/Functions1;Lkotlin/jvm/b/Functions2;)V diff --git a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackVerticalListItemVh.smali b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackVerticalListItemVh.smali index 5c22fed92..0c2719242 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackVerticalListItemVh.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/holders/stickers/StickerPackVerticalListItemVh.smali @@ -89,7 +89,7 @@ sget v0, Lcom/vk/catalog2/core/r;->catalog_stickers_vertical_list_item:I .line 3 - sget v1, Lcom/vk/catalog2/core/o;->stiсkers_catalog_vertical_list_image_size:I + sget v1, Lcom/vk/catalog2/core/o;->stickers_catalog_vertical_list_image_size:I .line 4 invoke-direct {p0, v0, v1, p1}, Lcom/vk/catalog2/core/holders/stickers/BaseStickerPackVh;->(IILkotlin/jvm/b/Functions1;)V diff --git a/smali/smali_classes2/com/vk/catalog2/core/o.smali b/smali/smali_classes2/com/vk/catalog2/core/o.smali index 9ea8c6fcd..d2128fd4b 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/o.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/o.smali @@ -730,45 +730,45 @@ .field public static final sticker_suggest_size:I = 0x7f070283 -.field public static final stiсkers_catalog_button_padding_bottom:I = 0x7f070288 +.field public static final stickers_catalog_button_padding_bottom:I = 0x7f070288 -.field public static final stiсkers_catalog_button_padding_left:I = 0x7f070289 +.field public static final stickers_catalog_button_padding_left:I = 0x7f070289 -.field public static final stiсkers_catalog_button_padding_right:I = 0x7f07028a +.field public static final stickers_catalog_button_padding_right:I = 0x7f07028a -.field public static final stiсkers_catalog_button_padding_top:I = 0x7f07028b +.field public static final stickers_catalog_button_padding_top:I = 0x7f07028b -.field public static final stiсkers_catalog_double_stacked_slider_image_bg_size:I = 0x7f07028c +.field public static final stickers_catalog_double_stacked_slider_image_bg_size:I = 0x7f07028c -.field public static final stiсkers_catalog_double_stacked_slider_image_corner_radius:I = 0x7f07028d +.field public static final stickers_catalog_double_stacked_slider_image_corner_radius:I = 0x7f07028d -.field public static final stiсkers_catalog_double_stacked_slider_image_size:I = 0x7f07028e +.field public static final stickers_catalog_double_stacked_slider_image_size:I = 0x7f07028e -.field public static final stiсkers_catalog_large_slider_image_bg_height:I = 0x7f07028f +.field public static final stickers_catalog_large_slider_image_bg_height:I = 0x7f07028f -.field public static final stiсkers_catalog_large_slider_image_bg_width:I = 0x7f070290 +.field public static final stickers_catalog_large_slider_image_bg_width:I = 0x7f070290 -.field public static final stiсkers_catalog_large_slider_image_corner_radius:I = 0x7f070291 +.field public static final stickers_catalog_large_slider_image_corner_radius:I = 0x7f070291 -.field public static final stiсkers_catalog_large_slider_image_size:I = 0x7f070292 +.field public static final stickers_catalog_large_slider_image_size:I = 0x7f070292 -.field public static final stiсkers_catalog_small_slider_image_bg_size:I = 0x7f070293 +.field public static final stickers_catalog_small_slider_image_bg_size:I = 0x7f070293 -.field public static final stiсkers_catalog_small_slider_image_corner_radius:I = 0x7f070294 +.field public static final stickers_catalog_small_slider_image_corner_radius:I = 0x7f070294 -.field public static final stiсkers_catalog_small_slider_image_size:I = 0x7f070295 +.field public static final stickers_catalog_small_slider_image_size:I = 0x7f070295 -.field public static final stiсkers_catalog_triple_stacked_slider_image_bg_size:I = 0x7f070296 +.field public static final stickers_catalog_triple_stacked_slider_image_bg_size:I = 0x7f070296 -.field public static final stiсkers_catalog_triple_stacked_slider_image_corner_radius:I = 0x7f070297 +.field public static final stickers_catalog_triple_stacked_slider_image_corner_radius:I = 0x7f070297 -.field public static final stiсkers_catalog_triple_stacked_slider_image_size:I = 0x7f070298 +.field public static final stickers_catalog_triple_stacked_slider_image_size:I = 0x7f070298 -.field public static final stiсkers_catalog_vertical_list_image_bg_size:I = 0x7f070299 +.field public static final stickers_catalog_vertical_list_image_bg_size:I = 0x7f070299 -.field public static final stiсkers_catalog_vertical_list_image_corner_radius:I = 0x7f07029a +.field public static final stickers_catalog_vertical_list_image_corner_radius:I = 0x7f07029a -.field public static final stiсkers_catalog_vertical_list_image_size:I = 0x7f07029b +.field public static final stickers_catalog_vertical_list_image_size:I = 0x7f07029b .field public static final subtitle_corner_radius:I = 0x7f0702ed diff --git a/smali/smali_classes2/com/vk/catalog2/core/u.smali b/smali/smali_classes2/com/vk/catalog2/core/u.smali index 67ae431bf..62620fb46 100644 --- a/smali/smali_classes2/com/vk/catalog2/core/u.smali +++ b/smali/smali_classes2/com/vk/catalog2/core/u.smali @@ -1220,7 +1220,7 @@ .field public static final music_promo_no_more_music_title:I = 0x7f120821 -.field public static final music_promo_no_more_music_сontimue_using_free_plan:I = 0x7f120822 +.field public static final music_promo_no_more_music_continue_using_free_plan:I = 0x7f120822 .field public static final music_promo_no_more_option_1:I = 0x7f120823 diff --git a/smali/smali_classes2/com/vk/common/links/BrowserUtils$Companion.smali b/smali/smali_classes2/com/vk/common/links/BrowserUtils$Companion.smali index 15b6c36e3..59536881f 100644 --- a/smali/smali_classes2/com/vk/common/links/BrowserUtils$Companion.smali +++ b/smali/smali_classes2/com/vk/common/links/BrowserUtils$Companion.smali @@ -640,7 +640,7 @@ const-string v0, "" :goto_0 - invoke-static {}, Lru/vtosters/lite/hooks/ProxyHook;->getAwayPhpCom()Ljava/lang/String; + invoke-static {}, Lru/vtosters/lite/proxy/api/ApiProxy;->getAwayPhpCom()Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/core/network/metrics/traffic/TrafficAccumulator.smali b/smali/smali_classes2/com/vk/core/network/metrics/traffic/TrafficAccumulator.smali index d876d288d..20d2b9924 100644 --- a/smali/smali_classes2/com/vk/core/network/metrics/traffic/TrafficAccumulator.smali +++ b/smali/smali_classes2/com/vk/core/network/metrics/traffic/TrafficAccumulator.smali @@ -187,7 +187,7 @@ const-string v3, "https://api.vk.com/method/execute" - invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 diff --git a/smali/smali_classes2/com/vk/core/util/DownloadUtils$a.smali b/smali/smali_classes2/com/vk/core/util/DownloadUtils$a.smali deleted file mode 100644 index 5e868b279..000000000 --- a/smali/smali_classes2/com/vk/core/util/DownloadUtils$a.smali +++ /dev/null @@ -1,68 +0,0 @@ -.class final Lcom/vk/core/util/DownloadUtils$a; -.super Lb/h/g/m/FileUtils$a$b; -.source "DownloadUtils.java" - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/core/util/DownloadUtils;->a(Ljava/io/InputStream;Ljava/io/File;Landroid/content/Context;)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x8 - name = null -.end annotation - - -# instance fields -.field final synthetic a:Landroid/content/Context; - -.field final synthetic b:Ljava/io/File; - - -# direct methods -.method constructor (Landroid/content/Context;Ljava/io/File;)V - .locals 0 - - .line 1 - iput-object p1, p0, Lcom/vk/core/util/DownloadUtils$a;->a:Landroid/content/Context; - - iput-object p2, p0, Lcom/vk/core/util/DownloadUtils$a;->b:Ljava/io/File; - - invoke-direct {p0}, Lb/h/g/m/FileUtils$a$b;->()V - - return-void -.end method - - -# virtual methods -.method public b()V - .locals 4 - - .line 1 - iget-object v0, p0, Lcom/vk/core/util/DownloadUtils$a;->a:Landroid/content/Context; - - const/4 v1, 0x1 - - new-array v1, v1, [Ljava/lang/Object; - - iget-object v2, p0, Lcom/vk/core/util/DownloadUtils$a;->b:Ljava/io/File; - - invoke-virtual {v2}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File; - - move-result-object v2 - - const/4 v3, 0x0 - - aput-object v2, v1, v3 - - const v2, 0x7f120400 - - invoke-virtual {v0, v2, v1}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String; - - move-result-object v0 - - invoke-static {v0}, Lcom/vk/core/util/ToastUtils;->a(Ljava/lang/CharSequence;)V - - return-void -.end method diff --git a/smali/smali_classes2/com/vk/core/util/DownloadUtils.smali b/smali/smali_classes2/com/vk/core/util/DownloadUtils.smali deleted file mode 100644 index 5f808ab81..000000000 --- a/smali/smali_classes2/com/vk/core/util/DownloadUtils.smali +++ /dev/null @@ -1,810 +0,0 @@ -.class public Lcom/vk/core/util/DownloadUtils; -.super Ljava/lang/Object; -.source "DownloadUtils.java" - - -# static fields -.field public static final a:Ljava/util/HashSet; - .annotation system Ldalvik/annotation/Signature; - value = { - "Ljava/util/HashSet<", - "Ljava/lang/Long;", - ">;" - } - .end annotation -.end field - - -# direct methods -.method static constructor ()V - .locals 1 - - .line 1 - new-instance v0, Ljava/util/HashSet; - - invoke-direct {v0}, Ljava/util/HashSet;->()V - - sput-object v0, Lcom/vk/core/util/DownloadUtils;->a:Ljava/util/HashSet; - - return-void -.end method - -.method private static a(Landroid/content/Context;)Landroid/app/DownloadManager; - .locals 1 - - const-string v0, "download" - - .line 49 - invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; - - move-result-object p0 - - check-cast p0, Landroid/app/DownloadManager; - - return-object p0 -.end method - -.method private static a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; - .locals 2 - - .line 6 - invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object p1 - - .line 7 - invoke-virtual {p1}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String; - - move-result-object p1 - - .line 8 - invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z - - move-result v0 - - if-nez v0, :cond_1 - - const/16 v0, 0x2f - - const/16 v1, 0x5f - - .line 9 - invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(CC)Ljava/lang/String; - - move-result-object p0 - - const-string v0, "." - - .line 10 - invoke-virtual {p0, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z - - move-result v0 - - if-nez v0, :cond_0 - - return-object p1 - - :cond_0 - return-object p0 - - :cond_1 - return-object p1 -.end method - -.method public static a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V - .locals 1 - - const/4 v0, 0x0 - - .line 1 - invoke-static {p0, p1, p2, v0}, Lcom/vk/core/util/DownloadUtils;->a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)V - - return-void -.end method - -.method private static a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)V - .locals 0 - - .line 2 - :try_start_0 - invoke-static {p0, p1, p2, p3}, Lcom/vk/core/util/DownloadUtils;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)V - :try_end_0 - .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 - - goto :goto_0 - - :catch_0 - move-exception p1 - - const/4 p2, 0x0 - - new-array p2, p2, [Ljava/lang/Object; - - .line 3 - invoke-static {p1, p2}, Lcom/vk/log/L;->d(Ljava/lang/Throwable;[Ljava/lang/Object;)V - - .line 4 - new-instance p2, Ljava/lang/StringBuilder; - - invoke-direct {p2}, Ljava/lang/StringBuilder;->()V - - const p3, 0x7f120369 - - invoke-virtual {p0, p3}, Landroid/content/Context;->getString(I)Ljava/lang/String; - - move-result-object p0 - - invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const-string p0, " [" - - invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; - - move-result-object p0 - - invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const-string p0, "]" - - invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object p0 - - invoke-static {p0}, Lcom/vk/core/util/ToastUtils;->a(Ljava/lang/CharSequence;)V - - :goto_0 - return-void -.end method - -.method static synthetic a(Ljava/io/InputStream;Ljava/io/File;Landroid/content/Context;)V - .locals 1 - - .line 5 - new-instance v0, Lcom/vk/core/util/DownloadUtils$a; - - invoke-direct {v0, p2, p1}, Lcom/vk/core/util/DownloadUtils$a;->(Landroid/content/Context;Ljava/io/File;)V - - invoke-static {p0, p1, v0}, Lb/h/g/m/FileUtils$a;->a(Ljava/io/InputStream;Ljava/io/File;Lb/h/g/m/FileUtils$a$a;)Z - - return-void -.end method - -.method public static a(Landroid/content/Context;Landroid/net/Uri;)Z - .locals 5 - - .line 11 - invoke-static {p0}, Lcom/vk/core/util/DownloadUtils;->a(Landroid/content/Context;)Landroid/app/DownloadManager; - - move-result-object v0 - - const/4 v1, 0x0 - - const/4 v2, 0x0 - - .line 12 - :try_start_0 - new-instance v3, Landroid/app/DownloadManager$Query; - - invoke-direct {v3}, Landroid/app/DownloadManager$Query;->()V - - const/16 v4, 0xb - - .line 13 - invoke-virtual {v3, v4}, Landroid/app/DownloadManager$Query;->setFilterByStatus(I)Landroid/app/DownloadManager$Query; - - move-result-object v3 - - .line 14 - invoke-virtual {v0, v3}, Landroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor; - - move-result-object v2 - - if-eqz v2, :cond_8 - - .line 15 - invoke-interface {v2}, Landroid/database/Cursor;->moveToFirst()Z - - move-result v0 - - if-nez v0, :cond_0 - - goto :goto_0 - - :cond_0 - const-string v0, "uri" - - .line 16 - invoke-interface {v2, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I - - move-result v0 - - invoke-interface {v2, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; - - move-result-object v0 - - .line 17 - invoke-virtual {p1}, Landroid/net/Uri;->toString()Ljava/lang/String; - - move-result-object v3 - - invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v0 - - if-eqz v0, :cond_6 - - const-string p1, "status" - - .line 18 - invoke-interface {v2, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I - - move-result p1 - - invoke-interface {v2, p1}, Landroid/database/Cursor;->getInt(I)I - - move-result p1 - - const-string v0, "local_uri" - - .line 19 - invoke-interface {v2, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I - - move-result v0 - - invoke-interface {v2, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; - - move-result-object v0 - - .line 20 - invoke-interface {v2}, Landroid/database/Cursor;->close()V - :try_end_0 - .catch Landroid/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_0 - .catchall {:try_start_0 .. :try_end_0} :catchall_0 - - const/4 v3, 0x1 - - if-eq p1, v3, :cond_4 - - const/4 v4, 0x2 - - if-eq p1, v4, :cond_4 - - const/16 v3, 0x8 - - if-eq p1, v3, :cond_2 - - if-eqz v2, :cond_1 - - .line 21 - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - :cond_1 - return v1 - - .line 22 - :cond_2 - :try_start_1 - invoke-static {p0, v0}, Lcom/vk/core/util/DownloadUtils;->a(Landroid/content/Context;Ljava/lang/String;)Z - - move-result p0 - :try_end_1 - .catch Landroid/database/sqlite/SQLiteException; {:try_start_1 .. :try_end_1} :catch_0 - .catchall {:try_start_1 .. :try_end_1} :catchall_0 - - if-eqz v2, :cond_3 - - .line 23 - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - :cond_3 - return p0 - - :cond_4 - const p0, 0x7f12032f - - .line 24 - :try_start_2 - invoke-static {p0}, Lcom/vk/core/util/ToastUtils;->a(I)V - :try_end_2 - .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_2} :catch_0 - .catchall {:try_start_2 .. :try_end_2} :catchall_0 - - if-eqz v2, :cond_5 - - .line 25 - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - :cond_5 - return v3 - - .line 26 - :cond_6 - :try_start_3 - invoke-interface {v2}, Landroid/database/Cursor;->moveToNext()Z - - move-result v0 - :try_end_3 - .catch Landroid/database/sqlite/SQLiteException; {:try_start_3 .. :try_end_3} :catch_0 - .catchall {:try_start_3 .. :try_end_3} :catchall_0 - - if-nez v0, :cond_0 - - if-eqz v2, :cond_7 - - .line 27 - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - :cond_7 - return v1 - - :cond_8 - :goto_0 - if-eqz v2, :cond_9 - - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - :cond_9 - return v1 - - :catchall_0 - move-exception p0 - - goto :goto_1 - - :catch_0 - move-exception p0 - - .line 28 - :try_start_4 - sget-object p1, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; - - invoke-virtual {p1, p0}, Lcom/vk/metrics/eventtracking/VkTracker;->b(Ljava/lang/Throwable;)V - :try_end_4 - .catchall {:try_start_4 .. :try_end_4} :catchall_0 - - if-eqz v2, :cond_a - - .line 29 - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - :cond_a - return v1 - - :goto_1 - if-eqz v2, :cond_b - - invoke-interface {v2}, Landroid/database/Cursor;->close()V - - .line 30 - :cond_b - throw p0 -.end method - -.method private static a(Landroid/content/Context;Ljava/io/File;)Z - .locals 3 - - const/4 v0, 0x0 - - if-eqz p1, :cond_1 - - .line 43 - invoke-virtual {p1}, Ljava/io/File;->exists()Z - - move-result v1 - - if-nez v1, :cond_0 - - goto :goto_0 - - .line 44 - :cond_0 - new-instance v1, Landroid/content/Intent; - - const-string v2, "android.intent.action.VIEW" - - invoke-direct {v1, v2}, Landroid/content/Intent;->(Ljava/lang/String;)V - - .line 45 - invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; - - move-result-object p1 - - invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object p1 - - const-string v2, "application/*" - - invoke-virtual {v1, p1, v2}, Landroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent; - - const/high16 p1, 0x10000000 - - .line 46 - invoke-virtual {v1, p1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; - - .line 47 - :try_start_0 - invoke-virtual {p0, v1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V - :try_end_0 - .catch Landroid/content/ActivityNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 - - const/4 p0, 0x1 - - return p0 - - :catch_0 - move-exception p0 - - .line 48 - invoke-static {p0}, Lcom/vk/log/L;->a(Ljava/lang/Throwable;)V - - :cond_1 - :goto_0 - return v0 -.end method - -.method public static a(Landroid/content/Context;Ljava/lang/String;)Z - .locals 5 - - const/4 v0, 0x0 - - const/4 v1, 0x0 - - .line 31 - :try_start_0 - new-instance v2, Ljava/io/File; - - new-instance v3, Ljava/net/URI; - - invoke-direct {v3, p1}, Ljava/net/URI;->(Ljava/lang/String;)V - - invoke-direct {v2, v3}, Ljava/io/File;->(Ljava/net/URI;)V - :try_end_0 - .catch Landroid/content/ActivityNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 - .catchall {:try_start_0 .. :try_end_0} :catchall_0 - - .line 32 - :try_start_1 - invoke-virtual {v2}, Ljava/io/File;->exists()Z - - move-result p1 - - if-nez p1, :cond_0 - - return v0 - - .line 33 - :cond_0 - new-instance p1, Landroid/content/Intent; - - const-string v1, "android.intent.action.VIEW" - - invoke-direct {p1, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V - - const/4 v1, 0x1 - - .line 34 - invoke-virtual {p1, v1}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent; - - .line 35 - invoke-static {v2}, Lb/h/g/m/FileUtils;->f(Ljava/io/File;)Ljava/lang/String; - - move-result-object v3 - - .line 36 - invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z - - move-result v4 - - if-nez v4, :cond_1 - - const/high16 v4, 0x10000000 - - .line 37 - invoke-virtual {p1, v4}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; - - .line 38 - invoke-static {v2}, Lb/h/g/m/FileUtils;->uriFromFile(Ljava/io/File;)Landroid/net/Uri; - - move-result-object v4 - - invoke-virtual {p1, v4, v3}, Landroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent; - - .line 39 - invoke-virtual {p0, p1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V - - return v1 - - .line 40 - :cond_1 - new-instance p1, Landroid/content/ActivityNotFoundException; - - invoke-direct {p1}, Landroid/content/ActivityNotFoundException;->()V - - throw p1 - :try_end_1 - .catch Landroid/content/ActivityNotFoundException; {:try_start_1 .. :try_end_1} :catch_1 - .catchall {:try_start_1 .. :try_end_1} :catchall_0 - - :catchall_0 - move-exception p0 - - .line 41 - sget-object p1, Lcom/vk/metrics/eventtracking/VkTracker;->k:Lcom/vk/metrics/eventtracking/VkTracker; - - invoke-virtual {p1, p0}, Lcom/vk/metrics/eventtracking/VkTracker;->b(Ljava/lang/Throwable;)V - - return v0 - - :catch_0 - move-object v2, v1 - - .line 42 - :catch_1 - invoke-static {p0, v2}, Lcom/vk/core/util/DownloadUtils;->a(Landroid/content/Context;Ljava/io/File;)Z - - move-result p0 - - return p0 -.end method - -.method private static b(Landroid/content/Context;)V - .locals 2 - - if-eqz p0, :cond_0 - - .line 25 - :try_start_0 - new-instance v0, Landroid/content/Intent; - - const-string v1, "android.settings.APPLICATION_DETAILS_SETTINGS" - - invoke-direct {v0, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V - - const-string v1, "package:com.android.providers.downloads" - - .line 26 - invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object v1 - - invoke-virtual {v0, v1}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent; - - move-result-object v0 - - .line 27 - invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V - :try_end_0 - .catch Landroid/content/ActivityNotFoundException; {:try_start_0 .. :try_end_0} :catch_0 - - goto :goto_0 - - :catch_0 - move-exception v0 - - .line 28 - invoke-static {v0}, Lcom/vk/log/L;->a(Ljava/lang/Throwable;)V - - .line 29 - new-instance v0, Landroid/content/Intent; - - const-string v1, "android.settings.MANAGE_APPLICATIONS_SETTINGS" - - invoke-direct {v0, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V - - invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V - - :goto_0 - const/4 p0, 0x1 - - const-string v0, "Please enable download manager" - - .line 30 - invoke-static {v0, p0}, Lcom/vk/core/util/ToastUtils;->a(Ljava/lang/CharSequence;Z)V - - :cond_0 - return-void -.end method - -.method public static b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V - .locals 1 - - const/4 v0, 0x1 - - .line 1 - invoke-static {p0, p1, p2, v0}, Lcom/vk/core/util/DownloadUtils;->a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)V - - return-void -.end method - -.method private static b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Z)V - .locals 3 - - .line 2 - invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z - - move-result v0 - - if-eqz v0, :cond_0 - - return-void - - .line 3 - :cond_0 - invoke-static {p2}, Lcom/facebook/common/i/MediaUtils;->b(Ljava/lang/String;)Ljava/lang/String; - - move-result-object v0 - - .line 4 - invoke-static {v0}, Lcom/facebook/common/i/MediaUtils;->c(Ljava/lang/String;)Z - - move-result v0 - - .line 5 - invoke-static {p1, p2}, Lcom/vk/core/util/DownloadUtils;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; - - move-result-object v1 - - .line 6 - invoke-static {v1}, Lb/h/g/m/FileUtils;->b(Ljava/lang/String;)Ljava/io/File; - - move-result-object v1 - - if-eqz v0, :cond_4 - - .line 7 - invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object v0 - - invoke-static {v0}, Lcom/vk/imageloader/VKImageLoader;->c(Landroid/net/Uri;)Lcom/facebook/x/g/EncodedImage; - - move-result-object v0 - - const/4 v2, 0x0 - - if-nez v0, :cond_1 - - move-object v0, v2 - - goto :goto_0 - - .line 8 - :cond_1 - invoke-virtual {v0}, Lcom/facebook/x/g/EncodedImage;->h()Ljava/io/InputStream; - - move-result-object v0 - - :goto_0 - if-eqz v0, :cond_4 - - .line 9 - :try_start_0 - invoke-virtual {v1}, Ljava/io/File;->exists()Z - - move-result p1 - - if-nez p1, :cond_2 - - invoke-static {v1}, Lb/h/g/m/FileUtils;->b(Ljava/io/File;)Z - - move-result p1 - - if-eqz p1, :cond_3 - - .line 10 - :cond_2 - sget-object p1, Lcom/vk/core/concurrent/VkExecutors;->x:Lcom/vk/core/concurrent/VkExecutors; - - invoke-virtual {p1}, Lcom/vk/core/concurrent/VkExecutors;->a()Ljava/util/concurrent/ExecutorService; - - move-result-object p1 - - new-instance p2, Lcom/vk/core/util/a; - - invoke-direct {p2, v0, v1, p0}, Lcom/vk/core/util/a;->(Ljava/io/InputStream;Ljava/io/File;Landroid/content/Context;)V - - invoke-interface {p1, p2}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V - :try_end_0 - .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 - - goto :goto_1 - - :catch_0 - move-exception p1 - - .line 11 - invoke-static {p1}, Lcom/vk/log/L;->a(Ljava/lang/Throwable;)V - - .line 12 - :cond_3 - :goto_1 - invoke-static {p0, v1, v2}, Lb/h/g/m/CameraUtils;->a(Landroid/content/Context;Ljava/io/File;Landroid/media/MediaScannerConnection$OnScanCompletedListener;)V - - return-void - - .line 13 - :cond_4 - invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object p2 - - .line 14 - new-instance v0, Landroid/app/DownloadManager$Request; - - invoke-direct {v0, p2}, Landroid/app/DownloadManager$Request;->(Landroid/net/Uri;)V - - .line 15 - invoke-static {v1}, Landroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri; - - move-result-object p2 - - invoke-virtual {v0, p2}, Landroid/app/DownloadManager$Request;->setDestinationUri(Landroid/net/Uri;)Landroid/app/DownloadManager$Request; - - .line 16 - new-instance p2, Ljava/io/File; - - invoke-direct {p2, p1}, Ljava/io/File;->(Ljava/lang/String;)V - - invoke-static {p2}, Lb/h/g/m/FileUtils;->f(Ljava/io/File;)Ljava/lang/String; - - move-result-object p2 - - invoke-virtual {v0, p2}, Landroid/app/DownloadManager$Request;->setMimeType(Ljava/lang/String;)Landroid/app/DownloadManager$Request; - - const/4 p2, 0x1 - - .line 17 - invoke-virtual {v0, p2}, Landroid/app/DownloadManager$Request;->setNotificationVisibility(I)Landroid/app/DownloadManager$Request; - - .line 18 - invoke-virtual {v0}, Landroid/app/DownloadManager$Request;->allowScanningByMediaScanner()V - - .line 19 - invoke-virtual {v0, p1}, Landroid/app/DownloadManager$Request;->setTitle(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request; - - .line 20 - invoke-static {p0}, Lcom/vk/core/util/DownloadUtils;->a(Landroid/content/Context;)Landroid/app/DownloadManager; - - move-result-object p1 - - if-eqz p1, :cond_5 - - .line 21 - :try_start_1 - invoke-virtual {p1, v0}, Landroid/app/DownloadManager;->enqueue(Landroid/app/DownloadManager$Request;)J - - move-result-wide p1 - - if-eqz p3, :cond_5 - - .line 22 - sget-object p3, Lcom/vk/core/util/DownloadUtils;->a:Ljava/util/HashSet; - - invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - - move-result-object p1 - - invoke-virtual {p3, p1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - :try_end_1 - .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_1 - - goto :goto_2 - - :catch_1 - move-exception p1 - - .line 23 - invoke-static {p1}, Lcom/vk/log/L;->a(Ljava/lang/Throwable;)V - - .line 24 - invoke-static {p0}, Lcom/vk/core/util/DownloadUtils;->b(Landroid/content/Context;)V - - :cond_5 - :goto_2 - return-void -.end method diff --git a/smali/smali_classes2/com/vk/core/util/TimeUtils.smali b/smali/smali_classes2/com/vk/core/util/TimeUtils.smali index 47e673eb1..989247ef9 100644 --- a/smali/smali_classes2/com/vk/core/util/TimeUtils.smali +++ b/smali/smali_classes2/com/vk/core/util/TimeUtils.smali @@ -18,7 +18,6 @@ .field private static final c:[J - # direct methods .method static constructor ()V .locals 1 @@ -438,7 +437,7 @@ move/from16 v0, p0 - invoke-static {v0}, Lcom/vtosters/lite/VKApplication;->getFullTime(I)Ljava/lang/String; + invoke-static {v0}, Lcom/vk/core/util/TimeUtils;->getFullTime(I)Ljava/lang/String; move-result-object v0 @@ -1450,7 +1449,7 @@ .method public static b(ILandroid/content/res/Resources;)Ljava/lang/String; .locals 4 - invoke-static {p0}, Lcom/vtosters/lite/VKApplication;->getFullTime(I)Ljava/lang/String; + invoke-static {p0}, Lcom/vk/core/util/TimeUtils;->getFullTime(I)Ljava/lang/String; move-result-object v0 @@ -1567,6 +1566,52 @@ return-object p0 .end method +.method public static getFullTime(I)Ljava/lang/String; + .registers 6 + .param p0, "s" # I + + .line 17 + invoke-static {}, Lru/vtosters/lite/hooks/DateHook;->fulltime()Z + + move-result v0 + + if-eqz v0, :cond_17 + + .line 18 + new-instance v0, Ljava/util/Date; + + int-to-long v1, p0 + + const-wide/16 v3, 0x3e8 + + mul-long v1, v1, v3 + + invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V + + .line 19 + .local v0, "d":Ljava/util/Date; + new-instance v1, Ljava/text/SimpleDateFormat; + + invoke-static {}, Lru/vtosters/lite/hooks/DateHook;->getDateFormat()Ljava/lang/String; + + move-result-object v3 + + invoke-direct {v1, v3}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V + + invoke-virtual {v1, v0}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; + + move-result-object v1 + + return-object v1 + + .line 21 + .end local v0 # "d":Ljava/util/Date; + :cond_17 + const/4 v0, 0x0 + + return-object v0 +.end method + .method public static b(IZZ)Ljava/lang/String; .locals 15 @@ -1576,7 +1621,7 @@ move/from16 v0, p0 - invoke-static {v0}, Lcom/vtosters/lite/VKApplication;->getFullTime(I)Ljava/lang/String; + invoke-static {v0}, Lcom/vk/core/util/TimeUtils;->getFullTime(I)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes2/com/vk/dto/user/UserProfile.smali b/smali/smali_classes2/com/vk/dto/user/UserProfile.smali index 7dfa04af8..98426b373 100644 --- a/smali/smali_classes2/com/vk/dto/user/UserProfile.smali +++ b/smali/smali_classes2/com/vk/dto/user/UserProfile.smali @@ -2928,12 +2928,6 @@ .method public static d(Lorg/json/JSONObject;)Lcom/vk/dto/user/OnlineInfo; .locals 12 - const v2, 0x1 - - invoke-static {p0, v2}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHook(Lorg/json/JSONObject;Z)Lorg/json/JSONObject; - - move-result-object p0 - .line 1 sget-object v0, Lcom/vk/dto/user/VisibleStatus;->e:Lcom/vk/dto/user/VisibleStatus; diff --git a/smali/smali_classes2/com/vk/httpexecutor/core/HttpRequestExecutorProvider.smali b/smali/smali_classes2/com/vk/httpexecutor/core/HttpRequestExecutorProvider.smali index 369239d07..ffb511dc6 100644 --- a/smali/smali_classes2/com/vk/httpexecutor/core/HttpRequestExecutorProvider.smali +++ b/smali/smali_classes2/com/vk/httpexecutor/core/HttpRequestExecutorProvider.smali @@ -275,7 +275,7 @@ const-string v3, "api.vk.com" - invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 diff --git a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationMembersApiCmd$a.smali b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationMembersApiCmd$a.smali index 5c04df734..60e4211ec 100644 --- a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationMembersApiCmd$a.smali +++ b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationMembersApiCmd$a.smali @@ -50,6 +50,10 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookProfiles(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + const-string v0, "items" .line 2 diff --git a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsApiCmd$a.smali b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsApiCmd$a.smali index 2a556e828..612d5d6a8 100644 --- a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsApiCmd$a.smali +++ b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsApiCmd$a.smali @@ -50,6 +50,9 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookProfiles(Lorg/json/JSONObject;)Lorg/json/JSONObject; + move-result-object p1 + const-string v0, "items" .line 2 diff --git a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsByIdApiCmd$a.smali b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsByIdApiCmd$a.smali index c27f367b8..223f4072f 100644 --- a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsByIdApiCmd$a.smali +++ b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesGetConversationsByIdApiCmd$a.smali @@ -50,6 +50,10 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookProfiles(Lorg/json/JSONObject;)Lorg/json/JSONObject; + + move-result-object p1 + const-string v0, "items" .line 2 diff --git a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesSendApiCmd.smali b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesSendApiCmd.smali index c0f0bd437..9254c4048 100644 --- a/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesSendApiCmd.smali +++ b/smali/smali_classes3/com/vk/im/engine/internal/api_commands/messages/MessagesSendApiCmd.smali @@ -249,12 +249,7 @@ :goto_2 if-eqz v8, :cond_7 - .line 15 - invoke-virtual {p1}, Lcom/vk/im/engine/models/messages/MsgFromUser;->f()Ljava/lang/String; - - move-result-object v8 - - invoke-static {v8}, Lru/vtosters/lite/hooks/MessagesHook;->injectOwnText(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p1}, Lru/vtosters/lite/encryption/EncryptProvider;->encryptMessage(Lcom/vk/im/engine/models/messages/MsgFromUser;)Ljava/lang/String; move-result-object v8 diff --git a/smali/smali_classes3/com/vk/im/engine/internal/api_parsers/UserApiParser.smali b/smali/smali_classes3/com/vk/im/engine/internal/api_parsers/UserApiParser.smali index 7a94125d3..c1055a60c 100644 --- a/smali/smali_classes3/com/vk/im/engine/internal/api_parsers/UserApiParser.smali +++ b/smali/smali_classes3/com/vk/im/engine/internal/api_parsers/UserApiParser.smali @@ -666,12 +666,6 @@ .method private final d(Lorg/json/JSONObject;)Lcom/vk/dto/user/OnlineInfo; .locals 7 - const v2, 0x1 - - invoke-static {p1, v2}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHook(Lorg/json/JSONObject;Z)Lorg/json/JSONObject; - - move-result-object p1 - const-string v0, "online_info" .line 1 diff --git a/smali/smali_classes3/com/vk/im/engine/internal/f/h/UsersGetByIdApiCmd$b.smali b/smali/smali_classes3/com/vk/im/engine/internal/f/h/UsersGetByIdApiCmd$b.smali index 8241f5fce..5c7dfa3be 100644 --- a/smali/smali_classes3/com/vk/im/engine/internal/f/h/UsersGetByIdApiCmd$b.smali +++ b/smali/smali_classes3/com/vk/im/engine/internal/f/h/UsersGetByIdApiCmd$b.smali @@ -64,6 +64,10 @@ move-result-object p1 + invoke-static {p1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHookList(Lorg/json/JSONArray;)Lorg/json/JSONArray; + + move-result-object p1 + .line 3 new-instance v0, Landroid/util/SparseArray; diff --git a/smali/smali_classes3/com/vk/im/engine/models/messages/MsgFromUser.smali b/smali/smali_classes3/com/vk/im/engine/models/messages/MsgFromUser.smali index 58fc102e0..3e4b924fa 100644 --- a/smali/smali_classes3/com/vk/im/engine/models/messages/MsgFromUser.smali +++ b/smali/smali_classes3/com/vk/im/engine/models/messages/MsgFromUser.smali @@ -672,8 +672,7 @@ iput-object v0, p0, Lcom/vk/im/engine/models/messages/MsgFromUser;->W:Ljava/lang/String; - .line 16 - invoke-virtual {p1}, Lcom/vk/im/engine/models/messages/MsgFromUser;->f()Ljava/lang/String; + invoke-static {p1}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Lcom/vk/im/engine/models/messages/MsgFromUser;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes3/com/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent$copyToClipboard$1.smali b/smali/smali_classes3/com/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent$copyToClipboard$1.smali index 4aac6151b..64267b674 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent$copyToClipboard$1.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent$copyToClipboard$1.smali @@ -41,14 +41,38 @@ # virtual methods .method public final a(Ljava/lang/String;)V - .locals 1 + .locals 3 iget-object v0, p0, Lkotlin/jvm/internal/CallableReference;->receiver:Ljava/lang/Object; check-cast v0, Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent; + invoke-static {v0}, Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent;->a(Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent;)Lcom/vk/im/ui/components/dialog_header/actions/State; + + move-result-object v1 + + invoke-virtual {v1}, Lcom/vk/im/ui/components/dialog_header/actions/State;->h()Ljava/util/List; + + move-result-object v1 + + invoke-static {v1}, Lkotlin/collections/l;->h(Ljava/util/List;)Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/vk/im/engine/models/messages/Msg; + + invoke-virtual {v1}, Lcom/vk/im/engine/models/messages/Msg;->v1()I + + move-result v1 + + const v2, 0x0 + + invoke-static {p1, v1, v2}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessages(Ljava/lang/String;IZ)Ljava/lang/String; + + move-result-object v1 + .line 1 - invoke-static {v0, p1}, Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent;->a(Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent;Ljava/lang/String;)V + invoke-static {v0, v1}, Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent;->a(Lcom/vk/im/ui/components/dialog_header/actions/DialogHeaderActionsComponent;Ljava/lang/String;)V return-void .end method diff --git a/smali/smali_classes3/com/vk/im/ui/components/dialog_header/info/DialogHeaderInfoComponent.smali b/smali/smali_classes3/com/vk/im/ui/components/dialog_header/info/DialogHeaderInfoComponent.smali index 736e45abd..a675188d4 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/dialog_header/info/DialogHeaderInfoComponent.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/dialog_header/info/DialogHeaderInfoComponent.smali @@ -433,6 +433,17 @@ :cond_6 invoke-static {v0, v1, v3}, Lcom/vk/core/extensions/CollectionExt;->b(Ljava/util/Collection;Ljava/lang/Object;Z)V + .line 1 + iget-object v3, p0, Lcom/vk/im/ui/components/dialog_header/info/DialogHeaderInfoComponent;->G:Lcom/vk/im/ui/components/dialog_header/info/State; + + invoke-virtual {v3}, Lcom/vk/im/ui/components/dialog_header/info/State;->d()Lcom/vk/im/engine/models/dialogs/Dialog; + + move-result-object v3 + + invoke-static {v0, v3}, Lru/vtosters/lite/dnr/DNRInjector;->injectToListAccess(Ljava/util/List;Lcom/vk/im/engine/models/dialogs/Dialog;)Ljava/util/List; + + move-result-object v0 + return-object v0 .end method diff --git a/smali/smali_classes3/com/vk/im/ui/components/dialogs_list/vc_impl/DialogsListAdapter.smali b/smali/smali_classes3/com/vk/im/ui/components/dialogs_list/vc_impl/DialogsListAdapter.smali index 540062645..8646c8f6c 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/dialogs_list/vc_impl/DialogsListAdapter.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/dialogs_list/vc_impl/DialogsListAdapter.smali @@ -273,11 +273,14 @@ move-result-object v2 - .line 15 invoke-virtual {p2}, Lcom/vk/im/ui/components/dialogs_list/v/DialogsListModels3;->a()Ljava/lang/CharSequence; move-result-object v3 + invoke-static {v2, v3}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Lcom/vk/im/engine/models/messages/Msg;Ljava/lang/CharSequence;)Ljava/lang/CharSequence; + + move-result-object v3 + .line 16 invoke-virtual {p2}, Lcom/vk/im/ui/components/dialogs_list/v/DialogsListModels3;->g()Lcom/vk/im/engine/models/ProfilesSimpleInfo; diff --git a/smali/smali_classes3/com/vk/im/ui/components/msg_list/MsgListComponent$d.smali b/smali/smali_classes3/com/vk/im/ui/components/msg_list/MsgListComponent$d.smali index 4a20a19a3..a804feac5 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/msg_list/MsgListComponent$d.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/msg_list/MsgListComponent$d.smali @@ -47,16 +47,20 @@ # virtual methods .method public final a(Ljava/lang/String;)V - .locals 1 + .locals 4 .line 1 iget-object v0, p0, Lcom/vk/im/ui/components/msg_list/MsgListComponent$d;->a:Lcom/vk/im/ui/components/msg_list/MsgListComponent; + invoke-static {p1, v0}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Ljava/lang/String;Lcom/vk/im/ui/components/msg_list/MsgListComponent;)Ljava/lang/String; + + move-result-object v3 + invoke-virtual {v0}, Lcom/vk/im/ui/components/msg_list/MsgListComponent;->y()Landroid/content/Context; move-result-object v0 - invoke-static {v0, p1}, Lcom/vk/im/ui/utils/ClipboardUtils;->a(Landroid/content/Context;Ljava/lang/CharSequence;)V + invoke-static {v0, v3}, Lcom/vk/im/ui/utils/ClipboardUtils;->a(Landroid/content/Context;Ljava/lang/CharSequence;)V .line 2 iget-object p1, p0, Lcom/vk/im/ui/components/msg_list/MsgListComponent$d;->a:Lcom/vk/im/ui/components/msg_list/MsgListComponent; diff --git a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/dialog_header/info/DialogHeaderInfoVc.smali b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/dialog_header/info/DialogHeaderInfoVc.smali index ee020a0ae..913f02e7a 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/dialog_header/info/DialogHeaderInfoVc.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/dialog_header/info/DialogHeaderInfoVc.smali @@ -1271,7 +1271,20 @@ .end method .method private final b(Lcom/vk/im/ui/components/common/DialogAction;)V - .locals 3 + .locals 5 + + .line 1 + iget-object v3, p0, Lcom/vk/im/ui/components/viewcontrollers/dialog_header/info/DialogHeaderInfoVc;->G:Lcom/vk/im/ui/components/viewcontrollers/dialog_header/info/State; + + invoke-virtual {v3}, Lcom/vk/im/ui/components/viewcontrollers/dialog_header/info/State;->e()Lcom/vk/im/engine/models/dialogs/Dialog; + + move-result-object v3 + + invoke-static {p1, v3}, Lru/vtosters/lite/dnr/DNRInjector;->onClickHeader(Lcom/vk/im/ui/components/common/DialogAction;Lcom/vk/im/engine/models/dialogs/Dialog;)Z + + move-result v0 + + if-nez v0, :cond_0 .line 15 sget-object v0, Lcom/vk/im/ui/reporters/DialogActionReporter;->b:Lcom/vk/im/ui/reporters/DialogActionReporter; diff --git a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/adapter/msgparts/o0/CornersHelper.smali b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/adapter/msgparts/o0/CornersHelper.smali index e016dd547..f6da85203 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/adapter/msgparts/o0/CornersHelper.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/adapter/msgparts/o0/CornersHelper.smali @@ -37,7 +37,7 @@ move-object v0, v7 - invoke-direct/range {v0 .. v6}, Lcom/vk/im/ui/views/Corners;->(IIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/Corners;->(IIIII)V iput-object v7, p0, Lcom/vk/im/ui/components/viewcontrollers/msg_list/adapter/msgparts/o0/CornersHelper;->d:Lcom/vk/im/ui/views/Corners; diff --git a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/entry/MsgContentBuilder.smali b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/entry/MsgContentBuilder.smali index 8bcc175c3..1a0eada51 100644 --- a/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/entry/MsgContentBuilder.smali +++ b/smali/smali_classes3/com/vk/im/ui/components/viewcontrollers/msg_list/entry/MsgContentBuilder.smali @@ -302,11 +302,7 @@ .line 39 iget-object v3, p0, Lcom/vk/im/ui/components/viewcontrollers/msg_list/entry/MsgContentBuilder;->c:Lcom/vk/im/ui/components/viewcontrollers/msg_list/entry/MsgTextBuilder; - invoke-virtual {p1}, Lcom/vk/im/engine/models/messages/MsgFromUser;->f()Ljava/lang/String; - - move-result-object v4 - - invoke-static {v4}, Lru/vtosters/lite/hooks/MessagesHook;->injectOwnTextAll(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p1}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Lcom/vk/im/engine/models/messages/MsgFromUser;)Ljava/lang/String; move-result-object v4 @@ -678,7 +674,11 @@ move-result-object v2 - invoke-static {v2}, Lru/vtosters/lite/hooks/MessagesHook;->injectOwnTextAll(Ljava/lang/String;)Ljava/lang/String; + invoke-virtual {p1}, Lcom/vk/im/engine/models/messages/NestedMsg;->t1()I + + move-result v3 + + invoke-static {v2, v3}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Ljava/lang/String;I)Ljava/lang/String; move-result-object v2 diff --git a/smali/smali_classes3/com/vk/im/ui/formatters/MsgBodyFormatter.smali b/smali/smali_classes3/com/vk/im/ui/formatters/MsgBodyFormatter.smali index f6b1c3c67..2b049cdc1 100644 --- a/smali/smali_classes3/com/vk/im/ui/formatters/MsgBodyFormatter.smali +++ b/smali/smali_classes3/com/vk/im/ui/formatters/MsgBodyFormatter.smali @@ -834,7 +834,7 @@ .line 23 :cond_0 - invoke-virtual {p1}, Lcom/vk/im/engine/models/messages/MsgFromUser;->f()Ljava/lang/String; + invoke-static {p1}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Lcom/vk/im/engine/models/messages/MsgFromUser;)Ljava/lang/String; move-result-object p1 diff --git a/smali/smali_classes3/com/vk/im/ui/m.smali b/smali/smali_classes3/com/vk/im/ui/m.smali index d84dad4c1..1a73368ce 100644 --- a/smali/smali_classes3/com/vk/im/ui/m.smali +++ b/smali/smali_classes3/com/vk/im/ui/m.smali @@ -1150,7 +1150,7 @@ .field public static final music_promo_no_more_music_title:I = 0x7f120821 -.field public static final music_promo_no_more_music_сontimue_using_free_plan:I = 0x7f120822 +.field public static final music_promo_no_more_music_continue_using_free_plan:I = 0x7f120822 .field public static final music_promo_no_more_option_1:I = 0x7f120823 diff --git a/smali/smali_classes3/com/vk/im/ui/views/Corners$a.smali b/smali/smali_classes3/com/vk/im/ui/views/Corners$a.smali deleted file mode 100644 index 9b2334106..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/Corners$a.smali +++ /dev/null @@ -1,34 +0,0 @@ -.class public final Lcom/vk/im/ui/views/Corners$a; -.super Ljava/lang/Object; -.source "Corners.kt" - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/vk/im/ui/views/Corners; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x19 - name = "a" -.end annotation - - -# direct methods -.method private constructor ()V - .locals 0 - - .line 1 - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - -.method public synthetic constructor (Lkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 0 - - .line 2 - invoke-direct {p0}, Lcom/vk/im/ui/views/Corners$a;->()V - - return-void -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/Corners.smali b/smali/smali_classes3/com/vk/im/ui/views/Corners.smali deleted file mode 100644 index f860aa63d..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/Corners.smali +++ /dev/null @@ -1,480 +0,0 @@ -.class public final Lcom/vk/im/ui/views/Corners; -.super Ljava/lang/Object; -.source "Corners.kt" - - -# annotations -.annotation system Ldalvik/annotation/MemberClasses; - value = { - Lcom/vk/im/ui/views/Corners$a; - } -.end annotation - - -# instance fields -.field private a:I - -.field private b:I - -.field private c:I - -.field private d:I - - -# direct methods -.method static constructor ()V - .locals 2 - - new-instance v0, Lcom/vk/im/ui/views/Corners$a; - - const/4 v1, 0x0 - - invoke-direct {v0, v1}, Lcom/vk/im/ui/views/Corners$a;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor ()V - .locals 7 - - const/4 v1, 0x0 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x0 - - const/16 v5, 0xf - - const/4 v6, 0x0 - - move-object v0, p0 - - invoke-direct/range {v0 .. v6}, Lcom/vk/im/ui/views/Corners;->(IIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (IIII)V - .locals 0 - - .line 1 - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput p1, p0, Lcom/vk/im/ui/views/Corners;->a:I - - iput p2, p0, Lcom/vk/im/ui/views/Corners;->b:I - - iput p3, p0, Lcom/vk/im/ui/views/Corners;->c:I - - iput p4, p0, Lcom/vk/im/ui/views/Corners;->d:I - - return-void -.end method - -.method public synthetic constructor (IIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 1 - - and-int/lit8 p6, p5, 0x1 - - const/4 v0, 0x0 - - if-eqz p6, :cond_0 - - const/4 p1, 0x0 - - :cond_0 - and-int/lit8 p6, p5, 0x2 - - if-eqz p6, :cond_1 - - const/4 p2, 0x0 - - :cond_1 - and-int/lit8 p6, p5, 0x4 - - if-eqz p6, :cond_2 - - const/4 p3, 0x0 - - :cond_2 - and-int/lit8 p5, p5, 0x8 - - if-eqz p5, :cond_3 - - const/4 p4, 0x0 - - .line 2 - :cond_3 - invoke-direct {p0, p1, p2, p3, p4}, Lcom/vk/im/ui/views/Corners;->(IIII)V - - return-void -.end method - -.method public static synthetic a(Lcom/vk/im/ui/views/Corners;IIIIILjava/lang/Object;)Lcom/vk/im/ui/views/Corners; - .locals 0 - - and-int/lit8 p6, p5, 0x1 - - if-eqz p6, :cond_0 - - .line 10 - iget p1, p0, Lcom/vk/im/ui/views/Corners;->a:I - - :cond_0 - and-int/lit8 p6, p5, 0x2 - - if-eqz p6, :cond_1 - - .line 11 - iget p2, p0, Lcom/vk/im/ui/views/Corners;->b:I - - :cond_1 - and-int/lit8 p6, p5, 0x4 - - if-eqz p6, :cond_2 - - .line 12 - iget p3, p0, Lcom/vk/im/ui/views/Corners;->c:I - - :cond_2 - and-int/lit8 p5, p5, 0x8 - - if-eqz p5, :cond_3 - - .line 13 - iget p4, p0, Lcom/vk/im/ui/views/Corners;->d:I - - :cond_3 - invoke-virtual {p0, p1, p2, p3, p4}, Lcom/vk/im/ui/views/Corners;->a(IIII)Lcom/vk/im/ui/views/Corners; - - return-object p0 -.end method - - -# virtual methods -.method public final a()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/Corners;->c:I - - return v0 -.end method - -.method public final a(II)Lcom/vk/im/ui/views/Corners; - .locals 1 - - and-int/lit8 v0, p2, 0x1 - - if-lez v0, :cond_0 - - .line 2 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->a:I - - :cond_0 - and-int/lit8 v0, p2, 0x2 - - if-lez v0, :cond_1 - - .line 3 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->b:I - - :cond_1 - and-int/lit8 v0, p2, 0x4 - - if-lez v0, :cond_2 - - .line 4 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->c:I - - :cond_2 - and-int/lit8 v0, p2, 0x8 - - if-lez v0, :cond_3 - - .line 5 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->d:I - - :cond_3 - if-nez p2, :cond_4 - - const/4 p1, 0x0 - - .line 6 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->a:I - - .line 7 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->b:I - - .line 8 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->c:I - - .line 9 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->d:I - - :cond_4 - return-object p0 -.end method - -.method public final a(IIII)Lcom/vk/im/ui/views/Corners; - .locals 0 - - .line 14 - iput p1, p0, Lcom/vk/im/ui/views/Corners;->a:I - - .line 15 - iput p2, p0, Lcom/vk/im/ui/views/Corners;->b:I - - .line 16 - iput p3, p0, Lcom/vk/im/ui/views/Corners;->c:I - - .line 17 - iput p4, p0, Lcom/vk/im/ui/views/Corners;->d:I - - return-object p0 -.end method - -.method public final a(Lcom/vk/im/ui/views/Corners;)Lcom/vk/im/ui/views/Corners; - .locals 1 - - .line 18 - iget v0, p1, Lcom/vk/im/ui/views/Corners;->a:I - - iput v0, p0, Lcom/vk/im/ui/views/Corners;->a:I - - .line 19 - iget v0, p1, Lcom/vk/im/ui/views/Corners;->b:I - - iput v0, p0, Lcom/vk/im/ui/views/Corners;->b:I - - .line 20 - iget v0, p1, Lcom/vk/im/ui/views/Corners;->c:I - - iput v0, p0, Lcom/vk/im/ui/views/Corners;->c:I - - .line 21 - iget p1, p1, Lcom/vk/im/ui/views/Corners;->d:I - - iput p1, p0, Lcom/vk/im/ui/views/Corners;->d:I - - return-object p0 -.end method - -.method public final b()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/Corners;->d:I - - return v0 -.end method - -.method public final c()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/Corners;->a:I - - return v0 -.end method - -.method public final d()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/Corners;->b:I - - return v0 -.end method - -.method public final e()Z - .locals 2 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/Corners;->a:I - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->b:I - - if-ne v0, v1, :cond_0 - - iget v0, p0, Lcom/vk/im/ui/views/Corners;->d:I - - if-ne v1, v0, :cond_0 - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->c:I - - if-ne v1, v0, :cond_0 - - const/4 v0, 0x1 - - goto :goto_0 - - :cond_0 - const/4 v0, 0x0 - - :goto_0 - return v0 -.end method - -.method public equals(Ljava/lang/Object;)Z - .locals 2 - - if-eq p0, p1, :cond_1 - - instance-of v0, p1, Lcom/vk/im/ui/views/Corners; - - if-eqz v0, :cond_0 - - check-cast p1, Lcom/vk/im/ui/views/Corners; - - iget v0, p0, Lcom/vk/im/ui/views/Corners;->a:I - - iget v1, p1, Lcom/vk/im/ui/views/Corners;->a:I - - if-ne v0, v1, :cond_0 - - iget v0, p0, Lcom/vk/im/ui/views/Corners;->b:I - - iget v1, p1, Lcom/vk/im/ui/views/Corners;->b:I - - if-ne v0, v1, :cond_0 - - iget v0, p0, Lcom/vk/im/ui/views/Corners;->c:I - - iget v1, p1, Lcom/vk/im/ui/views/Corners;->c:I - - if-ne v0, v1, :cond_0 - - iget v0, p0, Lcom/vk/im/ui/views/Corners;->d:I - - iget p1, p1, Lcom/vk/im/ui/views/Corners;->d:I - - if-ne v0, p1, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - return p1 - - :cond_1 - :goto_0 - const/4 p1, 0x1 - - return p1 -.end method - -.method public final f()Z - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/Corners;->a:I - - if-nez v0, :cond_0 - - invoke-virtual {p0}, Lcom/vk/im/ui/views/Corners;->e()Z - - move-result v0 - - if-eqz v0, :cond_0 - - const/4 v0, 0x1 - - goto :goto_0 - - :cond_0 - const/4 v0, 0x0 - - :goto_0 - return v0 -.end method - -.method public final g()V - .locals 1 - - const/4 v0, 0x0 - - .line 1 - invoke-virtual {p0, v0, v0}, Lcom/vk/im/ui/views/Corners;->a(II)Lcom/vk/im/ui/views/Corners; - - return-void -.end method - -.method public hashCode()I - .locals 2 - - iget v0, p0, Lcom/vk/im/ui/views/Corners;->a:I - - mul-int/lit8 v0, v0, 0x1f - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->b:I - - add-int/2addr v0, v1 - - mul-int/lit8 v0, v0, 0x1f - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->c:I - - add-int/2addr v0, v1 - - mul-int/lit8 v0, v0, 0x1f - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->d:I - - add-int/2addr v0, v1 - - return v0 -.end method - -.method public toString()Ljava/lang/String; - .locals 2 - - new-instance v0, Ljava/lang/StringBuilder; - - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V - - const-string v1, "Corners(topLeft=" - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->a:I - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const-string v1, ", topRight=" - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->b:I - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const-string v1, ", bottomLeft=" - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->c:I - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const-string v1, ", bottomRight=" - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - iget v1, p0, Lcom/vk/im/ui/views/Corners;->d:I - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const-string v1, ")" - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/FrescoImageView.smali b/smali/smali_classes3/com/vk/im/ui/views/FrescoImageView.smali index eaa7ee1e5..5cf629ce6 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/FrescoImageView.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/FrescoImageView.smali @@ -289,7 +289,7 @@ move-object v4, v0 - invoke-direct/range {v4 .. v10}, Lcom/vk/im/ui/views/Corners;->(IIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-direct/range {v4 .. v9}, Lcom/vk/im/ui/views/Corners;->(IIIII)V iput-object v0, p0, Lcom/vk/im/ui/views/FrescoImageView;->K:Lcom/vk/im/ui/views/Corners; diff --git a/smali/smali_classes3/com/vk/im/ui/views/avatars/AbbreviationAvatarDrawable.smali b/smali/smali_classes3/com/vk/im/ui/views/avatars/AbbreviationAvatarDrawable.smali index c6073aaba..7f2cf573f 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/avatars/AbbreviationAvatarDrawable.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/avatars/AbbreviationAvatarDrawable.smali @@ -494,28 +494,11 @@ .method public draw(Landroid/graphics/Canvas;)V .locals 9 - .line 1 - invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect; - - move-result-object v0 - - invoke-virtual {v0}, Landroid/graphics/Rect;->exactCenterX()F - - move-result v0 - - invoke-virtual {p0}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect; - - move-result-object v1 - - invoke-virtual {v1}, Landroid/graphics/Rect;->exactCenterY()F - - move-result v1 - iget v2, p0, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;->h:F iget-object v3, p0, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;->a:Landroid/graphics/Paint; - invoke-virtual {p1, v0, v1, v2, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, v3, v2}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;Landroid/graphics/Paint;F)V .line 2 iget-object v0, p0, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;->b:Landroid/graphics/Paint; diff --git a/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali b/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali index 8805e23ca..2e40534a2 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali @@ -769,7 +769,7 @@ .line 33 sget-object v1, Lcom/vk/im/ui/views/avatars/AvatarDataSource;->o:Landroid/graphics/Paint; - invoke-virtual {p1, v0, v0, v0, v1}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {v0, p1, v1}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(FLandroid/graphics/Canvas;Landroid/graphics/Paint;)V return-void .end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/avatars/CirclePostprocessor.smali b/smali/smali_classes3/com/vk/im/ui/views/avatars/CirclePostprocessor.smali index 6ad0f0570..eaafdb59d 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/avatars/CirclePostprocessor.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/avatars/CirclePostprocessor.smali @@ -119,38 +119,7 @@ move-result-object v0 - new-instance v1, Landroid/graphics/BitmapShader; - - sget-object v2, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; - - invoke-direct {v1, p2, v2, v2}, Landroid/graphics/BitmapShader;->(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V - - invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; - - .line 2 - new-instance v0, Landroid/graphics/Canvas; - - invoke-direct {v0, p1}, Landroid/graphics/Canvas;->(Landroid/graphics/Bitmap;)V - - .line 3 - invoke-virtual {p2}, Landroid/graphics/Bitmap;->getWidth()I - - move-result p1 - - int-to-float p1, p1 - - const/4 p2, 0x2 - - int-to-float p2, p2 - - div-float/2addr p1, p2 - - .line 4 - invoke-direct {p0}, Lcom/vk/im/ui/views/avatars/CirclePostprocessor;->b()Landroid/graphics/Paint; - - move-result-object p2 - - invoke-virtual {v0, p1, p1, p1, p2}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, p2, v0}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Paint;)V return-void .end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/avatars/StoryBorderView.smali b/smali/smali_classes3/com/vk/im/ui/views/avatars/StoryBorderView.smali deleted file mode 100644 index 5067f2fd4..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/avatars/StoryBorderView.smali +++ /dev/null @@ -1,509 +0,0 @@ -.class public final Lcom/vk/im/ui/views/avatars/StoryBorderView; -.super Landroid/view/View; -.source "StoryBorderView.kt" - - -# instance fields -.field private B:Z - -.field private final a:Landroid/graphics/Paint; - -.field private b:Landroid/graphics/LinearGradient; - -.field private c:I - -.field private d:I - .annotation build Landroidx/annotation/ColorInt; - .end annotation -.end field - -.field private e:I - .annotation build Landroidx/annotation/Dimension; - .end annotation -.end field - -.field private f:I - -.field private final g:I - .annotation build Landroidx/annotation/ColorInt; - .end annotation -.end field - -.field private final h:I - .annotation build Landroidx/annotation/ColorInt; - .end annotation -.end field - - -# direct methods -.method public constructor (Landroid/content/Context;)V - .locals 6 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x6 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V - .locals 6 - - const/4 v3, 0x0 - - const/4 v4, 0x4 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - move-object v2, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V - .locals 1 - - .line 2 - invoke-direct {p0, p1, p2, p3}, Landroid/view/View;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - .line 3 - new-instance p3, Landroid/graphics/Paint; - - invoke-direct {p3}, Landroid/graphics/Paint;->()V - - const/4 v0, 0x1 - - .line 4 - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V - - .line 5 - sget-object v0, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; - - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V - - .line 6 - iput-object p3, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->a:Landroid/graphics/Paint; - - .line 7 - sget-object p3, Lcom/vk/im/ui/o;->StoryBorderView:[I - - invoke-virtual {p1, p2, p3}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; - - move-result-object p1 - - .line 8 - sget p2, Lcom/vk/im/ui/o;->StoryBorderView_vkim_borderColor:I - - const/4 p3, 0x0 - - invoke-virtual {p1, p2, p3}, Landroid/content/res/TypedArray;->getInt(II)I - - move-result p2 - - invoke-virtual {p0, p2}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->setBorderColor(I)V - - .line 9 - sget p2, Lcom/vk/im/ui/o;->StoryBorderView_vkim_borderGradientStartColor:I - - invoke-virtual {p1, p2, p3}, Landroid/content/res/TypedArray;->getInt(II)I - - move-result p2 - - iput p2, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->g:I - - .line 10 - sget p2, Lcom/vk/im/ui/o;->StoryBorderView_vkim_borderGradientEndColor:I - - invoke-virtual {p1, p2, p3}, Landroid/content/res/TypedArray;->getInt(II)I - - move-result p2 - - iput p2, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->h:I - - .line 11 - sget p2, Lcom/vk/im/ui/o;->StoryBorderView_vkim_borderWidth:I - - invoke-virtual {p1, p2, p3}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result p2 - - invoke-virtual {p0, p2}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->setBorderWidth(I)V - - .line 12 - invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V - - return-void -.end method - -.method public synthetic constructor (Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 0 - - and-int/lit8 p5, p4, 0x2 - - if-eqz p5, :cond_0 - - const/4 p2, 0x0 - - :cond_0 - and-int/lit8 p4, p4, 0x4 - - if-eqz p4, :cond_1 - - const/4 p3, 0x0 - - .line 1 - :cond_1 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - return-void -.end method - - -# virtual methods -.method public final getBorderColor()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->d:I - - return v0 -.end method - -.method public final getBorderGradientEndColor()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->h:I - - return v0 -.end method - -.method public final getBorderGradientStartColor()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->g:I - - return v0 -.end method - -.method public final getBorderWidth()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->e:I - - return v0 -.end method - -.method public final getPadding()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->f:I - - return v0 -.end method - -.method public final getViewSize()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->c:I - - return v0 -.end method - -.method protected onDraw(Landroid/graphics/Canvas;)V - .locals 7 - - .line 1 - invoke-virtual {p0}, Landroid/view/View;->getPaddingLeft()I - - move-result v0 - - int-to-float v2, v0 - - .line 2 - invoke-virtual {p0}, Landroid/view/View;->getPaddingTop()I - - move-result v0 - - int-to-float v3, v0 - - .line 3 - invoke-virtual {p0}, Landroid/view/View;->getWidth()I - - move-result v0 - - int-to-float v0, v0 - - invoke-virtual {p0}, Landroid/view/View;->getPaddingRight()I - - move-result v1 - - int-to-float v1, v1 - - sub-float v4, v0, v1 - - .line 4 - invoke-virtual {p0}, Landroid/view/View;->getHeight()I - - move-result v0 - - int-to-float v0, v0 - - invoke-virtual {p0}, Landroid/view/View;->getPaddingBottom()I - - move-result v1 - - int-to-float v1, v1 - - sub-float v5, v0, v1 - - .line 5 - iget-object v6, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->a:Landroid/graphics/Paint; - - move-object v1, p1 - - .line 6 - invoke-virtual/range {v1 .. v6}, Landroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V - - return-void -.end method - -.method protected onMeasure(II)V - .locals 0 - - .line 1 - iget p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->c:I - - invoke-virtual {p0, p1, p1}, Landroid/view/View;->setMeasuredDimension(II)V - - return-void -.end method - -.method public final setBorderColor(I)V - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->d:I - - if-eq v0, p1, :cond_0 - - .line 2 - iput p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->d:I - - .line 3 - iget-object v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->a:Landroid/graphics/Paint; - - invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V - - .line 4 - invoke-virtual {p0}, Landroid/view/View;->invalidate()V - - :cond_0 - return-void -.end method - -.method public final setBorderWidth(I)V - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->e:I - - if-eq v0, p1, :cond_0 - - .line 2 - iput p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->e:I - - .line 3 - iget-object v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->a:Landroid/graphics/Paint; - - int-to-float p1, p1 - - invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setStrokeWidth(F)V - - .line 4 - invoke-virtual {p0}, Landroid/view/View;->invalidate()V - - :cond_0 - return-void -.end method - -.method public setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - .locals 9 - - .line 1 - invoke-super {p0, p1}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - const/4 v0, 0x0 - - if-eqz p1, :cond_0 - - .line 2 - iget v1, p1, Landroid/view/ViewGroup$LayoutParams;->width:I - - goto :goto_0 - - :cond_0 - const/4 v1, 0x0 - - :goto_0 - if-eqz p1, :cond_1 - - iget p1, p1, Landroid/view/ViewGroup$LayoutParams;->height:I - - goto :goto_1 - - :cond_1 - const/4 p1, 0x0 - - :goto_1 - invoke-static {v1, p1}, Ljava/lang/Math;->min(II)I - - move-result p1 - - iput p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->c:I - - .line 3 - new-instance p1, Landroid/graphics/LinearGradient; - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x0 - - iget v1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->c:I - - int-to-float v5, v1 - - iget v6, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->g:I - - iget v7, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->h:I - - sget-object v8, Landroid/graphics/Shader$TileMode;->MIRROR:Landroid/graphics/Shader$TileMode; - - move-object v1, p1 - - invoke-direct/range {v1 .. v8}, Landroid/graphics/LinearGradient;->(FFFFIILandroid/graphics/Shader$TileMode;)V - - iput-object p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->b:Landroid/graphics/LinearGradient; - - .line 4 - iget p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->c:I - - if-lez p1, :cond_2 - - const/4 v0, 0x1 - - :cond_2 - if-eqz v0, :cond_3 - - return-void - - :cond_3 - new-instance p1, Ljava/lang/IllegalArgumentException; - - const-string v0, "Only exact size supported, specify avatar sizes in layout params" - - invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; - - move-result-object v0 - - invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V - - throw p1 -.end method - -.method public final setLive(Z)V - .locals 2 - - .line 1 - iget-boolean v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->B:Z - - if-eq v0, p1, :cond_2 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->a:Landroid/graphics/Paint; - - if-eqz p1, :cond_0 - - iget-object v1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->b:Landroid/graphics/LinearGradient; - - goto :goto_0 - - :cond_0 - const/4 v1, 0x0 - - :goto_0 - invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; - - .line 3 - iget-object v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->a:Landroid/graphics/Paint; - - if-eqz p1, :cond_1 - - const/4 v1, -0x1 - - goto :goto_1 - - :cond_1 - iget v1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->d:I - - :goto_1 - invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V - - .line 4 - iput-boolean p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->B:Z - - .line 5 - invoke-virtual {p0}, Landroid/view/View;->invalidate()V - - :cond_2 - return-void -.end method - -.method public final setPadding(I)V - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->f:I - - if-eq v0, p1, :cond_0 - - .line 2 - iput p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->f:I - - .line 3 - invoke-virtual {p0, p1, p1, p1, p1}, Landroid/view/View;->setPadding(IIII)V - - :cond_0 - return-void -.end method - -.method public final setViewSize(I)V - .locals 0 - - .line 1 - iput p1, p0, Lcom/vk/im/ui/views/avatars/StoryBorderView;->c:I - - return-void -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView$b.smali b/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView$b.smali index d99554073..f03341f53 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView$b.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView$b.smali @@ -9,7 +9,7 @@ .end annotation .annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x1a + accessFlags = 0x19 name = "b" .end annotation @@ -21,7 +21,7 @@ # direct methods -.method private constructor ()V +.method public constructor ()V .locals 0 .line 1 diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView.smali b/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView.smali index c79708563..d058e52b0 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/dialog_actions/DialogActionsListView.smali @@ -409,6 +409,10 @@ move-result-object v0 + invoke-static {v0}, Lru/vtosters/lite/dnr/DNRInjector;->injectToList(Ljava/util/List;)Ljava/util/List; + + move-result-object v0 + sput-object v0, Lcom/vk/im/ui/views/dialog_actions/DialogActionsListView;->B:Ljava/util/List; return-void diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2.smali b/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2.smali deleted file mode 100644 index 69d456194..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2.smali +++ /dev/null @@ -1,89 +0,0 @@ -.class final Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2; -.super Lkotlin/jvm/internal/Lambda; -.source "DialogItemView.kt" - -# interfaces -.implements Lkotlin/jvm/b/Functions; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x18 - name = null -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Lkotlin/jvm/internal/Lambda;", - "Lkotlin/jvm/b/Functions<", - "Landroid/graphics/drawable/Drawable;", - ">;" - } -.end annotation - - -# instance fields -.field final synthetic this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - -# direct methods -.method constructor (Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - .locals 0 - - iput-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - const/4 p1, 0x0 - - invoke-direct {p0, p1}, Lkotlin/jvm/internal/Lambda;->(I)V - - return-void -.end method - - -# virtual methods -.method public final invoke()Landroid/graphics/drawable/Drawable; - .locals 2 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-virtual {v0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - const-string v1, "context" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v1, Lcom/vk/im/ui/f;->ic_online_mobile_vkapp_composite_16:I - - invoke-static {v0, v1}, Lcom/vk/core/util/ContextExtKt;->c(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - if-eqz v0, :cond_0 - - return-object v0 - - :cond_0 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v0, 0x0 - - throw v0 -.end method - -.method public bridge synthetic invoke()Ljava/lang/Object; - .locals 1 - - .line 1 - invoke-virtual {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2;->invoke()Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - return-object v0 -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2.smali b/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2.smali deleted file mode 100644 index aa844f703..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2.smali +++ /dev/null @@ -1,89 +0,0 @@ -.class final Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2; -.super Lkotlin/jvm/internal/Lambda; -.source "DialogItemView.kt" - -# interfaces -.implements Lkotlin/jvm/b/Functions; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x18 - name = null -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Lkotlin/jvm/internal/Lambda;", - "Lkotlin/jvm/b/Functions<", - "Landroid/graphics/drawable/Drawable;", - ">;" - } -.end annotation - - -# instance fields -.field final synthetic this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - -# direct methods -.method constructor (Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - .locals 0 - - iput-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - const/4 p1, 0x0 - - invoke-direct {p0, p1}, Lkotlin/jvm/internal/Lambda;->(I)V - - return-void -.end method - - -# virtual methods -.method public final invoke()Landroid/graphics/drawable/Drawable; - .locals 2 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-virtual {v0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - const-string v1, "context" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v1, Lcom/vk/im/ui/f;->ic_online_mobile_vkme_composite_16:I - - invoke-static {v0, v1}, Lcom/vk/core/util/ContextExtKt;->c(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - if-eqz v0, :cond_0 - - return-object v0 - - :cond_0 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v0, 0x0 - - throw v0 -.end method - -.method public bridge synthetic invoke()Ljava/lang/Object; - .locals 1 - - .line 1 - invoke-virtual {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2;->invoke()Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - return-object v0 -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2.smali b/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2.smali deleted file mode 100644 index 86b56c668..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2.smali +++ /dev/null @@ -1,89 +0,0 @@ -.class final Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2; -.super Lkotlin/jvm/internal/Lambda; -.source "DialogItemView.kt" - -# interfaces -.implements Lkotlin/jvm/b/Functions; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x18 - name = null -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Lkotlin/jvm/internal/Lambda;", - "Lkotlin/jvm/b/Functions<", - "Landroid/graphics/drawable/Drawable;", - ">;" - } -.end annotation - - -# instance fields -.field final synthetic this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - -# direct methods -.method constructor (Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - .locals 0 - - iput-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - const/4 p1, 0x0 - - invoke-direct {p0, p1}, Lkotlin/jvm/internal/Lambda;->(I)V - - return-void -.end method - - -# virtual methods -.method public final invoke()Landroid/graphics/drawable/Drawable; - .locals 2 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-virtual {v0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - const-string v1, "context" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v1, Lcom/vk/im/ui/f;->ic_online_web_composite_16:I - - invoke-static {v0, v1}, Lcom/vk/core/util/ContextExtKt;->c(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - if-eqz v0, :cond_0 - - return-object v0 - - :cond_0 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v0, 0x0 - - throw v0 -.end method - -.method public bridge synthetic invoke()Ljava/lang/Object; - .locals 1 - - .line 1 - invoke-virtual {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2;->invoke()Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - return-object v0 -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2.smali b/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2.smali deleted file mode 100644 index 9735d6c65..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2.smali +++ /dev/null @@ -1,84 +0,0 @@ -.class final Lcom/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2; -.super Lkotlin/jvm/internal/Lambda; -.source "DialogItemView.kt" - -# interfaces -.implements Lkotlin/jvm/b/Functions; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x18 - name = null -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Lkotlin/jvm/internal/Lambda;", - "Lkotlin/jvm/b/Functions<", - "Ljava/lang/Integer;", - ">;" - } -.end annotation - - -# instance fields -.field final synthetic this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - -# direct methods -.method constructor (Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - .locals 0 - - iput-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - const/4 p1, 0x0 - - invoke-direct {p0, p1}, Lkotlin/jvm/internal/Lambda;->(I)V - - return-void -.end method - - -# virtual methods -.method public final invoke()I - .locals 2 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2;->this$0:Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-virtual {v0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - const-string v1, "context" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v1, Lcom/vk/im/ui/d;->vkim_administration_title:I - - invoke-static {v0, v1}, Lcom/vk/core/util/ContextExtKt;->a(Landroid/content/Context;I)I - - move-result v0 - - return v0 -.end method - -.method public bridge synthetic invoke()Ljava/lang/Object; - .locals 1 - - .line 1 - invoke-virtual {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2;->invoke()I - - move-result v0 - - invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; - - move-result-object v0 - - return-object v0 -.end method diff --git a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView.smali b/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView.smali deleted file mode 100644 index e1461951b..000000000 --- a/smali/smali_classes3/com/vk/im/ui/views/dialogs/DialogItemView.smali +++ /dev/null @@ -1,6199 +0,0 @@ -.class public final Lcom/vk/im/ui/views/dialogs/DialogItemView; -.super Landroid/view/ViewGroup; -.source "DialogItemView.kt" - - -# static fields -.field static final synthetic i0:[Lkotlin/u/KProperty5; - - -# instance fields -.field private final B:I - -.field private final C:I - -.field private final D:I - -.field private final E:Z - -.field private final F:Ljava/lang/String; - -.field private final G:Lcom/vk/im/ui/drawables/TypingDrawable; - -.field private final H:Lcom/vk/im/ui/drawables/RecordingDrawable; - -.field private I:Z - -.field private final J:I - -.field private final K:Lcom/vk/im/ui/views/avatars/AvatarView; - -.field private final L:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - -.field private final N:Landroid/widget/TextView; - -.field private final O:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final P:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final Q:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final R:Landroid/widget/TextView; - -.field private final S:Lcom/vk/im/ui/views/avatars/AvatarView; - -.field private final T:Landroid/widget/TextView; - -.field private final U:Landroid/widget/TextView; - -.field private final V:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final W:Landroid/widget/TextView; - -.field private final a:Landroid/util/DisplayMetrics; - -.field private final a0:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final b:Lkotlin/Lazy2; - -.field private final b0:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final c:Lkotlin/Lazy2; - -.field private final c0:Landroid/widget/TextView; - -.field private final d:Lkotlin/Lazy2; - -.field private final d0:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final e:I - -.field private final e0:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final f:Lkotlin/Lazy2; - -.field private final f0:Landroidx/appcompat/widget/AppCompatImageView; - -.field private final g:Lcom/vk/im/ui/drawables/RoundCornerColorDrawable; - -.field private g0:Z - -.field private final h:I - -.field private h0:Z - - -# direct methods -.method static constructor ()V - .locals 5 - - const/4 v0, 0x4 - - new-array v0, v0, [Lkotlin/u/KProperty5; - - new-instance v1, Lkotlin/jvm/internal/PropertyReference1Impl; - - const-class v2, Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-static {v2}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; - - move-result-object v2 - - const-string v3, "drOnlineWeb" - - const-string v4, "getDrOnlineWeb()Landroid/graphics/drawable/Drawable;" - - invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference1Impl;->(Lkotlin/u/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V - - invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->a(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/u/KProperty2; - - const/4 v2, 0x0 - - aput-object v1, v0, v2 - - new-instance v1, Lkotlin/jvm/internal/PropertyReference1Impl; - - const-class v2, Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-static {v2}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; - - move-result-object v2 - - const-string v3, "drOnlineMobile" - - const-string v4, "getDrOnlineMobile()Landroid/graphics/drawable/Drawable;" - - invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference1Impl;->(Lkotlin/u/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V - - invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->a(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/u/KProperty2; - - const/4 v2, 0x1 - - aput-object v1, v0, v2 - - new-instance v1, Lkotlin/jvm/internal/PropertyReference1Impl; - - const-class v2, Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-static {v2}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; - - move-result-object v2 - - const-string v3, "drOnlineVkMe" - - const-string v4, "getDrOnlineVkMe()Landroid/graphics/drawable/Drawable;" - - invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference1Impl;->(Lkotlin/u/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V - - invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->a(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/u/KProperty2; - - const/4 v2, 0x2 - - aput-object v1, v0, v2 - - new-instance v1, Lkotlin/jvm/internal/PropertyReference1Impl; - - const-class v2, Lcom/vk/im/ui/views/dialogs/DialogItemView; - - invoke-static {v2}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; - - move-result-object v2 - - const-string v3, "titleColorHighlight" - - const-string v4, "getTitleColorHighlight()I" - - invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference1Impl;->(Lkotlin/u/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V - - invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->a(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/u/KProperty2; - - const/4 v2, 0x3 - - aput-object v1, v0, v2 - - sput-object v0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i0:[Lkotlin/u/KProperty5; - - return-void -.end method - -.method public constructor (Landroid/content/Context;)V - .locals 6 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x6 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V - .locals 6 - - const/4 v3, 0x0 - - const/4 v4, 0x4 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - move-object v2, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V - .locals 31 - - move-object/from16 v9, p0 - - move-object/from16 v10, p1 - - .line 1 - invoke-direct/range {p0 .. p3}, Landroid/view/ViewGroup;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - .line 2 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getResources()Landroid/content/res/Resources; - - move-result-object v0 - - const-string v1, "resources" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; - - move-result-object v0 - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a:Landroid/util/DisplayMetrics; - - .line 3 - new-instance v0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2; - - invoke-direct {v0, v9}, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineWeb$2;->(Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - - invoke-static {v0}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; - - move-result-object v0 - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b:Lkotlin/Lazy2; - - .line 4 - new-instance v0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2; - - invoke-direct {v0, v9}, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineMobile$2;->(Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - - invoke-static {v0}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; - - move-result-object v0 - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c:Lkotlin/Lazy2; - - .line 5 - new-instance v0, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2; - - invoke-direct {v0, v9}, Lcom/vk/im/ui/views/dialogs/DialogItemView$drOnlineVkMe$2;->(Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - - invoke-static {v0}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; - - move-result-object v0 - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d:Lkotlin/Lazy2; - - .line 6 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - const-string v1, "context" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v2, Lcom/vk/im/ui/c;->text_primary:I - - invoke-static {v0, v2}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v0 - - iput v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e:I - - .line 7 - new-instance v0, Lcom/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2; - - invoke-direct {v0, v9}, Lcom/vk/im/ui/views/dialogs/DialogItemView$titleColorHighlight$2;->(Lcom/vk/im/ui/views/dialogs/DialogItemView;)V - - invoke-static {v0}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; - - move-result-object v0 - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f:Lkotlin/Lazy2; - - .line 8 - new-instance v0, Lcom/vk/im/ui/drawables/RoundCornerColorDrawable; - - invoke-direct {v0}, Lcom/vk/im/ui/drawables/RoundCornerColorDrawable;->()V - - const/16 v6, 0xc - - invoke-virtual {v9, v6}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - invoke-virtual {v0, v2}, Lcom/vk/im/ui/drawables/RoundCornerColorDrawable;->b(I)V - - sget-object v2, Lkotlin/Unit;->a:Lkotlin/Unit; - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g:Lcom/vk/im/ui/drawables/RoundCornerColorDrawable; - - .line 9 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v2, Lcom/vk/im/ui/c;->counter_primary_background:I - - invoke-static {v0, v2}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v0 - - iput v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h:I - - .line 10 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v2, Lcom/vk/im/ui/c;->counter_secondary_background:I - - invoke-static {v0, v2}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v0 - - iput v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->B:I - - const/16 v0, 0x19 - - .line 11 - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v0 - - iput v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->C:I - - const/16 v0, 0x2a - - .line 12 - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v0 - - iput v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->D:I - - .line 13 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v2, Lcom/vk/im/ui/c;->im_new_theme:I - - invoke-static {v0, v2}, Lcom/vk/core/util/ContextExtKt;->g(Landroid/content/Context;I)Z - - move-result v0 - - iput-boolean v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - .line 14 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v0 - - sget v2, Lcom/vk/im/ui/m;->vkim_msg_empty:I - - invoke-virtual {v0, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String; - - move-result-object v0 - - const-string v2, "context.getString(R.string.vkim_msg_empty)" - - invoke-static {v0, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->F:Ljava/lang/String; - - .line 15 - new-instance v0, Lcom/vk/im/ui/drawables/TypingDrawable; - - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v2 - - invoke-static {v2, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v3, Lcom/vk/im/ui/c;->link_alternate:I - - invoke-static {v2, v3}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v2 - - invoke-direct {v0, v2}, Lcom/vk/im/ui/drawables/TypingDrawable;->(I)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->G:Lcom/vk/im/ui/drawables/TypingDrawable; - - .line 16 - new-instance v0, Lcom/vk/im/ui/drawables/RecordingDrawable; - - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v2 - - invoke-static {v2, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - sget v1, Lcom/vk/im/ui/c;->link_alternate:I - - invoke-static {v2, v1}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v1 - - invoke-direct {v0, v1}, Lcom/vk/im/ui/drawables/RecordingDrawable;->(I)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->H:Lcom/vk/im/ui/drawables/RecordingDrawable; - - .line 17 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getResources()Landroid/content/res/Resources; - - move-result-object v0 - - sget v1, Lcom/vk/im/ui/m;->fontRobotoRegular:I - - invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; - - move-result-object v0 - - const/4 v11, 0x0 - - invoke-static {v0, v11}, Landroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface; - - move-result-object v12 - - .line 18 - invoke-virtual/range {p0 .. p0}, Landroid/view/ViewGroup;->getResources()Landroid/content/res/Resources; - - move-result-object v0 - - sget v1, Lcom/vk/im/ui/m;->fontRobotoMedium:I - - invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; - - move-result-object v0 - - invoke-static {v0, v11}, Landroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface; - - move-result-object v13 - - .line 19 - iget-boolean v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - if-eqz v0, :cond_0 - - const/16 v15, 0x8 - - goto :goto_0 - - :cond_0 - const/4 v15, 0x0 - - .line 20 - :goto_0 - sget-object v0, Lcom/vk/im/ui/o;->DialogItemView:[I - - move-object/from16 v1, p2 - - invoke-virtual {v10, v1, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; - - move-result-object v0 - - .line 21 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_title_font:I - - invoke-virtual {v0, v1}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; - - move-result-object v8 - - .line 22 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_title_text_size:I - - const/16 v7, 0x11 - - invoke-static {v7}, Lcom/vk/core/util/Screen;->c(I)I - - move-result v2 - - invoke-virtual {v0, v1, v2}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v5 - - .line 23 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_body_text_size:I - - const/16 v2, 0xf - - invoke-static {v2}, Lcom/vk/core/util/Screen;->c(I)I - - move-result v2 - - invoke-virtual {v0, v1, v2}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v4 - - .line 24 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_time_text_size:I - - const/16 v3, 0xd - - invoke-static {v3}, Lcom/vk/core/util/Screen;->c(I)I - - move-result v2 - - invoke-virtual {v0, v1, v2}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v2 - - .line 25 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_time_text_color:I - - const/high16 v3, -0x1000000 - - invoke-virtual {v0, v1, v3}, Landroid/content/res/TypedArray;->getColor(II)I - - move-result v3 - - .line 26 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_avatar_story_border_color:I - - sget v16, Lcom/vk/im/ui/c;->accent:I - - invoke-static/range {v16 .. v16}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I - - move-result v7 - - invoke-virtual {v0, v1, v7}, Landroid/content/res/TypedArray;->getColor(II)I - - move-result v7 - - .line 27 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_avatar_story_border_width:I - - const/4 v14, 0x2 - - invoke-static {v14}, Lcom/vk/core/util/Screen;->a(I)I - - move-result v6 - - invoke-virtual {v0, v1, v6}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v6 - - .line 28 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_avatar_story_size:I - - const/16 v18, 0x44 - - invoke-static/range {v18 .. v18}, Lcom/vk/core/util/Screen;->a(I)I - - move-result v14 - - invoke-virtual {v0, v1, v14}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v14 - - .line 29 - sget v1, Lcom/vk/im/ui/o;->DialogItemView_vkim_avatar_combine:I - - invoke-virtual {v0, v1, v11}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z - - move-result v1 - - .line 30 - sget v11, Lcom/vk/im/ui/o;->DialogItemView_vkim_avatar_size:I - - const/16 v19, 0x40 - - move/from16 v20, v1 - - invoke-static/range {v19 .. v19}, Lcom/vk/core/util/Screen;->a(I)I - - move-result v1 - - invoke-virtual {v0, v11, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v1 - - iput v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->J:I - - .line 31 - invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V - - .line 32 - new-instance v11, Lcom/vk/im/ui/views/avatars/AvatarView; - - const/16 v19, 0x0 - - const/16 v21, 0x0 - - const/16 v22, 0x6 - - const/16 v23, 0x0 - - move-object v0, v11 - - move/from16 v24, v20 - - move-object/from16 v1, p1 - - move/from16 v25, v2 - - move-object/from16 v2, v19 - - move/from16 v26, v3 - - move/from16 v3, v21 - - move/from16 v27, v4 - - move/from16 v4, v22 - - move/from16 v28, v5 - - move-object/from16 v5, v23 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/avatars/AvatarView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - iput-object v11, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - .line 33 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - iget v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->J:I - - invoke-virtual {v0, v1}, Lcom/vk/im/ui/views/avatars/AvatarView;->setViewSize(I)V - - .line 34 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - const/4 v1, 0x2 - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - invoke-virtual {v0, v2}, Lcom/vk/im/ui/views/avatars/AvatarView;->setDividerSize(I)V - - .line 35 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - move/from16 v1, v24 - - invoke-virtual {v0, v1}, Lcom/vk/im/ui/views/avatars/AvatarView;->setCombineAvatars(Z)V - - .line 36 - iget-object v11, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - iget v2, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->J:I - - const/4 v3, 0x0 - - const/4 v4, 0x0 - - const/16 v0, 0xc - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v5 - - const/16 v17, 0x0 - - const/16 v19, 0x2c - - const/16 v20, 0x0 - - move-object/from16 v0, p0 - - move v1, v2 - - move/from16 v29, v6 - - move/from16 v6, v17 - - move/from16 v30, v7 - - move/from16 v7, v19 - - move-object/from16 p3, v13 - - move-object v13, v8 - - move-object/from16 v8, v20 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v11, v0}, Lcom/vk/im/ui/views/avatars/AvatarView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 37 - new-instance v6, Lcom/vk/im/ui/views/avatars/StoryBorderView; - - const/4 v2, 0x0 - - const/4 v4, 0x6 - - const/4 v5, 0x0 - - move-object v0, v6 - - move-object/from16 v1, p1 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - iput-object v6, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - .line 38 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - move/from16 v1, v30 - - invoke-virtual {v0, v1}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->setBorderColor(I)V - - .line 39 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - move/from16 v1, v29 - - invoke-virtual {v0, v1}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->setBorderWidth(I)V - - .line 40 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - invoke-virtual {v0, v14}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->setViewSize(I)V - - .line 41 - iget-object v11, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - const/4 v4, 0x0 - - const/4 v5, 0x0 - - const/4 v6, 0x0 - - const/16 v7, 0x3c - - const/4 v8, 0x0 - - move-object/from16 v0, p0 - - move v1, v14 - - move v2, v14 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v11, v0}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 42 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - const/16 v1, 0x8 - - invoke-virtual {v0, v1}, Landroid/view/View;->setVisibility(I)V - - .line 43 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - .line 44 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v11, 0x0 - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 45 - iget-object v14, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - const/16 v8, 0x10 - - invoke-virtual {v9, v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/16 v0, 0x14 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/16 v17, 0x0 - - move-object/from16 v0, p0 - - move-object/from16 v8, v17 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v14, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 46 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - iget-boolean v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - const/4 v2, 0x0 - - const/4 v14, 0x1 - - if-eqz v1, :cond_1 - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - int-to-float v1, v1 - - goto :goto_1 - - :cond_1 - const/4 v1, 0x0 - - :goto_1 - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setTranslationX(F)V - - .line 47 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - iget-boolean v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - if-eqz v1, :cond_2 - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - int-to-float v2, v1 - - :cond_2 - invoke-virtual {v0, v2}, Landroid/widget/ImageView;->setTranslationY(F)V - - .line 48 - new-instance v0, Lcom/vk/im/ui/views/FixTextView; - - invoke-direct {v0, v10}, Lcom/vk/im/ui/views/FixTextView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - .line 49 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - check-cast v0, Lcom/vk/im/ui/views/FixTextView; - - const/4 v1, 0x0 - - invoke-static {v13, v1}, Landroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface; - - move-result-object v2 - - invoke-virtual {v0, v2}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V - - .line 50 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - move/from16 v2, v28 - - int-to-float v2, v2 - - invoke-virtual {v0, v1, v2}, Landroid/widget/TextView;->setTextSize(IF)V - - .line 51 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - iget v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e:I - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V - - .line 52 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {v0, v14}, Landroid/widget/TextView;->setSingleLine(Z)V - - .line 53 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - check-cast v0, Lcom/vk/im/ui/views/FixTextView; - - sget-object v1, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt; - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V - - .line 54 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - move-object v13, v0 - - check-cast v13, Lcom/vk/im/ui/views/FixTextView; - - const/4 v1, 0x0 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x0 - - const/4 v5, 0x0 - - const/4 v6, 0x0 - - const/16 v7, 0x3f - - const/4 v8, 0x0 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v13, v0}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 55 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - .line 56 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Lcom/vk/core/utils/VerifyInfoHelper;->h:Lcom/vk/core/utils/VerifyInfoHelper; - - sget-object v2, Lcom/vk/core/utils/VerifyInfoHelper$ColorTheme;->normal:Lcom/vk/core/utils/VerifyInfoHelper$ColorTheme; - - const/4 v3, 0x0 - - invoke-virtual {v1, v14, v3, v10, v2}, Lcom/vk/core/utils/VerifyInfoHelper;->b(ZZLandroid/content/Context;Lcom/vk/core/utils/VerifyInfoHelper$ColorTheme;)Landroid/graphics/drawable/Drawable; - - move-result-object v1 - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V - - .line 57 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 58 - iget-object v13, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - const/16 v8, 0x10 - - invoke-virtual {v9, v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - invoke-virtual {v9, v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/4 v7, 0x6 - - invoke-virtual {v9, v7}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v4 - - const/16 v17, 0x30 - - const/16 v19, 0x0 - - move-object/from16 v0, p0 - - move/from16 v7, v17 - - const/16 v14, 0x10 - - move-object/from16 v8, v19 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v13, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 59 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - .line 60 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->ic_ghost_16:I - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageResource(I)V - - .line 61 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 62 - iget-object v13, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/4 v8, 0x4 - - invoke-virtual {v9, v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const v0, 0x3fe66666 # 1.8f - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(F)I - - move-result v4 - - const/16 v7, 0x30 - - const/16 v17, 0x0 - - move-object/from16 v0, p0 - - move-object/from16 v8, v17 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v13, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 63 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - .line 64 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->vkim_ic_muted_16:I - - sget v2, Lcom/vk/im/ui/c;->icon_tertiary:I - - invoke-static {v0, v1, v2}, Lcom/vk/extensions/ImageViewExt;->a(Landroid/widget/ImageView;II)V - - .line 65 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 66 - iget-object v13, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - invoke-virtual {v9, v14}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/4 v0, 0x4 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const v0, 0x3fe66666 # 1.8f - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(F)I - - move-result v4 - - const/4 v8, 0x0 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v13, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 67 - new-instance v6, Lcom/vk/im/ui/views/avatars/AvatarView; - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x6 - - const/4 v5, 0x0 - - move-object v0, v6 - - move-object/from16 v1, p1 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/avatars/AvatarView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - iput-object v6, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - .line 68 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - const/16 v1, 0x20 - - invoke-static {v1}, Lcom/vk/core/util/Screen;->a(I)I - - move-result v2 - - invoke-virtual {v0, v2}, Lcom/vk/im/ui/views/avatars/AvatarView;->setViewSize(I)V - - .line 69 - iget-object v13, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const/4 v4, 0x0 - - const/4 v5, 0x0 - - const/16 v0, 0xa - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v6 - - const/4 v7, 0x0 - - const/16 v8, 0x2c - - move-object/from16 v0, p0 - - move v1, v2 - - move v2, v3 - - move v3, v4 - - move v4, v5 - - move v5, v6 - - move v6, v7 - - move v7, v8 - - move-object/from16 v8, v17 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v13, v0}, Lcom/vk/im/ui/views/avatars/AvatarView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 70 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v0, v15}, Landroid/widget/ImageView;->setVisibility(I)V - - .line 71 - new-instance v0, Landroid/widget/TextView; - - invoke-direct {v0, v10}, Landroid/widget/TextView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - .line 72 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-virtual {v0, v12}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V - - .line 73 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - move/from16 v1, v27 - - int-to-float v13, v1 - - const/4 v1, 0x0 - - invoke-virtual {v0, v1, v13}, Landroid/widget/TextView;->setTextSize(IF)V - - .line 74 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - sget v1, Lcom/vk/im/ui/c;->text_subhead:I - - invoke-static {v10, v1}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V - - .line 75 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - sget-object v1, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt; - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V - - .line 76 - iget-object v8, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - const/4 v1, 0x0 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x0 - - const/4 v5, 0x0 - - const/4 v6, 0x0 - - const/16 v7, 0x3f - - move-object/from16 v0, p0 - - move-object v14, v8 - - move-object/from16 v8, v17 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v14, v0}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 77 - new-instance v0, Landroid/widget/TextView; - - invoke-direct {v0, v10}, Landroid/widget/TextView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - .line 78 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-virtual {v0, v12}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V - - .line 79 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - move/from16 v1, v25 - - int-to-float v1, v1 - - const/4 v2, 0x0 - - invoke-virtual {v0, v2, v1}, Landroid/widget/TextView;->setTextSize(IF)V - - .line 80 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - move/from16 v1, v26 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V - - .line 81 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - const/4 v1, 0x1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setSingleLine(Z)V - - .line 82 - iget-object v14, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - const/4 v1, 0x0 - - const/4 v2, 0x0 - - const/4 v8, 0x6 - - invoke-virtual {v9, v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const/16 v7, 0x3b - - move-object/from16 v0, p0 - - move-object/from16 v8, v17 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v14, v0}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 83 - new-instance v0, Landroid/widget/TextView; - - invoke-direct {v0, v10}, Landroid/widget/TextView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - .line 84 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-virtual {v0, v12}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V - - .line 85 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - const/4 v1, 0x0 - - invoke-virtual {v0, v1, v13}, Landroid/widget/TextView;->setTextSize(IF)V - - .line 86 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - sget v1, Lcom/vk/im/ui/c;->link_alternate:I - - invoke-static {v10, v1}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V - - .line 87 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - const/4 v1, 0x1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setSingleLine(Z)V - - .line 88 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - sget-object v1, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt; - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V - - .line 89 - iget-object v14, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - const/4 v1, 0x0 - - const/4 v3, 0x0 - - const/16 v7, 0x3f - - const/4 v8, 0x0 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v14, v0}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 90 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - .line 91 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->vkim_ic_chats_gift:I - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageResource(I)V - - .line 92 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V - - .line 93 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 94 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - const/high16 v1, -0x41000000 # -0.5f - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(F)I - - move-result v1 - - int-to-float v1, v1 - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setTranslationY(F)V - - .line 95 - iget-object v14, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - const/16 v0, 0xb - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/16 v0, 0xd - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/4 v0, 0x6 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v5 - - const/16 v7, 0x2c - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v14, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 96 - new-instance v0, Landroid/widget/TextView; - - invoke-direct {v0, v10}, Landroid/widget/TextView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - .line 97 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {v0, v12}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V - - .line 98 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - const/4 v1, 0x0 - - invoke-virtual {v0, v1, v13}, Landroid/widget/TextView;->setTextSize(IF)V - - .line 99 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - sget v1, Lcom/vk/im/ui/c;->link_alternate:I - - invoke-static {v10, v1}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V - - .line 100 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - const/4 v1, 0x1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setSingleLine(Z)V - - .line 101 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - sget-object v1, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt; - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V - - .line 102 - iget-object v12, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - const/4 v1, 0x0 - - const/4 v2, 0x0 - - const/4 v5, 0x0 - - const/16 v7, 0x3f - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v12, v0}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 103 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {v0, v15}, Landroid/widget/TextView;->setVisibility(I)V - - .line 104 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 105 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - iget-object v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->G:Lcom/vk/im/ui/drawables/TypingDrawable; - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V - - .line 106 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V - - .line 107 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 108 - iget-object v12, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - const/16 v0, 0x1e - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/16 v0, 0xa - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/16 v0, 0x8 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const/4 v4, 0x1 - - invoke-virtual {v9, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v5 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v6 - - const/4 v7, 0x0 - - const/16 v8, 0x20 - - const/4 v13, 0x0 - - move-object/from16 v0, p0 - - move v4, v5 - - move v5, v6 - - move v6, v7 - - move v7, v8 - - move-object v8, v13 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v12, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 109 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v1, 0x0 - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setVisibility(I)V - - .line 110 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 111 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->ic_mention_composite_24:I - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageResource(I)V - - .line 112 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V - - .line 113 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 114 - iget-object v12, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - const/16 v13, 0x18 - - invoke-virtual {v9, v13}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - invoke-virtual {v9, v13}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/16 v0, 0x8 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const/4 v4, 0x0 - - const/4 v5, 0x0 - - const/4 v6, 0x0 - - const/16 v7, 0x38 - - const/4 v8, 0x0 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v12, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 115 - new-instance v0, Landroid/widget/TextView; - - invoke-direct {v0, v10}, Landroid/widget/TextView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - .line 116 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - move-object/from16 v1, p3 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V - - .line 117 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/high16 v1, 0x41600000 # 14.0f - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextSize(F)V - - .line 118 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/4 v1, -0x1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setTextColor(I)V - - .line 119 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/16 v1, 0x11 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setGravity(I)V - - .line 120 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/4 v1, 0x1 - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setSingleLine(Z)V - - .line 121 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - iget-object v1, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g:Lcom/vk/im/ui/drawables/RoundCornerColorDrawable; - - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setBackground(Landroid/graphics/drawable/Drawable;)V - - .line 122 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/16 v1, 0x8 - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/4 v3, 0x2 - - invoke-virtual {v9, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v4 - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v5 - - invoke-virtual {v9, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - invoke-virtual {v0, v2, v4, v5, v3}, Landroid/widget/TextView;->setPadding(IIII)V - - .line 123 - iget-object v12, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - invoke-virtual {v9, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v4 - - const/4 v5, 0x0 - - const/4 v7, 0x0 - - const/16 v8, 0x3b - - const/4 v14, 0x0 - - move-object/from16 v0, p0 - - move v1, v2 - - move v2, v3 - - move v3, v4 - - move v4, v5 - - move v5, v6 - - move v6, v7 - - move v7, v8 - - move-object v8, v14 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v12, v0}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 124 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 125 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->vkim_unread:I - - sget v2, Lcom/vk/im/ui/c;->counter_primary_background:I - - invoke-static {v0, v1, v2}, Lcom/vk/extensions/ImageViewExt;->a(Landroid/widget/ImageView;II)V - - .line 126 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V - - .line 127 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 128 - iget-object v12, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v13}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/4 v2, 0x0 - - const/16 v0, 0x8 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const/4 v4, 0x0 - - const/4 v5, 0x0 - - const/4 v6, 0x0 - - const/16 v7, 0x3a - - const/4 v8, 0x0 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v12, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 129 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 130 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->vkim_ic_msg_sending:I - - sget v2, Lcom/vk/im/ui/c;->icon_outline_medium:I - - invoke-static {v0, v1, v2}, Lcom/vk/extensions/ImageViewExt;->a(Landroid/widget/ImageView;II)V - - .line 131 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Landroid/widget/ImageView$ScaleType;->CENTER_INSIDE:Landroid/widget/ImageView$ScaleType; - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V - - .line 132 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 133 - iget-object v12, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v13}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/4 v2, 0x0 - - const/16 v0, 0x8 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v12, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 134 - new-instance v0, Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {v0, v10}, Landroidx/appcompat/widget/AppCompatImageView;->(Landroid/content/Context;)V - - iput-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 135 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->ic_chats_error_16:I - - sget v2, Lcom/vk/im/ui/c;->field_error_border:I - - invoke-static {v0, v1, v2}, Lcom/vk/extensions/ImageViewExt;->a(Landroid/widget/ImageView;II)V - - .line 136 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - sget-object v1, Landroid/widget/ImageView$ScaleType;->FIT_CENTER:Landroid/widget/ImageView$ScaleType; - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V - - .line 137 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, v11}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V - - .line 138 - iget-object v10, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v13}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/16 v0, 0x10 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - const/16 v0, 0x8 - - invoke-virtual {v9, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v3 - - const/16 v7, 0x38 - - move-object/from16 v0, p0 - - invoke-static/range {v0 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object v0 - - invoke-virtual {v10, v0}, Landroid/widget/ImageView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V - - .line 139 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 140 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 141 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 142 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 143 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 144 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 145 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 146 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 147 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 148 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 149 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 150 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 151 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 152 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 153 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 154 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 155 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 156 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - .line 157 - iget-object v0, v9, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v9, v0}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V - - return-void -.end method - -.method public synthetic constructor (Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 0 - - and-int/lit8 p5, p4, 0x2 - - if-eqz p5, :cond_0 - - const/4 p2, 0x0 - - :cond_0 - and-int/lit8 p4, p4, 0x4 - - if-eqz p4, :cond_1 - - const/4 p3, 0x0 - - .line 158 - :cond_1 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - return-void -.end method - -.method private final a(Landroid/view/View;)I - .locals 0 - - .line 63 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p1 - - check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams; - - if-eqz p1, :cond_0 - - iget p1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - :goto_0 - return p1 -.end method - -.method private final a(IIIIII)Landroid/view/ViewGroup$MarginLayoutParams; - .locals 1 - - .line 48 - new-instance v0, Landroid/view/ViewGroup$MarginLayoutParams; - - invoke-direct {v0, p1, p2}, Landroid/view/ViewGroup$MarginLayoutParams;->(II)V - - .line 49 - iput p3, v0, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I - - .line 50 - iput p4, v0, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I - - .line 51 - iput p5, v0, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I - - .line 52 - iput p6, v0, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I - - return-object v0 -.end method - -.method static synthetic a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIIIIILjava/lang/Object;)Landroid/view/ViewGroup$MarginLayoutParams; - .locals 1 - - and-int/lit8 p8, p7, 0x1 - - const/4 v0, -0x2 - - if-eqz p8, :cond_0 - - const/4 p1, -0x2 - - :cond_0 - and-int/lit8 p8, p7, 0x2 - - if-eqz p8, :cond_1 - - const/4 p2, -0x2 - - :cond_1 - and-int/lit8 p8, p7, 0x4 - - const/4 v0, 0x0 - - if-eqz p8, :cond_2 - - const/4 p3, 0x0 - - :cond_2 - and-int/lit8 p8, p7, 0x8 - - if-eqz p8, :cond_3 - - const/4 p4, 0x0 - - :cond_3 - and-int/lit8 p8, p7, 0x10 - - if-eqz p8, :cond_4 - - const/4 p5, 0x0 - - :cond_4 - and-int/lit8 p7, p7, 0x20 - - if-eqz p7, :cond_5 - - const/4 p6, 0x0 - - .line 47 - :cond_5 - invoke-direct/range {p0 .. p6}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(IIIIII)Landroid/view/ViewGroup$MarginLayoutParams; - - move-result-object p0 - - return-object p0 -.end method - -.method private final a(II)V - .locals 12 - - .line 26 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - const/4 v3, 0x0 - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;IIII)V - - .line 27 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - const/4 v9, 0x0 - - const/4 v11, 0x0 - - move-object v6, p0 - - move v8, p1 - - move v10, p2 - - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 28 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final a(III)V - .locals 12 - - .line 42 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v3, p3 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 43 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v11, 0x0 - - move-object v6, p0 - - move v8, p1 - - move v9, p3 - - move v10, p2 - - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 44 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - .line 45 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v0 - - add-int v3, p3, v0 - - move-object v0, p0 - - .line 46 - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final a(IIII)V - .locals 0 - - .line 29 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - .line 30 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 31 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 32 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;II)V - - .line 33 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - .line 34 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p2}, Landroid/widget/ImageView;->getLeft()I - - move-result p2 - - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p3}, Landroid/widget/ImageView;->getPaddingLeft()I - - move-result p3 - - sub-int/2addr p2, p3 - - .line 35 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p3}, Landroid/widget/ImageView;->getTop()I - - move-result p3 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getPaddingTop()I - - move-result p4 - - sub-int/2addr p3, p4 - - .line 36 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;II)V - - .line 37 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - .line 38 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p2}, Landroid/widget/ImageView;->getRight()I - - move-result p2 - - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p3}, Landroid/widget/ImageView;->getMeasuredWidth()I - - move-result p3 - - sub-int/2addr p2, p3 - - .line 39 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p3}, Landroid/widget/ImageView;->getBottom()I - - move-result p3 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result p4 - - sub-int/2addr p3, p4 - - .line 40 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - return-void -.end method - -.method private final a(Landroid/graphics/drawable/Drawable;)V - .locals 10 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - const/16 v1, 0x10 - - invoke-virtual {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - const/16 v2, 0x14 - - invoke-virtual {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v2 - - invoke-static {v0, v1, v2}, Lcom/vk/extensions/ViewExtKt;->c(Landroid/view/View;II)V - - .line 3 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0, p1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V - - .line 4 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v2, 0x0 - - const-wide/16 v3, 0x0 - - const-wide/16 v5, 0x0 - - const/4 v7, 0x0 - - const/16 v8, 0xf - - const/4 v9, 0x0 - - invoke-static/range {v1 .. v9}, Lcom/vk/core/extensions/AnimationExtKt;->a(Landroid/view/View;FJJLjava/lang/Runnable;ILjava/lang/Object;)Landroid/view/ViewPropertyAnimator; - - return-void -.end method - -.method private final a(Landroid/view/View;II)V - .locals 2 - - .line 62 - invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I - - move-result v0 - - add-int/2addr v0, p2 - - invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I - - move-result v1 - - add-int/2addr v1, p3 - - invoke-virtual {p1, p2, p3, v0, v1}, Landroid/view/View;->layout(IIII)V - - return-void -.end method - -.method private final a(Landroid/view/View;IIII)V - .locals 1 - - .line 55 - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p3, v0 - - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p3, v0 - - .line 56 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object v0 - - iget v0, v0, Landroid/view/ViewGroup$LayoutParams;->width:I - - .line 57 - invoke-static {p2, p3, v0}, Landroid/view/ViewGroup;->getChildMeasureSpec(III)I - - move-result p2 - - .line 58 - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p3 - - add-int/2addr p5, p3 - - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;)I - - move-result p3 - - add-int/2addr p5, p3 - - .line 59 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p3 - - iget p3, p3, Landroid/view/ViewGroup$LayoutParams;->height:I - - .line 60 - invoke-static {p4, p5, p3}, Landroid/view/ViewGroup;->getChildMeasureSpec(III)I - - move-result p3 - - .line 61 - invoke-virtual {p1, p2, p3}, Landroid/view/View;->measure(II)V - - return-void -.end method - -.method static synthetic a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIILjava/lang/Object;)V - .locals 0 - - and-int/lit8 p4, p4, 0x4 - - if-eqz p4, :cond_0 - - const/4 p3, 0x0 - - .line 41 - :cond_0 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(III)V - - return-void -.end method - -.method private final a(Ljava/lang/CharSequence;I)V - .locals 3 - - .line 17 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - const/4 v1, 0x0 - - if-eqz p1, :cond_1 - - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 v2, 0x0 - - goto :goto_1 - - :cond_1 - :goto_0 - const/4 v2, 0x1 - - :goto_1 - if-nez v2, :cond_2 - - goto :goto_2 - - :cond_2 - const/16 v1, 0x8 - - :goto_2 - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V - - .line 18 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V - - .line 19 - invoke-direct {p0, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->setBodyLinesCount(I)V - - return-void -.end method - -.method private final b(I)I - .locals 1 - - const/high16 v0, -0x80000000 - - .line 24 - invoke-static {p1, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I - - move-result p1 - - return p1 -.end method - -.method private final b(Landroid/view/View;)I - .locals 0 - - .line 23 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p1 - - check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams; - - if-eqz p1, :cond_0 - - iget p1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - :goto_0 - return p1 -.end method - -.method private final b(II)V - .locals 12 - - .line 6 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v3, 0x0 - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 7 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v9, 0x0 - - const/4 v11, 0x0 - - move-object v6, p0 - - move v8, p1 - - move v10, p2 - - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 8 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 9 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final b(III)V - .locals 6 - - .line 10 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v3, p3 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final b(IIII)V - .locals 1 - - .line 11 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result p3 - - if-eqz p3, :cond_0 - - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result p3 - - add-int/2addr p3, p1 - - goto :goto_0 - - :cond_0 - move p3, p1 - - .line 12 - :goto_0 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - .line 13 - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p3, v0 - - .line 14 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p2, v0 - - .line 15 - invoke-direct {p0, p4, p3, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;II)V - - .line 16 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - .line 17 - invoke-direct {p0, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p3 - - add-int/2addr p1, p3 - - .line 18 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-virtual {p3}, Landroid/widget/TextView;->getTop()I - - move-result p3 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-virtual {p4}, Landroid/widget/TextView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - add-int/2addr p3, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - sub-int/2addr p3, p4 - - .line 19 - invoke-direct {p0, p2, p1, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - return-void -.end method - -.method private final b(Landroid/view/View;II)V - .locals 1 - - .line 22 - invoke-virtual {p1}, Landroid/view/View;->getVisibility()I - - move-result v0 - - if-nez v0, :cond_0 - - invoke-direct {p0, p1, p2, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;II)V - - :cond_0 - return-void -.end method - -.method private final b(Landroid/view/View;IIII)V - .locals 2 - - .line 20 - invoke-virtual {p1}, Landroid/view/View;->getVisibility()I - - move-result v0 - - const/16 v1, 0x8 - - if-eq v0, v1, :cond_0 - - .line 21 - invoke-direct/range {p0 .. p5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;IIII)V - - :cond_0 - return-void -.end method - -.method private final c(Landroid/view/View;)I - .locals 0 - - .line 35 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p1 - - check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams; - - if-eqz p1, :cond_0 - - iget p1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - :goto_0 - return p1 -.end method - -.method private final c(I)V - .locals 7 - - .line 2 - invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I - - move-result v0 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingLeft()I - - move-result v1 - - sub-int/2addr v0, v1 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingRight()I - - move-result v1 - - sub-int/2addr v0, v1 - - .line 3 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v1}, Lcom/vk/im/ui/views/avatars/AvatarView;->getViewSize()I - - move-result v1 - - sub-int v1, v0, v1 - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v1 - - .line 4 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v2 - - .line 5 - invoke-direct {p0, v1, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(II)V - - .line 6 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->r()I - - move-result v1 - - sub-int v2, v0, v1 - - .line 7 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v3 - - .line 8 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v4 - - .line 9 - invoke-direct {p0, v3, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(II)V - - .line 10 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i()I - - move-result v3 - - sub-int/2addr v2, v3 - - .line 11 - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v2 - - .line 12 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v4 - - .line 13 - invoke-direct {p0, v2, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(II)V - - .line 14 - iget-object v5, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v5 - - iget-object v6, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v6}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v6 - - add-int/2addr v5, v6 - - iget-object v6, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v6}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v6 - - add-int/2addr v5, v6 - - .line 15 - invoke-direct {p0, v2, v4, v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(III)V - - sub-int/2addr v0, v3 - - sub-int/2addr v0, v1 - - .line 16 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v1 - - .line 17 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v2 - - .line 18 - iget-object v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v3 - - invoke-direct {p0, v1, v2, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(III)V - - .line 19 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v0 - - .line 20 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v1 - - .line 21 - invoke-direct {p0, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(II)V - - .line 22 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->l()I - - move-result v0 - - .line 23 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->o()I - - move-result v1 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j()I - - move-result v2 - - invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I - - move-result v1 - - .line 24 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->s()I - - move-result v2 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->q()I - - move-result v3 - - invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I - - move-result v2 - - .line 25 - invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I - - move-result v1 - - .line 26 - invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I - - move-result p1 - - .line 27 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingTop()I - - move-result v2 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingBottom()I - - move-result v3 - - add-int/2addr v2, v3 - - .line 28 - iget-object v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v3 - - add-int/2addr v0, v1 - - invoke-static {v3, v0}, Ljava/lang/Math;->max(II)I - - move-result v0 - - add-int/2addr v2, v0 - - .line 29 - invoke-virtual {p0, p1, v2}, Landroid/view/ViewGroup;->setMeasuredDimension(II)V - - return-void -.end method - -.method private final c(II)V - .locals 6 - - .line 30 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - const/4 v3, 0x0 - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final c(IIII)V - .locals 1 - - .line 31 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - add-int/2addr v0, p2 - - .line 32 - invoke-direct {p0, p1, p2, p3, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(IIII)V - - .line 33 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p2, v0 - - .line 34 - invoke-direct {p0, p1, p2, p3, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(IIII)V - - return-void -.end method - -.method private final d(Landroid/view/View;)I - .locals 0 - - .line 43 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p1 - - check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams; - - if-eqz p1, :cond_0 - - iget p1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - :goto_0 - return p1 -.end method - -.method private final d(I)V - .locals 9 - - .line 2 - invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I - - move-result v0 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingLeft()I - - move-result v1 - - sub-int/2addr v0, v1 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingRight()I - - move-result v1 - - sub-int/2addr v0, v1 - - .line 3 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v1}, Lcom/vk/im/ui/views/avatars/AvatarView;->getViewSize()I - - move-result v1 - - sub-int v1, v0, v1 - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v1 - - .line 4 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v2 - - .line 5 - invoke-direct {p0, v1, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(II)V - - .line 6 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->r()I - - move-result v1 - - .line 7 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v2 - - .line 8 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v3 - - .line 9 - invoke-direct {p0, v2, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(II)V - - .line 10 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i()I - - move-result v2 - - sub-int/2addr v0, v2 - - .line 11 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v2 - - .line 12 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v3 - - .line 13 - invoke-direct {p0, v2, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(II)V - - .line 14 - iget-object v4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v4 - - iget-object v5, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v5 - - add-int/2addr v4, v5 - - iget-object v5, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-direct {p0, v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v5 - - add-int/2addr v4, v5 - - iget-object v5, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v5 - - add-int/2addr v4, v5 - - .line 15 - invoke-direct {p0, v2, v3, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(III)V - - sub-int v2, v0, v1 - - .line 16 - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v3 - - .line 17 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v4 - - .line 18 - invoke-direct {p0, v3, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(II)V - - .line 19 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->p()I - - move-result v3 - - sub-int/2addr v0, v3 - - sub-int/2addr v0, v1 - - .line 20 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v4 - - .line 21 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v5 - - const/4 v6, 0x0 - - const/4 v7, 0x4 - - const/4 v8, 0x0 - - move-object v3, p0 - - .line 22 - invoke-static/range {v3 .. v8}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Lcom/vk/im/ui/views/dialogs/DialogItemView;IIIILjava/lang/Object;)V - - .line 23 - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(I)I - - move-result v0 - - .line 24 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->m()I - - move-result v1 - - .line 25 - invoke-direct {p0, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(II)V - - .line 26 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->l()I - - move-result v0 - - .line 27 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->o()I - - move-result v1 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j()I - - move-result v2 - - invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I - - move-result v1 - - .line 28 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->s()I - - move-result v2 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->q()I - - move-result v3 - - invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I - - move-result v2 - - .line 29 - invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I - - move-result v1 - - .line 30 - invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I - - move-result p1 - - .line 31 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingTop()I - - move-result v2 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingBottom()I - - move-result v3 - - add-int/2addr v2, v3 - - .line 32 - iget-object v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v3 - - add-int/2addr v0, v1 - - invoke-static {v3, v0}, Ljava/lang/Math;->max(II)I - - move-result v0 - - add-int/2addr v2, v0 - - .line 33 - invoke-virtual {p0, p1, v2}, Landroid/view/ViewGroup;->setMeasuredDimension(II)V - - return-void -.end method - -.method private final d(II)V - .locals 12 - - .line 38 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v3, 0x0 - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 39 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/4 v9, 0x0 - - const/4 v11, 0x0 - - move-object v6, p0 - - move v8, p1 - - move v10, p2 - - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 40 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 41 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 42 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final d(IIII)V - .locals 0 - - .line 34 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - .line 35 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 36 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 37 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;II)V - - return-void -.end method - -.method private final e(II)V - .locals 12 - - .line 5 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v3, 0x0 - - const/4 v5, 0x0 - - move-object v0, p0 - - move v2, p1 - - move v4, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - .line 6 - iget-object v7, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - .line 7 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v9 - - const/4 v11, 0x0 - - move-object v6, p0 - - move v8, p1 - - move v10, p2 - - .line 8 - invoke-direct/range {v6 .. v11}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;IIII)V - - return-void -.end method - -.method private final e(IIII)V - .locals 1 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result v0 - - if-eqz v0, :cond_0 - - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result v0 - - if-eqz v0, :cond_0 - - invoke-direct {p0, p1, p2, p3, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(IIII)V - - goto :goto_0 - - .line 3 - :cond_0 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result v0 - - if-eqz v0, :cond_1 - - invoke-direct {p0, p1, p2, p3, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(IIII)V - - goto :goto_0 - - .line 4 - :cond_1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result v0 - - if-eqz v0, :cond_2 - - invoke-direct {p0, p1, p2, p3, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(IIII)V - - :cond_2 - :goto_0 - return-void -.end method - -.method private final e(Landroid/view/View;)Z - .locals 0 - - .line 9 - invoke-virtual {p1}, Landroid/view/View;->getVisibility()I - - move-result p1 - - if-nez p1, :cond_0 - - const/4 p1, 0x1 - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - :goto_0 - return p1 -.end method - -.method private final f(Landroid/view/View;)I - .locals 2 - - .line 28 - invoke-virtual {p1}, Landroid/view/View;->getVisibility()I - - move-result v0 - - const/16 v1, 0x8 - - if-ne v0, v1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - .line 29 - :cond_0 - invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I - - move-result v0 - - .line 30 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p1 - - check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams; - - if-eqz p1, :cond_1 - - .line 31 - iget v1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I - - iget p1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I - - add-int/2addr v1, p1 - - add-int/2addr v0, v1 - - :cond_1 - move p1, v0 - - :goto_0 - return p1 -.end method - -.method private final f(IIII)V - .locals 3 - - .line 3 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - .line 4 - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p1, v0 - - .line 5 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v0 - - add-int/2addr v0, p2 - - .line 6 - invoke-direct {p0, p4, p1, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 7 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {p1}, Landroid/widget/TextView;->getRight()I - - move-result p1 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 8 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {p4}, Landroid/widget/TextView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - add-int/2addr p2, p4 - - .line 9 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - .line 10 - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result v0 - - add-int/2addr v0, p1 - - .line 11 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v1}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result v1 - - div-int/lit8 v1, v1, 0x2 - - sub-int v1, p2, v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v2 - - add-int/2addr v1, v2 - - .line 12 - invoke-direct {p0, p4, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 13 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result p4 - - if-eqz p4, :cond_0 - - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p1}, Landroid/widget/ImageView;->getRight()I - - move-result p1 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 14 - :cond_0 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - .line 15 - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result v0 - - add-int/2addr v0, p1 - - .line 16 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v1}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result v1 - - div-int/lit8 v1, v1, 0x2 - - sub-int v1, p2, v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v2 - - add-int/2addr v1, v2 - - .line 17 - invoke-direct {p0, p4, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 18 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result p4 - - if-eqz p4, :cond_1 - - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p1}, Landroid/widget/ImageView;->getRight()I - - move-result p1 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 19 - :cond_1 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - .line 20 - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p1, v0 - - .line 21 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result v0 - - div-int/lit8 v0, v0, 0x2 - - sub-int v0, p2, v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - .line 22 - invoke-direct {p0, p4, p1, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 23 - iget-boolean p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - if-nez p1, :cond_2 - - .line 24 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - .line 25 - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p4 - - sub-int/2addr p3, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-virtual {p4}, Landroid/widget/TextView;->getMeasuredWidth()I - - move-result p4 - - sub-int/2addr p3, p4 - - .line 26 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-virtual {p4}, Landroid/widget/TextView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - sub-int/2addr p2, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 27 - invoke-direct {p0, p1, p3, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - :cond_2 - return-void -.end method - -.method private final g(Landroid/view/View;)I - .locals 2 - - .line 24 - invoke-virtual {p1}, Landroid/view/View;->getVisibility()I - - move-result v0 - - const/16 v1, 0x8 - - if-ne v0, v1, :cond_0 - - const/4 p1, 0x0 - - return p1 - - .line 25 - :cond_0 - invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I - - move-result v0 - - .line 26 - invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; - - move-result-object p1 - - check-cast p1, Landroid/view/ViewGroup$MarginLayoutParams; - - if-eqz p1, :cond_1 - - .line 27 - iget v1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I - - iget p1, p1, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I - - add-int/2addr v1, p1 - - add-int/2addr v0, v1 - - :cond_1 - return v0 -.end method - -.method private final g(IIII)V - .locals 4 - - .line 2 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingLeft()I - - move-result p1 - - .line 3 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingTop()I - - move-result p2 - - .line 4 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getMeasuredWidth()I - - move-result p3 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingRight()I - - move-result p4 - - sub-int/2addr p3, p4 - - .line 5 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getMeasuredHeight()I - - move-result p4 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingBottom()I - - move-result v0 - - sub-int/2addr p4, v0 - - .line 6 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i()I - - move-result v0 - - add-int/2addr v0, p1 - - .line 7 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h()I - - move-result v1 - - add-int/2addr v1, p2 - - .line 8 - invoke-direct {p0, p1, p2, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(IIII)V - - .line 9 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-virtual {p1}, Landroid/widget/TextView;->getMaxLines()I - - move-result p1 - - const/4 v1, 0x1 - - if-eq p1, v1, :cond_1 - - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result p1 - - if-eqz p1, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 p1, 0x0 - - goto :goto_1 - - .line 10 - :cond_1 - :goto_0 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h()I - - move-result p1 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->l()I - - move-result v1 - - sub-int/2addr p1, v1 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j()I - - move-result v1 - - sub-int/2addr p1, v1 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->s()I - - move-result v1 - - sub-int/2addr p1, v1 - - div-int/lit8 p1, p1, 0x2 - - :goto_1 - add-int/2addr p1, p2 - - .line 11 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->l()I - - move-result v1 - - add-int/2addr v1, p1 - - .line 12 - invoke-direct {p0, v0, p1, p3, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(IIII)V - - .line 13 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->k()I - - move-result p1 - - .line 14 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j()I - - move-result v1 - - .line 15 - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {v2}, Landroid/widget/TextView;->getBottom()I - - move-result v2 - - iget-object v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;)I - - move-result v3 - - add-int/2addr v2, v3 - - add-int/2addr p1, v0 - - add-int/2addr v1, v2 - - .line 16 - invoke-direct {p0, v0, v2, p1, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(IIII)V - - .line 17 - invoke-direct {p0, v0, v2, p1, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->l(IIII)V - - .line 18 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {v0}, Landroid/widget/TextView;->getBottom()I - - move-result v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->getTimeMargin()I - - move-result v1 - - add-int/2addr v0, v1 - - .line 19 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-direct {p0, v1, p1, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 20 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->r()I - - move-result p1 - - .line 21 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->q()I - - move-result v0 - - sub-int p1, p3, p1 - - add-int/2addr p2, p4 - - .line 22 - div-int/lit8 p2, p2, 0x2 - - div-int/lit8 p4, v0, 0x2 - - sub-int/2addr p2, p4 - - add-int/2addr v0, p2 - - .line 23 - invoke-direct {p0, p1, p2, p3, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j(IIII)V - - return-void -.end method - -.method private final getDrOnlineMobile()Landroid/graphics/drawable/Drawable; - .locals 3 - - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c:Lkotlin/Lazy2; - - sget-object v1, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i0:[Lkotlin/u/KProperty5; - - const/4 v2, 0x1 - - aget-object v1, v1, v2 - - invoke-interface {v0}, Lkotlin/Lazy2;->getValue()Ljava/lang/Object; - - move-result-object v0 - - check-cast v0, Landroid/graphics/drawable/Drawable; - - return-object v0 -.end method - -.method private final getDrOnlineVkMe()Landroid/graphics/drawable/Drawable; - .locals 3 - - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d:Lkotlin/Lazy2; - - sget-object v1, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i0:[Lkotlin/u/KProperty5; - - const/4 v2, 0x2 - - aget-object v1, v1, v2 - - invoke-interface {v0}, Lkotlin/Lazy2;->getValue()Ljava/lang/Object; - - move-result-object v0 - - check-cast v0, Landroid/graphics/drawable/Drawable; - - return-object v0 -.end method - -.method private final getDrOnlineWeb()Landroid/graphics/drawable/Drawable; - .locals 3 - - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b:Lkotlin/Lazy2; - - sget-object v1, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i0:[Lkotlin/u/KProperty5; - - const/4 v2, 0x0 - - aget-object v1, v1, v2 - - invoke-interface {v0}, Lkotlin/Lazy2;->getValue()Ljava/lang/Object; - - move-result-object v0 - - check-cast v0, Landroid/graphics/drawable/Drawable; - - return-object v0 -.end method - -.method private final getTimeMargin()I - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-virtual {v0}, Landroid/widget/TextView;->getLayout()Landroid/text/Layout; - - move-result-object v0 - - if-eqz v0, :cond_0 - - goto :goto_0 - - :cond_0 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-virtual {v0}, Landroid/widget/TextView;->getLayout()Landroid/text/Layout; - - move-result-object v0 - - :goto_0 - const/4 v1, 0x0 - - if-eqz v0, :cond_2 - - .line 2 - invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineBaseline(I)I - - move-result v0 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-virtual {v2}, Landroid/widget/TextView;->getLayout()Landroid/text/Layout; - - move-result-object v2 - - if-eqz v2, :cond_1 - - invoke-virtual {v2, v1}, Landroid/text/Layout;->getLineBaseline(I)I - - move-result v1 - - :cond_1 - sub-int/2addr v0, v1 - - return v0 - - :cond_2 - return v1 -.end method - -.method private final getTitleColorHighlight()I - .locals 3 - - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f:Lkotlin/Lazy2; - - sget-object v1, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i0:[Lkotlin/u/KProperty5; - - const/4 v2, 0x3 - - aget-object v1, v1, v2 - - invoke-interface {v0}, Lkotlin/Lazy2;->getValue()Ljava/lang/Object; - - move-result-object v0 - - check-cast v0, Ljava/lang/Number; - - invoke-virtual {v0}, Ljava/lang/Number;->intValue()I - - move-result v0 - - return v0 -.end method - -.method private final h()I - .locals 1 - - .line 32 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - return v0 -.end method - -.method private final h(IIII)V - .locals 5 - - .line 1 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingLeft()I - - move-result p1 - - .line 2 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingTop()I - - move-result p2 - - .line 3 - invoke-virtual {p0}, Landroid/view/ViewGroup;->getMeasuredWidth()I - - move-result p3 - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getPaddingRight()I - - move-result p4 - - sub-int/2addr p3, p4 - - .line 4 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i()I - - move-result p4 - - add-int/2addr p4, p1 - - .line 5 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h()I - - move-result v0 - - add-int/2addr v0, p2 - - .line 6 - invoke-direct {p0, p1, p2, p4, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(IIII)V - - .line 7 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->l()I - - move-result p1 - - add-int/2addr p1, p2 - - .line 8 - invoke-direct {p0, p4, p2, p3, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(IIII)V - - .line 9 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {p1}, Landroid/widget/TextView;->getBottom()I - - move-result p1 - - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/view/View;)I - - move-result v0 - - add-int/2addr p1, v0 - - .line 10 - iget v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->C:I - - add-int/2addr v0, p2 - - invoke-static {v0, p1}, Ljava/lang/Math;->max(II)I - - move-result v0 - - .line 11 - iget v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->D:I - - add-int/2addr p2, v1 - - const/16 v1, 0x10 - - invoke-virtual {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(I)I - - move-result v1 - - add-int/2addr v1, p1 - - invoke-static {p2, v1}, Ljava/lang/Math;->max(II)I - - move-result p2 - - .line 12 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->p()I - - move-result v1 - - .line 13 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->o()I - - move-result v2 - - .line 14 - div-int/lit8 v3, v2, 0x2 - - sub-int v3, p2, v3 - - .line 15 - invoke-static {p1, v3}, Ljava/lang/Math;->max(II)I - - move-result v3 - - add-int/2addr v1, p4 - - add-int/2addr v2, v3 - - .line 16 - invoke-direct {p0, p4, v3, v1, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->i(IIII)V - - .line 17 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->k()I - - move-result v2 - - .line 18 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j()I - - move-result v3 - - .line 19 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->n()Z - - move-result v4 - - if-eqz v4, :cond_0 - - div-int/lit8 v0, v3, 0x2 - - sub-int v0, p2, v0 - - .line 20 - :cond_0 - invoke-static {p1, v0}, Ljava/lang/Math;->max(II)I - - move-result v0 - - add-int/2addr v2, v1 - - add-int/2addr v3, v0 - - .line 21 - invoke-direct {p0, v1, v0, v2, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(IIII)V - - .line 22 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->t()I - - move-result v0 - - .line 23 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->s()I - - move-result v1 - - .line 24 - div-int/lit8 v2, v1, 0x2 - - sub-int v2, p2, v2 - - .line 25 - invoke-static {p1, v2}, Ljava/lang/Math;->max(II)I - - move-result v2 - - add-int/2addr v0, p4 - - add-int/2addr v1, v2 - - .line 26 - invoke-direct {p0, p4, v2, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->k(IIII)V - - .line 27 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->r()I - - move-result p4 - - .line 28 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->q()I - - move-result v0 - - .line 29 - div-int/lit8 v1, v0, 0x2 - - sub-int/2addr p2, v1 - - sub-int p4, p3, p4 - - .line 30 - invoke-static {p1, p2}, Ljava/lang/Math;->max(II)I - - move-result p1 - - add-int/2addr v0, p1 - - .line 31 - invoke-direct {p0, p4, p1, p3, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->j(IIII)V - - return-void -.end method - -.method private final i()I - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v0 - - return v0 -.end method - -.method private final i(IIII)V - .locals 0 - - sub-int/2addr p4, p2 - - .line 2 - div-int/lit8 p4, p4, 0x2 - - add-int/2addr p2, p4 - - .line 3 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - .line 4 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 5 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - sub-int/2addr p2, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 6 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - return-void -.end method - -.method private final j()I - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v2 - - invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I - - move-result v1 - - add-int/2addr v0, v1 - - return v0 -.end method - -.method private final j(IIII)V - .locals 2 - - sub-int/2addr p4, p2 - - .line 2 - div-int/lit8 p4, p4, 0x2 - - add-int/2addr p2, p4 - - .line 3 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 4 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p4, p1 - - .line 5 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result v0 - - div-int/lit8 v0, v0, 0x2 - - sub-int v0, p2, v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - .line 6 - invoke-direct {p0, p3, p4, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 7 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-static {p3}, Lcom/vk/extensions/ViewExtKt;->i(Landroid/view/View;)Z - - move-result p3 - - const/4 p4, 0x1 - - if-ne p3, p4, :cond_0 - - .line 8 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p1}, Landroid/widget/ImageView;->getRight()I - - move-result p1 - - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p3 - - add-int/2addr p1, p3 - - .line 9 - :cond_0 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - .line 10 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p4, p1 - - .line 11 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - invoke-virtual {v0}, Landroid/widget/TextView;->getMeasuredHeight()I - - move-result v0 - - div-int/lit8 v0, v0, 0x2 - - sub-int v0, p2, v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - .line 12 - invoke-direct {p0, p3, p4, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 13 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 14 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p4, p1 - - .line 15 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result v0 - - div-int/lit8 v0, v0, 0x2 - - sub-int v0, p2, v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - .line 16 - invoke-direct {p0, p3, p4, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 17 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 18 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p4, p1 - - .line 19 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result v0 - - div-int/lit8 v0, v0, 0x2 - - sub-int v0, p2, v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - .line 20 - invoke-direct {p0, p3, p4, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 21 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 22 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 23 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - sub-int/2addr p2, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 24 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - return-void -.end method - -.method private final k()I - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v2 - - add-int/2addr v1, v2 - - invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I - - move-result v0 - - return v0 -.end method - -.method private final k(IIII)V - .locals 2 - - sub-int/2addr p4, p2 - - .line 2 - div-int/lit8 p4, p4, 0x2 - - add-int/2addr p2, p4 - - .line 3 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - .line 4 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p4, p1 - - .line 5 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {v0}, Landroid/widget/TextView;->getMeasuredHeight()I - - move-result v0 - - div-int/lit8 v0, v0, 0x2 - - sub-int v0, p2, v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - .line 6 - invoke-direct {p0, p3, p4, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 7 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result p3 - - if-eqz p3, :cond_0 - - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {p1}, Landroid/widget/TextView;->getRight()I - - move-result p1 - - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p3 - - add-int/2addr p1, p3 - - .line 8 - :cond_0 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 9 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 10 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - sub-int/2addr p2, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 11 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - return-void -.end method - -.method private final l()I - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v1 - - invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I - - move-result v0 - - .line 2 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v2 - - invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I - - move-result v1 - - .line 3 - invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I - - move-result v0 - - return v0 -.end method - -.method private final l(IIII)V - .locals 0 - - .line 4 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - .line 5 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 6 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - .line 7 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {p1}, Landroid/widget/TextView;->getRight()I - - move-result p1 - - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(Landroid/view/View;)I - - move-result p2 - - add-int/2addr p1, p2 - - .line 8 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {p2}, Landroid/widget/TextView;->getBottom()I - - move-result p2 - - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {p3}, Landroid/widget/TextView;->getTop()I - - move-result p3 - - add-int/2addr p2, p3 - - div-int/lit8 p2, p2, 0x2 - - .line 9 - iget-object p3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - .line 10 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p1, p4 - - .line 11 - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {p4}, Landroid/widget/ImageView;->getMeasuredHeight()I - - move-result p4 - - div-int/lit8 p4, p4, 0x2 - - sub-int/2addr p2, p4 - - iget-object p4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, p4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(Landroid/view/View;)I - - move-result p4 - - add-int/2addr p2, p4 - - .line 12 - invoke-direct {p0, p3, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b(Landroid/view/View;II)V - - return-void -.end method - -.method private final m()I - .locals 1 - - const/4 v0, 0x0 - - .line 1 - invoke-static {v0, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I - - move-result v0 - - return v0 -.end method - -.method private final n()Z - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e(Landroid/view/View;)Z - - move-result v0 - - return v0 -.end method - -.method private final o()I - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - return v0 -.end method - -.method private final p()I - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v0 - - return v0 -.end method - -.method private final q()I - .locals 5 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - .line 2 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v2 - - .line 3 - iget-object v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v3 - - iget-object v4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v4 - - .line 4 - invoke-static {v0, v1, v2, v3, v4}, Lb/h/g/r/MathExt;->a(IIIII)I - - move-result v0 - - return v0 -.end method - -.method private final r()I - .locals 5 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v0 - - .line 2 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v1 - - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v2 - - .line 3 - iget-object v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v3 - - iget-object v4, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v4}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v4 - - .line 4 - invoke-static {v1, v2, v3, v4}, Lb/h/g/r/MathExt;->a(IIII)I - - move-result v1 - - add-int/2addr v0, v1 - - return v0 -.end method - -.method private final s()I - .locals 2 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f(Landroid/view/View;)I - - move-result v1 - - invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I - - move-result v0 - - return v0 -.end method - -.method private final setAttach(Ljava/lang/CharSequence;)V - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - const/4 v1, 0x0 - - if-eqz p1, :cond_1 - - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 v2, 0x0 - - goto :goto_1 - - :cond_1 - :goto_0 - const/4 v2, 0x1 - - :goto_1 - if-nez v2, :cond_2 - - goto :goto_2 - - :cond_2 - const/16 v1, 0x8 - - :goto_2 - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->U:Landroid/widget/TextView; - - invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V - - return-void -.end method - -.method private final setBodyLinesCount(I)V - .locals 2 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - const/4 v1, 0x1 - - if-ne p1, v1, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 v1, 0x0 - - :goto_0 - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setSingleLine(Z)V - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->T:Landroid/widget/TextView; - - invoke-virtual {v0, p1}, Landroid/widget/TextView;->setMaxLines(I)V - - return-void -.end method - -.method private final t()I - .locals 2 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v0 - - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-direct {p0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(Landroid/view/View;)I - - move-result v1 - - add-int/2addr v0, v1 - - return v0 -.end method - -.method private final u()V - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - iget-boolean v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g0:Z - - iget-boolean v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h0:Z - - or-int/2addr v1, v2 - - invoke-static {v0, v1}, Lcom/vk/extensions/ViewExtKt;->b(Landroid/view/View;Z)V - - return-void -.end method - - -# virtual methods -.method public final a(F)I - .locals 2 - - .line 54 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a:Landroid/util/DisplayMetrics; - - iget v0, v0, Landroid/util/DisplayMetrics;->densityDpi:I - - int-to-float v0, v0 - - const/high16 v1, 0x43200000 # 160.0f - - div-float/2addr v0, v1 - - mul-float p1, p1, v0 - - float-to-int p1, p1 - - return p1 -.end method - -.method public final a(I)I - .locals 2 - - int-to-float p1, p1 - - .line 53 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a:Landroid/util/DisplayMetrics; - - iget v0, v0, Landroid/util/DisplayMetrics;->densityDpi:I - - int-to-float v0, v0 - - const/high16 v1, 0x43200000 # 160.0f - - div-float/2addr v0, v1 - - mul-float p1, p1, v0 - - float-to-int p1, p1 - - return p1 -.end method - -.method public final a()V - .locals 2 - - const/4 v0, 0x0 - - const/4 v1, 0x1 - - .line 7 - invoke-direct {p0, v0, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Ljava/lang/CharSequence;I)V - - .line 8 - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->setAttach(Ljava/lang/CharSequence;)V - - return-void -.end method - -.method public final a(Lcom/vk/im/engine/models/dialogs/Dialog;Lcom/vk/im/engine/models/ProfilesSimpleInfo;)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v0, p1, p2}, Lcom/vk/im/ui/views/avatars/AvatarView;->a(Lcom/vk/im/engine/models/dialogs/Dialog;Lcom/vk/im/engine/models/ProfilesSimpleInfo;)V - - return-void -.end method - -.method public final a(Ljava/lang/CharSequence;ILjava/lang/CharSequence;)V - .locals 4 - - const/4 v0, 0x0 - - const/4 v1, 0x1 - - if-eqz p1, :cond_1 - - .line 9 - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 v2, 0x0 - - goto :goto_1 - - :cond_1 - :goto_0 - const/4 v2, 0x1 - - :goto_1 - const/4 v3, 0x0 - - if-nez v2, :cond_2 - - .line 10 - invoke-direct {p0, p1, p2}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Ljava/lang/CharSequence;I)V - - .line 11 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->setAttach(Ljava/lang/CharSequence;)V - - goto :goto_2 - - .line 12 - :cond_2 - invoke-direct {p0, v3, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Ljava/lang/CharSequence;I)V - - .line 13 - invoke-direct {p0, p3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->setAttach(Ljava/lang/CharSequence;)V - - :goto_2 - if-eqz p1, :cond_4 - - .line 14 - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result p1 - - if-nez p1, :cond_3 - - goto :goto_3 - - :cond_3 - const/4 p1, 0x0 - - goto :goto_4 - - :cond_4 - :goto_3 - const/4 p1, 0x1 - - :goto_4 - if-eqz p1, :cond_7 - - if-eqz p3, :cond_5 - - invoke-interface {p3}, Ljava/lang/CharSequence;->length()I - - move-result p1 - - if-nez p1, :cond_6 - - :cond_5 - const/4 v0, 0x1 - - :cond_6 - if-eqz v0, :cond_7 - - .line 15 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->F:Ljava/lang/String; - - invoke-direct {p0, p1, v1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Ljava/lang/CharSequence;I)V - - .line 16 - invoke-direct {p0, v3}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->setAttach(Ljava/lang/CharSequence;)V - - :cond_7 - return-void -.end method - -.method public final a(Ljava/lang/CharSequence;Lcom/vk/im/engine/models/typing/ComposingType;)V - .locals 3 - - .line 20 - sget-object v0, Lcom/vk/im/engine/models/typing/ComposingType;->AUDIO:Lcom/vk/im/engine/models/typing/ComposingType; - - if-ne p2, v0, :cond_0 - - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->H:Lcom/vk/im/ui/drawables/RecordingDrawable; - - goto :goto_0 - - :cond_0 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->G:Lcom/vk/im/ui/drawables/TypingDrawable; - - :goto_0 - const/4 v0, 0x0 - - const/4 v1, 0x1 - - if-eqz p1, :cond_2 - - .line 21 - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_1 - - goto :goto_1 - - :cond_1 - const/4 v2, 0x0 - - goto :goto_2 - - :cond_2 - :goto_1 - const/4 v2, 0x1 - - :goto_2 - xor-int/2addr v2, v1 - - invoke-virtual {p2, v2, v0}, Landroid/graphics/drawable/Drawable;->setVisible(ZZ)Z - - .line 22 - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-virtual {v2, p2}, Landroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V - - .line 23 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a0:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_4 - - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_3 - - goto :goto_3 - - :cond_3 - const/4 v2, 0x0 - - goto :goto_4 - - :cond_4 - :goto_3 - const/4 v2, 0x1 - - :goto_4 - xor-int/2addr v2, v1 - - invoke-static {p2, v2}, Lcom/vk/extensions/ViewExtKt;->b(Landroid/view/View;Z)V - - .line 24 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - if-eqz p1, :cond_5 - - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_6 - - :cond_5 - const/4 v0, 0x1 - - :cond_6 - xor-int/2addr v0, v1 - - invoke-static {p2, v0}, Lcom/vk/extensions/ViewExtKt;->b(Landroid/view/View;Z)V - - .line 25 - iget-object p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->W:Landroid/widget/TextView; - - invoke-virtual {p2, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V - - return-void -.end method - -.method public final a(Ljava/lang/CharSequence;Z)V - .locals 1 - - .line 5 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V - - .line 6 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->N:Landroid/widget/TextView; - - if-eqz p2, :cond_0 - - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->getTitleColorHighlight()I - - move-result p2 - - goto :goto_0 - - :cond_0 - iget p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e:I - - :goto_0 - invoke-virtual {p1, p2}, Landroid/widget/TextView;->setTextColor(I)V - - return-void -.end method - -.method public final b()V - .locals 1 - - const/4 v0, 0x0 - - .line 1 - invoke-virtual {p0, v0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Ljava/lang/CharSequence;Lcom/vk/im/engine/models/typing/ComposingType;)V - - return-void -.end method - -.method public final b(Ljava/lang/CharSequence;Z)V - .locals 3 - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const/4 v1, 0x0 - - if-eqz p1, :cond_1 - - invoke-interface {p1}, Ljava/lang/CharSequence;->length()I - - move-result v2 - - if-nez v2, :cond_0 - - goto :goto_0 - - :cond_0 - const/4 v2, 0x0 - - goto :goto_1 - - :cond_1 - :goto_0 - const/4 v2, 0x1 - - :goto_1 - if-nez v2, :cond_2 - - goto :goto_2 - - :cond_2 - const/16 v1, 0x8 - - :goto_2 - invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V - - .line 3 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V - - .line 4 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c0:Landroid/widget/TextView; - - const-string v0, "context" - - invoke-virtual {p0}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context; - - move-result-object v1 - - invoke-static {v1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - if-eqz p2, :cond_3 - - sget v0, Lcom/vk/im/ui/c;->counter_secondary_text:I - - goto :goto_3 - - :cond_3 - sget v0, Lcom/vk/im/ui/c;->counter_primary_text:I - - :goto_3 - invoke-static {v1, v0}, Lcom/vk/core/util/ContextExtKt;->h(Landroid/content/Context;I)I - - move-result v0 - - invoke-virtual {p1, v0}, Landroid/widget/TextView;->setTextColor(I)V - - .line 5 - iget-object p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g:Lcom/vk/im/ui/drawables/RoundCornerColorDrawable; - - if-eqz p2, :cond_4 - - iget p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->B:I - - goto :goto_4 - - :cond_4 - iget p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h:I - - :goto_4 - invoke-virtual {p1, p2}, Lcom/vk/im/ui/drawables/RoundCornerColorDrawable;->a(I)V - - return-void -.end method - -.method public final c()V - .locals 1 - - .line 1 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->getDrOnlineMobile()Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/graphics/drawable/Drawable;)V - - return-void -.end method - -.method public final d()V - .locals 1 - - .line 1 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->getDrOnlineVkMe()Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/graphics/drawable/Drawable;)V - - return-void -.end method - -.method public final e()V - .locals 1 - - .line 1 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->getDrOnlineWeb()Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - invoke-direct {p0, v0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->a(Landroid/graphics/drawable/Drawable;)V - - return-void -.end method - -.method public final f()V - .locals 2 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - const/16 v1, 0x8 - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setVisibility(I)V - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v0}, Lcom/vk/im/ui/views/avatars/AvatarView;->e()V - - return-void -.end method - -.method public final g()V - .locals 9 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v1, 0x0 - - const-wide/16 v2, 0x0 - - const-wide/16 v4, 0x0 - - const/4 v6, 0x0 - - const/16 v7, 0xf - - const/4 v8, 0x0 - - invoke-static/range {v0 .. v8}, Lcom/vk/core/extensions/AnimationExtKt;->b(Landroid/view/View;FJJLjava/lang/Runnable;ILjava/lang/Object;)Landroid/view/ViewPropertyAnimator; - - return-void -.end method - -.method protected onDetachedFromWindow()V - .locals 4 - - .line 1 - invoke-super {p0}, Landroid/view/ViewGroup;->onDetachedFromWindow()V - - .line 2 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->L:Landroidx/appcompat/widget/AppCompatImageView; - - const/4 v1, 0x0 - - const/4 v2, 0x3 - - const/4 v3, 0x0 - - invoke-static {v0, v1, v1, v2, v3}, Lcom/vk/core/extensions/AnimationExtKt;->a(Landroid/view/View;FFILjava/lang/Object;)V - - return-void -.end method - -.method protected onLayout(ZIIII)V - .locals 0 - - .line 1 - iget-boolean p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - if-eqz p1, :cond_0 - - invoke-direct {p0, p2, p3, p4, p5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g(IIII)V - - goto :goto_0 - - .line 2 - :cond_0 - invoke-direct {p0, p2, p3, p4, p5}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h(IIII)V - - :goto_0 - return-void -.end method - -.method protected onMeasure(II)V - .locals 0 - - .line 1 - iget-boolean p2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->E:Z - - if-eqz p2, :cond_0 - - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->c(I)V - - goto :goto_0 - - .line 2 - :cond_0 - invoke-direct {p0, p1}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d(I)V - - :goto_0 - return-void -.end method - -.method public final setAvatar(Lcom/vk/im/engine/models/Profile;)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v0, p1}, Lcom/vk/im/ui/views/avatars/AvatarView;->a(Lcom/vk/im/engine/models/Profile;)V - - return-void -.end method - -.method public final setBombVisible(Z)V - .locals 2 - - if-eqz p1, :cond_0 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->ic_bomb_composite_24:I - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageResource(I)V - - .line 2 - :cond_0 - iput-boolean p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->h0:Z - - .line 3 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->u()V - - return-void -.end method - -.method public final setCasperIconColor(I)V - .locals 1 - .param p1 # I - .annotation build Landroidx/annotation/ColorInt; - .end annotation - .end param - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - invoke-static {v0, p1}, Lcom/vk/extensions/ViewExtKt;->a(Landroidx/appcompat/widget/AppCompatImageView;I)V - - return-void -.end method - -.method public final setCasperIconVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->Q:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method - -.method public final setErrorVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f0:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method - -.method public final setGiftVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->V:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method - -.method public final setHasStories(Z)V - .locals 5 - - .line 1 - iget-boolean v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->I:Z - - if-ne v0, p1, :cond_0 - - return-void - - .line 2 - :cond_0 - iput-boolean p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->I:Z - - const/4 v0, 0x0 - - if-eqz p1, :cond_1 - - .line 3 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - invoke-virtual {v1}, Lcom/vk/im/ui/views/avatars/StoryBorderView;->getBorderWidth()I - - move-result v1 - - .line 4 - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - iget v3, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->J:I - - mul-int/lit8 v4, v1, 0x2 - - sub-int/2addr v3, v4 - - invoke-virtual {v2, v3}, Lcom/vk/im/ui/views/avatars/AvatarView;->setViewSize(I)V - - .line 5 - iget-object v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v2, v1, v1, v1, v1}, Landroid/widget/ImageView;->setPadding(IIII)V - - goto :goto_0 - - .line 6 - :cond_1 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - iget v2, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->J:I - - invoke-virtual {v1, v2}, Lcom/vk/im/ui/views/avatars/AvatarView;->setViewSize(I)V - - .line 7 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->K:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v1, v0, v0, v0, v0}, Landroid/widget/ImageView;->setPadding(IIII)V - - .line 8 - :goto_0 - iget-object v1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - if-eqz p1, :cond_2 - - goto :goto_1 - - :cond_2 - const/16 v0, 0x8 - - :goto_1 - invoke-virtual {v1, v0}, Landroid/view/View;->setVisibility(I)V - - xor-int/lit8 v0, p1, 0x1 - - .line 9 - invoke-virtual {p0, v0}, Landroid/view/ViewGroup;->setClipChildren(Z)V - - xor-int/lit8 p1, p1, 0x1 - - .line 10 - invoke-virtual {p0, p1}, Landroid/view/ViewGroup;->setClipToPadding(Z)V - - return-void -.end method - -.method public final setMentionVisible(Z)V - .locals 2 - - if-eqz p1, :cond_0 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->b0:Landroidx/appcompat/widget/AppCompatImageView; - - sget v1, Lcom/vk/im/ui/f;->ic_mention_composite_24:I - - invoke-virtual {v0, v1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageResource(I)V - - .line 2 - :cond_0 - iput-boolean p1, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->g0:Z - - .line 3 - invoke-direct {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->u()V - - return-void -.end method - -.method public final setMutedVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->P:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method - -.method public final setOnStoryClickListener(Landroid/view/View$OnClickListener;)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->M:Lcom/vk/im/ui/views/avatars/StoryBorderView; - - invoke-static {v0, p1}, Lcom/vk/extensions/ViewExtKt;->b(Landroid/view/View;Landroid/view/View$OnClickListener;)V - - return-void -.end method - -.method public final setSender(Lcom/vk/im/engine/models/Profile;)V - .locals 2 - - if-nez p1, :cond_0 - - .line 1 - invoke-virtual {p0}, Lcom/vk/im/ui/views/dialogs/DialogItemView;->f()V - - return-void - - .line 2 - :cond_0 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - const/4 v1, 0x0 - - invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setVisibility(I)V - - .line 3 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->S:Lcom/vk/im/ui/views/avatars/AvatarView; - - invoke-virtual {v0, p1}, Lcom/vk/im/ui/views/avatars/AvatarView;->a(Lcom/vk/im/engine/models/Profile;)V - - return-void -.end method - -.method public final setSendingVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->e0:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method - -.method public final setTime(Ljava/lang/CharSequence;)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->R:Landroid/widget/TextView; - - invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V - - return-void -.end method - -.method public final setUnreadOutVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->d0:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method - -.method public final setVerifiedVisible(Z)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/im/ui/views/dialogs/DialogItemView;->O:Landroidx/appcompat/widget/AppCompatImageView; - - if-eqz p1, :cond_0 - - const/4 p1, 0x0 - - goto :goto_0 - - :cond_0 - const/16 p1, 0x8 - - :goto_0 - invoke-virtual {v0, p1}, Landroid/widget/ImageView;->setVisibility(I)V - - return-void -.end method diff --git a/smali/smali_classes3/com/vk/imageloader/ImageLoaderUtils.smali b/smali/smali_classes3/com/vk/imageloader/ImageLoaderUtils.smali index 9ad41f22e..3ee4628b9 100644 --- a/smali/smali_classes3/com/vk/imageloader/ImageLoaderUtils.smali +++ b/smali/smali_classes3/com/vk/imageloader/ImageLoaderUtils.smali @@ -147,7 +147,7 @@ div-float/2addr p0, v3 .line 26 - invoke-virtual {v2, p0, p0, p0, v5}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {v2, p0, p0, p0, v5}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V return-object v1 @@ -212,7 +212,7 @@ div-float/2addr v0, v3 .line 36 - invoke-virtual {v2, v0, v0, v0, v5}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {v2, v0, v0, v0, v5}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V .line 37 invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V diff --git a/smali/smali_classes3/com/vk/libvideo/ui/VideoBottomPanelView.smali b/smali/smali_classes3/com/vk/libvideo/ui/VideoBottomPanelView.smali index 9f1bf8252..1cf2336eb 100644 --- a/smali/smali_classes3/com/vk/libvideo/ui/VideoBottomPanelView.smali +++ b/smali/smali_classes3/com/vk/libvideo/ui/VideoBottomPanelView.smali @@ -106,6 +106,8 @@ invoke-virtual {p2, p3, p0, v0}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View; + invoke-static/range {p0 .. p0}, Lru/vtosters/lite/hooks/PostViewHook;->injectVideoView(Landroid/widget/RelativeLayout;)V + .line 5 sget p2, Lcom/vk/libvideo/g;->subtitle:I diff --git a/smali/smali_classes3/com/vk/music/m/i.smali b/smali/smali_classes3/com/vk/music/m/i.smali index c17da14b9..d449b2f9a 100644 --- a/smali/smali_classes3/com/vk/music/m/i.smali +++ b/smali/smali_classes3/com/vk/music/m/i.smali @@ -698,7 +698,7 @@ .field public static final music_promo_no_more_music_title:I = 0x7f120821 -.field public static final music_promo_no_more_music_сontimue_using_free_plan:I = 0x7f120822 +.field public static final music_promo_no_more_music_continue_using_free_plan:I = 0x7f120822 .field public static final music_promo_no_more_option_1:I = 0x7f120823 diff --git a/smali/smali_classes3/com/vk/navigation/NavigationDelegateBottom.smali b/smali/smali_classes3/com/vk/navigation/NavigationDelegateBottom.smali index b11ebf359..8eba23186 100644 --- a/smali/smali_classes3/com/vk/navigation/NavigationDelegateBottom.smali +++ b/smali/smali_classes3/com/vk/navigation/NavigationDelegateBottom.smali @@ -3925,12 +3925,6 @@ .method public a(Lcom/vk/core/fragments/FragmentImpl;)Z .locals 1 - invoke-static {p1}, Lru/vtosters/lite/hooks/DockBarInjector;->isDockOpenAllowed(Lcom/vk/core/fragments/FragmentImpl;)Z - - move-result p1 - - return p1 - .line 54 iget-object v0, p0, Lcom/vk/navigation/NavigationDelegateBottom;->B:Lcom/vk/core/fragments/FragmentNavigationController; diff --git a/smali/smali_classes3/com/vk/newsfeed/FrescoImageView.smali b/smali/smali_classes3/com/vk/newsfeed/FrescoImageView.smali index a4f0232b8..63334cfda 100644 --- a/smali/smali_classes3/com/vk/newsfeed/FrescoImageView.smali +++ b/smali/smali_classes3/com/vk/newsfeed/FrescoImageView.smali @@ -312,7 +312,7 @@ move-object v4, v0 - invoke-direct/range {v4 .. v10}, Lcom/vk/im/ui/views/Corners;->(IIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-direct/range {v4 .. v9}, Lcom/vk/im/ui/views/Corners;->(IIIII)V iput-object v0, p0, Lcom/vk/newsfeed/FrescoImageView;->P:Lcom/vk/im/ui/views/Corners; diff --git a/smali/smali_classes3/com/vk/newsfeed/holders/BaseFooterHolder.smali b/smali/smali_classes3/com/vk/newsfeed/holders/BaseFooterHolder.smali index a240eca23..60be23bd1 100644 --- a/smali/smali_classes3/com/vk/newsfeed/holders/BaseFooterHolder.smali +++ b/smali/smali_classes3/com/vk/newsfeed/holders/BaseFooterHolder.smali @@ -62,6 +62,8 @@ .line 1 invoke-direct {p0, p1, p2}, Lcom/vk/newsfeed/holders/BaseNewsEntryHolder;->(ILandroid/view/ViewGroup;)V + invoke-static/range {p0 .. p0}, Lru/vtosters/lite/hooks/PostViewHook;->injectBaseFooterHolder(Lcom/vk/newsfeed/holders/BaseFooterHolder;)V + .line 2 iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View; diff --git a/smali/smali_classes3/com/vk/newsfeed/posting/viewpresenter/bottom/PosterPreviewAdapter$e$a.smali b/smali/smali_classes3/com/vk/newsfeed/posting/viewpresenter/bottom/PosterPreviewAdapter$e$a.smali index b656888f7..f47efb65c 100644 --- a/smali/smali_classes3/com/vk/newsfeed/posting/viewpresenter/bottom/PosterPreviewAdapter$e$a.smali +++ b/smali/smali_classes3/com/vk/newsfeed/posting/viewpresenter/bottom/PosterPreviewAdapter$e$a.smali @@ -118,7 +118,7 @@ div-float/2addr v7, v5 - invoke-virtual {v1, v4, v6, v7, v2}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {v1, v4, v6, v7, v2}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V .line 11 new-instance v4, Landroid/graphics/PorterDuffXfermode; diff --git a/smali/smali_classes4/com/vk/profile/ui/community/CommunityBorderedImageView.smali b/smali/smali_classes4/com/vk/profile/ui/community/CommunityBorderedImageView.smali deleted file mode 100644 index 4d56ce3f0..000000000 --- a/smali/smali_classes4/com/vk/profile/ui/community/CommunityBorderedImageView.smali +++ /dev/null @@ -1,356 +0,0 @@ -.class public final Lcom/vk/profile/ui/community/CommunityBorderedImageView; -.super Lcom/vk/stories/view/BorderedCircleImageView; -.source "CommunityBorderedImageView.kt" - -# interfaces -.implements Lcom/vk/core/ui/themes/Themable; - - -# instance fields -.field private f0:Z - -.field private g0:I - -.field private h0:I - -.field private i0:Landroid/graphics/PorterDuffColorFilter; - -.field private j0:Landroid/graphics/PorterDuffColorFilter; - -.field private k0:I - -.field private l0:I - - -# direct methods -.method public constructor (Landroid/content/Context;)V - .locals 6 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x6 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - invoke-direct/range {v0 .. v5}, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V - .locals 6 - - const/4 v3, 0x0 - - const/4 v4, 0x4 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - move-object v2, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V - .locals 0 - - .line 2 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/stories/view/BorderedCircleImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - const p2, 0x7f040022 - - .line 3 - invoke-static {p2}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I - - move-result p2 - - iput p2, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->g0:I - - const p2, 0x7f0600e2 - - .line 4 - invoke-static {p1, p2}, Lcom/vk/core/util/ContextExtKt;->a(Landroid/content/Context;I)I - - move-result p1 - - iput p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->h0:I - - .line 5 - new-instance p1, Landroid/graphics/PorterDuffColorFilter; - - iget p2, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->g0:I - - sget-object p3, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode; - - invoke-direct {p1, p2, p3}, Landroid/graphics/PorterDuffColorFilter;->(ILandroid/graphics/PorterDuff$Mode;)V - - iput-object p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->i0:Landroid/graphics/PorterDuffColorFilter; - - .line 6 - new-instance p1, Landroid/graphics/PorterDuffColorFilter; - - iget p2, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->h0:I - - sget-object p3, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode; - - invoke-direct {p1, p2, p3}, Landroid/graphics/PorterDuffColorFilter;->(ILandroid/graphics/PorterDuff$Mode;)V - - iput-object p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->j0:Landroid/graphics/PorterDuffColorFilter; - - return-void -.end method - -.method public synthetic constructor (Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 0 - - and-int/lit8 p5, p4, 0x2 - - if-eqz p5, :cond_0 - - const/4 p2, 0x0 - - :cond_0 - and-int/lit8 p4, p4, 0x4 - - if-eqz p4, :cond_1 - - const/4 p3, 0x0 - - .line 1 - :cond_1 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - return-void -.end method - - -# virtual methods -.method public final c(II)V - .locals 0 - - .line 1 - iput p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->k0:I - - .line 2 - iput p2, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->l0:I - - .line 3 - invoke-virtual {p0}, Landroid/widget/ImageView;->getResources()Landroid/content/res/Resources; - - move-result-object p1 - - iget p2, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->k0:I - - invoke-static {p1, p2}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; - - move-result-object p1 - - iput-object p1, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - return-void -.end method - -.method public final getPrimaryColor()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->g0:I - - return v0 -.end method - -.method public final getWasViewedColor()I - .locals 1 - - .line 1 - iget v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->h0:I - - return v0 -.end method - -.method public final o()V - .locals 1 - - const/4 v0, 0x0 - - .line 1 - iput-boolean v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->f0:Z - - .line 2 - invoke-virtual {p0}, Lcom/vk/stories/view/BorderedCircleImageView;->l()V - - return-void -.end method - -.method protected onDraw(Landroid/graphics/Canvas;)V - .locals 1 - - .line 1 - invoke-super {p0, p1}, Lcom/vk/stories/view/ClippedImageView;->onDraw(Landroid/graphics/Canvas;)V - - .line 2 - iget-boolean v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->f0:Z - - if-eqz v0, :cond_0 - - invoke-virtual {p0, p1}, Lcom/vk/stories/view/BorderedCircleImageView;->a(Landroid/graphics/Canvas;)V - - :cond_0 - return-void -.end method - -.method public final setPrimaryColor(I)V - .locals 2 - - .line 1 - iput p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->g0:I - - .line 2 - new-instance v0, Landroid/graphics/PorterDuffColorFilter; - - sget-object v1, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode; - - invoke-direct {v0, p1, v1}, Landroid/graphics/PorterDuffColorFilter;->(ILandroid/graphics/PorterDuff$Mode;)V - - iput-object v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->i0:Landroid/graphics/PorterDuffColorFilter; - - return-void -.end method - -.method public final setStoryContainer(Lcom/vk/dto/stories/model/StoriesContainer;)V - .locals 1 - - .line 1 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->L1()Z - - move-result v0 - - if-eqz v0, :cond_1 - - const/4 v0, 0x1 - - .line 2 - iput-boolean v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->f0:Z - - .line 3 - invoke-virtual {p0}, Lcom/vk/stories/view/BorderedCircleImageView;->m()V - - .line 4 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->K1()Z - - move-result p1 - - if-eqz p1, :cond_0 - - .line 5 - invoke-virtual {p0}, Landroid/widget/ImageView;->getResources()Landroid/content/res/Resources; - - move-result-object p1 - - iget v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->k0:I - - invoke-static {p1, v0}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; - - move-result-object p1 - - iput-object p1, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - .line 6 - iget-object p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->i0:Landroid/graphics/PorterDuffColorFilter; - - invoke-virtual {p0, p1}, Lcom/vk/stories/view/BorderedCircleImageView;->setBorderColorFilter(Landroid/graphics/ColorFilter;)V - - .line 7 - invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I - - move-result p1 - - invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I - - move-result v0 - - invoke-virtual {p0, p1, v0}, Lcom/vk/stories/view/BorderedCircleImageView;->b(II)V - - .line 8 - invoke-virtual {p0}, Landroid/widget/ImageView;->invalidate()V - - goto :goto_0 - - .line 9 - :cond_0 - invoke-virtual {p0}, Landroid/widget/ImageView;->getResources()Landroid/content/res/Resources; - - move-result-object p1 - - iget v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->l0:I - - invoke-static {p1, v0}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; - - move-result-object p1 - - iput-object p1, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - .line 10 - iget-object p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->j0:Landroid/graphics/PorterDuffColorFilter; - - invoke-virtual {p0, p1}, Lcom/vk/stories/view/BorderedCircleImageView;->setBorderColorFilter(Landroid/graphics/ColorFilter;)V - - .line 11 - invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I - - move-result p1 - - invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I - - move-result v0 - - invoke-virtual {p0, p1, v0}, Lcom/vk/stories/view/BorderedCircleImageView;->b(II)V - - .line 12 - invoke-virtual {p0}, Landroid/widget/ImageView;->invalidate()V - - goto :goto_0 - - .line 13 - :cond_1 - invoke-virtual {p0}, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->o()V - - :goto_0 - return-void -.end method - -.method public final setWasViewedColor(I)V - .locals 2 - - .line 1 - iput p1, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->h0:I - - .line 2 - new-instance v0, Landroid/graphics/PorterDuffColorFilter; - - sget-object v1, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode; - - invoke-direct {v0, p1, v1}, Landroid/graphics/PorterDuffColorFilter;->(ILandroid/graphics/PorterDuff$Mode;)V - - iput-object v0, p0, Lcom/vk/profile/ui/community/CommunityBorderedImageView;->j0:Landroid/graphics/PorterDuffColorFilter; - - return-void -.end method - -.method public v()V - .locals 0 - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment$c.smali b/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment$c.smali index 8a9047afd..39a7c4b94 100644 --- a/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment$c.smali +++ b/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment$c.smali @@ -56,7 +56,7 @@ const-string v4, "static.vk.com" - invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 diff --git a/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment.smali b/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment.smali index e3df62f13..471cde468 100644 --- a/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment.smali +++ b/smali/smali_classes4/com/vk/profile/ui/community/CommunityChatsFragment.smali @@ -84,7 +84,7 @@ const-string v4, "static.vk.com" - invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 diff --git a/smali/smali_classes4/com/vk/sharing/view/TargetImageView$a.smali b/smali/smali_classes4/com/vk/sharing/view/TargetImageView$a.smali deleted file mode 100644 index 8f6dad370..000000000 --- a/smali/smali_classes4/com/vk/sharing/view/TargetImageView$a.smali +++ /dev/null @@ -1,34 +0,0 @@ -.class public final Lcom/vk/sharing/view/TargetImageView$a; -.super Ljava/lang/Object; -.source "TargetImageView.kt" - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/vk/sharing/view/TargetImageView; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x19 - name = "a" -.end annotation - - -# direct methods -.method private constructor ()V - .locals 0 - - .line 1 - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - -.method public synthetic constructor (Lkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 0 - - .line 2 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView$a;->()V - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/sharing/view/TargetImageView$abbreviationDrawable$2.smali b/smali/smali_classes4/com/vk/sharing/view/TargetImageView$abbreviationDrawable$2.smali deleted file mode 100644 index 735d32898..000000000 --- a/smali/smali_classes4/com/vk/sharing/view/TargetImageView$abbreviationDrawable$2.smali +++ /dev/null @@ -1,74 +0,0 @@ -.class final Lcom/vk/sharing/view/TargetImageView$abbreviationDrawable$2; -.super Lkotlin/jvm/internal/Lambda; -.source "TargetImageView.kt" - -# interfaces -.implements Lkotlin/jvm/b/Functions; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/sharing/view/TargetImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x18 - name = null -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Lkotlin/jvm/internal/Lambda;", - "Lkotlin/jvm/b/Functions<", - "Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;", - ">;" - } -.end annotation - - -# instance fields -.field final synthetic $context:Landroid/content/Context; - - -# direct methods -.method constructor (Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lcom/vk/sharing/view/TargetImageView$abbreviationDrawable$2;->$context:Landroid/content/Context; - - const/4 p1, 0x0 - - invoke-direct {p0, p1}, Lkotlin/jvm/internal/Lambda;->(I)V - - return-void -.end method - - -# virtual methods -.method public final invoke()Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - .locals 4 - - .line 2 - new-instance v0, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - - iget-object v1, p0, Lcom/vk/sharing/view/TargetImageView$abbreviationDrawable$2;->$context:Landroid/content/Context; - - const/4 v2, 0x0 - - const/4 v3, 0x2 - - invoke-direct {v0, v1, v2, v3, v2}, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;->(Landroid/content/Context;Landroid/graphics/Typeface;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-object v0 -.end method - -.method public bridge synthetic invoke()Ljava/lang/Object; - .locals 1 - - .line 1 - invoke-virtual {p0}, Lcom/vk/sharing/view/TargetImageView$abbreviationDrawable$2;->invoke()Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - - move-result-object v0 - - return-object v0 -.end method diff --git a/smali/smali_classes4/com/vk/sharing/view/TargetImageView.smali b/smali/smali_classes4/com/vk/sharing/view/TargetImageView.smali deleted file mode 100644 index df0596a57..000000000 --- a/smali/smali_classes4/com/vk/sharing/view/TargetImageView.smali +++ /dev/null @@ -1,1249 +0,0 @@ -.class public final Lcom/vk/sharing/view/TargetImageView; -.super Lcom/vk/imageloader/view/VKMultiImageView; -.source "TargetImageView.kt" - - -# annotations -.annotation build Landroidx/annotation/UiThread; -.end annotation - -.annotation system Ldalvik/annotation/MemberClasses; - value = { - Lcom/vk/sharing/view/TargetImageView$a; - } -.end annotation - - -# static fields -.field static final synthetic H:[Lkotlin/u/KProperty5; - -.field private static final I:I - - -# instance fields -.field private final B:I - -.field private final C:I - -.field private final D:Landroid/graphics/drawable/Drawable; - -.field private final E:Lkotlin/Lazy2; - -.field private final F:[Ljava/lang/String; - -.field private G:I - -.field private final d:Landroid/graphics/RectF; - -.field private final e:Landroid/graphics/Paint; - -.field private f:Landroid/graphics/Canvas; - -.field private final g:Landroid/graphics/RectF; - -.field private final h:Landroid/graphics/Paint; - - -# direct methods -.method static constructor ()V - .locals 5 - - const/4 v0, 0x1 - - new-array v0, v0, [Lkotlin/u/KProperty5; - - new-instance v1, Lkotlin/jvm/internal/PropertyReference1Impl; - - const-class v2, Lcom/vk/sharing/view/TargetImageView; - - invoke-static {v2}, Lkotlin/jvm/internal/Reflection;->a(Ljava/lang/Class;)Lkotlin/u/KClass; - - move-result-object v2 - - const-string v3, "abbreviationDrawable" - - const-string v4, "getAbbreviationDrawable()Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;" - - invoke-direct {v1, v2, v3, v4}, Lkotlin/jvm/internal/PropertyReference1Impl;->(Lkotlin/u/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V - - invoke-static {v1}, Lkotlin/jvm/internal/Reflection;->a(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/u/KProperty2; - - const/4 v2, 0x0 - - aput-object v1, v0, v2 - - sput-object v0, Lcom/vk/sharing/view/TargetImageView;->H:[Lkotlin/u/KProperty5; - - new-instance v0, Lcom/vk/sharing/view/TargetImageView$a; - - const/4 v1, 0x0 - - invoke-direct {v0, v1}, Lcom/vk/sharing/view/TargetImageView$a;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V - - const/4 v0, 0x2 - - .line 1 - invoke-static {v0}, Lcom/vk/core/util/Screen;->a(I)I - - move-result v0 - - sput v0, Lcom/vk/sharing/view/TargetImageView;->I:I - - return-void -.end method - -.method public constructor (Landroid/content/Context;)V - .locals 6 - - const/4 v2, 0x0 - - const/4 v3, 0x0 - - const/4 v4, 0x6 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - invoke-direct/range {v0 .. v5}, Lcom/vk/sharing/view/TargetImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V - .locals 6 - - const/4 v3, 0x0 - - const/4 v4, 0x4 - - const/4 v5, 0x0 - - move-object v0, p0 - - move-object v1, p1 - - move-object v2, p2 - - invoke-direct/range {v0 .. v5}, Lcom/vk/sharing/view/TargetImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V - .locals 2 - - .line 2 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/imageloader/view/VKMultiImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - .line 3 - new-instance p3, Landroid/graphics/RectF; - - invoke-direct {p3}, Landroid/graphics/RectF;->()V - - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->d:Landroid/graphics/RectF; - - .line 4 - new-instance p3, Landroid/graphics/Paint; - - invoke-direct {p3}, Landroid/graphics/Paint;->()V - - const/4 v0, 0x1 - - .line 5 - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V - - .line 6 - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setDither(Z)V - - .line 7 - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setFilterBitmap(Z)V - - .line 8 - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->e:Landroid/graphics/Paint; - - .line 9 - new-instance p3, Landroid/graphics/RectF; - - invoke-direct {p3}, Landroid/graphics/RectF;->()V - - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->g:Landroid/graphics/RectF; - - .line 10 - new-instance p3, Landroid/graphics/Paint; - - invoke-direct {p3}, Landroid/graphics/Paint;->()V - - .line 11 - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setAntiAlias(Z)V - - .line 12 - sget v0, Lcom/vk/sharing/view/TargetImageView;->I:I - - int-to-float v0, v0 - - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setStrokeWidth(F)V - - .line 13 - sget-object v0, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; - - invoke-virtual {p3, v0}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V - - .line 14 - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->h:Landroid/graphics/Paint; - - const p3, 0x7f040022 - - .line 15 - invoke-static {p3}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I - - move-result p3 - - iput p3, p0, Lcom/vk/sharing/view/TargetImageView;->B:I - - .line 16 - iget p3, p0, Lcom/vk/sharing/view/TargetImageView;->B:I - - iput p3, p0, Lcom/vk/sharing/view/TargetImageView;->C:I - - const p3, 0x7f0803c2 - - .line 17 - invoke-static {p1, p3}, Lcom/vk/core/util/ContextExtKt;->c(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object p3 - - if-eqz p3, :cond_2 - - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->D:Landroid/graphics/drawable/Drawable; - - .line 18 - new-instance p3, Lcom/vk/sharing/view/TargetImageView$abbreviationDrawable$2; - - invoke-direct {p3, p1}, Lcom/vk/sharing/view/TargetImageView$abbreviationDrawable$2;->(Landroid/content/Context;)V - - invoke-static {p3}, Lkotlin/g;->a(Lkotlin/jvm/b/Functions;)Lkotlin/Lazy2; - - move-result-object p3 - - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->E:Lkotlin/Lazy2; - - const/4 p3, 0x4 - - new-array p3, p3, [Ljava/lang/String; - - .line 19 - iput-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->F:[Ljava/lang/String; - - .line 20 - sget p3, Lcom/vk/sharing/view/TargetImageView;->I:I - - mul-int/lit8 p3, p3, 0x2 - - .line 21 - invoke-virtual {p0, p3, p3, p3, p3}, Landroid/view/View;->setPadding(IIII)V - - const/4 p3, 0x0 - - if-eqz p2, :cond_0 - - .line 22 - sget-object v0, Lcom/vtosters/lite/a0;->TargetImageView:[I - - invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; - - move-result-object p2 - - .line 23 - invoke-virtual {p2, p3, p3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z - - move-result v0 - - invoke-virtual {p0, v0}, Landroid/view/View;->setSelected(Z)V - - .line 24 - invoke-virtual {p2}, Landroid/content/res/TypedArray;->recycle()V - - :cond_0 - const p2, 0x7f080a5a - - .line 25 - invoke-static {p1, p2}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object p1 - - const/4 p2, 0x3 - - :goto_0 - if-gt p3, p2, :cond_1 - - .line 26 - invoke-virtual {p0}, Lcom/vk/imageloader/view/VKMultiImageView;->a()V - - .line 27 - iget-object v0, p0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v0, p3}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v0 - - const-string v1, "draweeHolder.get(i)" - - invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v0}, Lcom/facebook/drawee/view/DraweeHolder;->b()Lcom/facebook/u/e/DraweeHierarchy; - - move-result-object v0 - - check-cast v0, Lcom/facebook/drawee/generic/GenericDraweeHierarchy; - - invoke-virtual {v0, p1}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->e(Landroid/graphics/drawable/Drawable;)V - - add-int/lit8 p3, p3, 0x1 - - goto :goto_0 - - .line 28 - :cond_1 - sget-object p1, Lcom/facebook/drawee/drawable/ScalingUtils$b;->o:Lcom/facebook/drawee/drawable/ScalingUtils$b; - - invoke-virtual {p0, p1}, Lcom/vk/imageloader/view/VKMultiImageView;->setScaleType(Lcom/facebook/drawee/drawable/ScalingUtils$b;)V - - return-void - - .line 29 - :cond_2 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 p1, 0x0 - - throw p1 -.end method - -.method public synthetic constructor (Landroid/content/Context;Landroid/util/AttributeSet;IILkotlin/jvm/internal/DefaultConstructorMarker;)V - .locals 0 - - and-int/lit8 p5, p4, 0x2 - - if-eqz p5, :cond_0 - - const/4 p2, 0x0 - - :cond_0 - and-int/lit8 p4, p4, 0x4 - - if-eqz p4, :cond_1 - - const/4 p3, 0x0 - - .line 1 - :cond_1 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/sharing/view/TargetImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - return-void -.end method - -.method private final e()V - .locals 3 - - .line 1 - iget v0, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - const/4 v1, 0x0 - - :goto_0 - if-ge v1, v0, :cond_0 - - .line 2 - iget-object v2, p0, Lcom/vk/sharing/view/TargetImageView;->F:[Ljava/lang/String; - - aget-object v2, v2, v1 - - invoke-virtual {p0, v1, v2}, Lcom/vk/imageloader/view/VKMultiImageView;->a(ILjava/lang/String;)V - - add-int/lit8 v1, v1, 0x1 - - goto :goto_0 - - :cond_0 - return-void -.end method - -.method private final f()V - .locals 16 - - move-object/from16 v0, p0 - - .line 1 - invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getPaddingLeft()I - - move-result v1 - - .line 2 - invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getPaddingTop()I - - move-result v2 - - .line 3 - invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getWidth()I - - move-result v3 - - sub-int/2addr v3, v1 - - invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getPaddingRight()I - - move-result v4 - - sub-int/2addr v3, v4 - - .line 4 - invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getHeight()I - - move-result v4 - - sub-int/2addr v4, v2 - - invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getPaddingBottom()I - - move-result v5 - - sub-int/2addr v4, v5 - - .line 5 - div-int/lit8 v5, v3, 0x2 - - .line 6 - div-int/lit8 v6, v4, 0x2 - - .line 7 - iget v7, v0, Lcom/vk/sharing/view/TargetImageView;->G:I - - const-string v8, "draweeHolder.get(0)" - - const/4 v9, 0x1 - - const/4 v10, 0x0 - - if-eq v7, v9, :cond_c - - const-string v12, "draweeHolder.get(1)" - - const/4 v13, 0x2 - - if-eq v7, v13, :cond_9 - - const-string v14, "draweeHolder.get(2)" - - const/4 v15, 0x3 - - if-eq v7, v15, :cond_5 - - const/4 v11, 0x4 - - if-eq v7, v11, :cond_0 - - goto/16 :goto_0 - - .line 8 - :cond_0 - iget-object v7, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v7, v10}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v7 - - invoke-static {v7, v8}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v7}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v7 - - if-eqz v7, :cond_4 - - add-int/2addr v5, v1 - - add-int/lit8 v8, v5, 0x0 - - add-int/2addr v6, v2 - - add-int/lit8 v11, v6, 0x0 - - invoke-virtual {v7, v1, v2, v8, v11}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 9 - iget-object v7, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v7, v9}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v7 - - invoke-static {v7, v12}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v7}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v7 - - if-eqz v7, :cond_3 - - add-int/2addr v6, v10 - - add-int/2addr v4, v2 - - invoke-virtual {v7, v1, v6, v8, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 10 - iget-object v7, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v7, v13}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v7 - - invoke-static {v7, v14}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v7}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v7 - - if-eqz v7, :cond_2 - - add-int/2addr v5, v10 - - add-int/2addr v1, v3 - - invoke-virtual {v7, v5, v2, v1, v11}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 11 - iget-object v2, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v2, v15}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v2 - - const-string v3, "draweeHolder.get(3)" - - invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v2}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v2 - - if-eqz v2, :cond_1 - - invoke-virtual {v2, v5, v6, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - goto/16 :goto_0 - - :cond_1 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v1, 0x0 - - throw v1 - - :cond_2 - const/4 v1, 0x0 - - .line 12 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - throw v1 - - :cond_3 - const/4 v1, 0x0 - - .line 13 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - throw v1 - - :cond_4 - const/4 v1, 0x0 - - .line 14 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - throw v1 - - .line 15 - :cond_5 - iget-object v7, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v7, v10}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v7 - - invoke-static {v7, v8}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v7}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v7 - - if-eqz v7, :cond_8 - - add-int/2addr v5, v1 - - add-int/lit8 v8, v5, 0x0 - - add-int/2addr v4, v2 - - invoke-virtual {v7, v1, v2, v8, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 16 - iget-object v7, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v7, v9}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v7 - - invoke-static {v7, v12}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v7}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v7 - - if-eqz v7, :cond_7 - - add-int/2addr v5, v10 - - add-int/2addr v1, v3 - - add-int/2addr v6, v2 - - add-int/lit8 v3, v6, 0x0 - - invoke-virtual {v7, v5, v2, v1, v3}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 17 - iget-object v2, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v2, v13}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v2 - - invoke-static {v2, v14}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v2}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v2 - - if-eqz v2, :cond_6 - - add-int/2addr v6, v10 - - invoke-virtual {v2, v5, v6, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - goto :goto_0 - - :cond_6 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v1, 0x0 - - throw v1 - - :cond_7 - const/4 v1, 0x0 - - .line 18 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - throw v1 - - :cond_8 - const/4 v1, 0x0 - - .line 19 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - throw v1 - - .line 20 - :cond_9 - iget-object v6, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v6, v10}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v6 - - invoke-static {v6, v8}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v6}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v6 - - if-eqz v6, :cond_b - - add-int/2addr v5, v1 - - add-int/lit8 v7, v5, 0x0 - - add-int/2addr v4, v2 - - invoke-virtual {v6, v1, v2, v7, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 21 - iget-object v6, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v6, v9}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v6 - - invoke-static {v6, v12}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v6}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v6 - - if-eqz v6, :cond_a - - add-int/2addr v5, v10 - - add-int/2addr v1, v3 - - invoke-virtual {v6, v5, v2, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - goto :goto_0 - - :cond_a - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v1, 0x0 - - throw v1 - - :cond_b - const/4 v1, 0x0 - - .line 22 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - throw v1 - - .line 23 - :cond_c - iget-object v5, v0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v5, v10}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v5 - - invoke-static {v5, v8}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v5}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v5 - - if-eqz v5, :cond_d - - add-int/2addr v3, v1 - - add-int/2addr v4, v2 - - invoke-virtual {v5, v1, v2, v3, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - :goto_0 - return-void - - :cond_d - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 v1, 0x0 - - throw v1 -.end method - -.method private final g()V - .locals 1 - - .line 1 - invoke-virtual {p0}, Landroid/view/View;->getWidth()I - - move-result v0 - - if-eqz v0, :cond_0 - - invoke-virtual {p0}, Landroid/view/View;->getHeight()I - - move-result v0 - - if-eqz v0, :cond_0 - - .line 2 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->f()V - - :cond_0 - return-void -.end method - -.method private final getAbbreviationDrawable()Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - .locals 3 - - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->E:Lkotlin/Lazy2; - - sget-object v1, Lcom/vk/sharing/view/TargetImageView;->H:[Lkotlin/u/KProperty5; - - const/4 v2, 0x0 - - aget-object v1, v1, v2 - - invoke-interface {v0}, Lkotlin/Lazy2;->getValue()Ljava/lang/Object; - - move-result-object v0 - - check-cast v0, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - - return-object v0 -.end method - - -# virtual methods -.method public final a(Ljava/lang/String;)V - .locals 5 - - .line 1 - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->F:[Ljava/lang/String; - - const/4 v1, 0x0 - - invoke-static {v0, v1}, Ljava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V - - const/4 v0, 0x1 - - if-nez p1, :cond_0 - - .line 2 - invoke-virtual {p0}, Lcom/vk/imageloader/view/VKMultiImageView;->b()V - - .line 3 - iput v0, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - .line 4 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->g()V - - .line 5 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->e()V - - return-void - - .line 6 - :cond_0 - invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object v1 - - const-string v2, "uri" - - .line 7 - invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; - - move-result-object v2 - - const-string v3, "vkchatphoto" - - invoke-static {v3, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z - - move-result v2 - - const/4 v3, 0x0 - - if-eqz v2, :cond_2 - - .line 8 - iput v3, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - .line 9 - :goto_0 - new-instance p1, Ljava/lang/StringBuilder; - - invoke-direct {p1}, Ljava/lang/StringBuilder;->()V - - const-string v0, "photo" - - invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - iget v0, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object p1 - - invoke-virtual {v1, p1}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String; - - move-result-object p1 - - if-eqz p1, :cond_1 - - .line 10 - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->F:[Ljava/lang/String; - - iget v2, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - add-int/lit8 v3, v2, 0x1 - - iput v3, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - aput-object p1, v0, v2 - - goto :goto_0 - - .line 11 - :cond_1 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->g()V - - .line 12 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->e()V - - return-void - - .line 13 - :cond_2 - invoke-virtual {v1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; - - move-result-object v2 - - const-string v4, "vkchatplaceholder" - - invoke-static {v4, v2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z - - move-result v2 - - if-eqz v2, :cond_5 - - .line 14 - iput v0, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - .line 15 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->g()V - - .line 16 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->getAbbreviationDrawable()Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - - move-result-object p1 - - const-string v0, "dialog_id" - - .line 17 - invoke-virtual {v1, v0}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String; - - move-result-object v0 - - if-eqz v0, :cond_3 - - invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I - - move-result v0 - - goto :goto_1 - - :cond_3 - const/4 v0, 0x0 - - :goto_1 - const-string v2, "title" - - .line 18 - invoke-virtual {v1, v2}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String; - - move-result-object v1 - - if-eqz v1, :cond_4 - - goto :goto_2 - - :cond_4 - const-string v1, "" - - .line 19 - :goto_2 - invoke-virtual {p1, v0, v1}, Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable;->a(ILjava/lang/String;)V - - .line 20 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->getAbbreviationDrawable()Lcom/vk/im/ui/views/avatars/AbbreviationAvatarDrawable; - - move-result-object p1 - - invoke-virtual {p0, v3, p1}, Lcom/vk/imageloader/view/VKMultiImageView;->a(ILandroid/graphics/drawable/Drawable;)V - - return-void - - .line 21 - :cond_5 - iget-object v1, p0, Lcom/vk/sharing/view/TargetImageView;->F:[Ljava/lang/String; - - aput-object p1, v1, v3 - - .line 22 - iput v0, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - .line 23 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->g()V - - .line 24 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->e()V - - return-void -.end method - -.method protected onDraw(Landroid/graphics/Canvas;)V - .locals 4 - - .line 1 - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->f:Landroid/graphics/Canvas; - - const/4 v1, 0x0 - - if-eqz v0, :cond_0 - - sget-object v2, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode; - - invoke-virtual {v0, v1, v2}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V - - .line 2 - :cond_0 - iget v0, p0, Lcom/vk/sharing/view/TargetImageView;->G:I - - :goto_0 - if-ge v1, v0, :cond_3 - - .line 3 - iget-object v2, p0, Lcom/vk/imageloader/view/VKMultiImageView;->a:Lcom/facebook/drawee/view/MultiDraweeHolder; - - invoke-virtual {v2, v1}, Lcom/facebook/drawee/view/MultiDraweeHolder;->a(I)Lcom/facebook/drawee/view/DraweeHolder; - - move-result-object v2 - - const-string v3, "draweeHolder.get(i)" - - invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V - - invoke-virtual {v2}, Lcom/facebook/drawee/view/DraweeHolder;->d()Landroid/graphics/drawable/Drawable; - - move-result-object v2 - - if-eqz v2, :cond_2 - - .line 4 - iget-object v3, p0, Lcom/vk/sharing/view/TargetImageView;->f:Landroid/graphics/Canvas; - - if-eqz v3, :cond_1 - - invoke-virtual {v2, v3}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V - - goto :goto_1 - - :cond_1 - invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->a()V - - const/4 p1, 0x0 - - throw p1 - - :cond_2 - :goto_1 - add-int/lit8 v1, v1, 0x1 - - goto :goto_0 - - .line 5 - :cond_3 - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->d:Landroid/graphics/RectF; - - iget-object v1, p0, Lcom/vk/sharing/view/TargetImageView;->e:Landroid/graphics/Paint; - - invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V - - .line 6 - invoke-virtual {p0}, Landroid/view/View;->isSelected()Z - - move-result v0 - - if-eqz v0, :cond_4 - - .line 7 - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->g:Landroid/graphics/RectF; - - invoke-virtual {v0}, Landroid/graphics/RectF;->centerX()F - - move-result v0 - - iget-object v1, p0, Lcom/vk/sharing/view/TargetImageView;->g:Landroid/graphics/RectF; - - invoke-virtual {v1}, Landroid/graphics/RectF;->centerY()F - - move-result v1 - - iget-object v2, p0, Lcom/vk/sharing/view/TargetImageView;->g:Landroid/graphics/RectF; - - invoke-virtual {v2}, Landroid/graphics/RectF;->width()F - - move-result v2 - - const/4 v3, 0x2 - - int-to-float v3, v3 - - div-float/2addr v2, v3 - - iget-object v3, p0, Lcom/vk/sharing/view/TargetImageView;->h:Landroid/graphics/Paint; - - invoke-virtual {p1, v0, v1, v2, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V - - .line 8 - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->D:Landroid/graphics/drawable/Drawable; - - invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V - - :cond_4 - return-void -.end method - -.method protected onSizeChanged(IIII)V - .locals 9 - - .line 1 - invoke-super {p0, p1, p2, p3, p4}, Landroid/view/View;->onSizeChanged(IIII)V - - .line 2 - invoke-virtual {p0}, Landroid/view/View;->getPaddingLeft()I - - move-result p3 - - .line 3 - invoke-virtual {p0}, Landroid/view/View;->getPaddingRight()I - - move-result p4 - - .line 4 - invoke-virtual {p0}, Landroid/view/View;->getPaddingTop()I - - move-result v0 - - .line 5 - invoke-virtual {p0}, Landroid/view/View;->getPaddingBottom()I - - move-result v1 - - sub-int p4, p1, p4 - - sub-int v1, p2, v1 - - .line 6 - iget-object v2, p0, Lcom/vk/sharing/view/TargetImageView;->d:Landroid/graphics/RectF; - - int-to-float p3, p3 - - int-to-float v0, v0 - - int-to-float v3, p4 - - int-to-float v4, v1 - - invoke-virtual {v2, p3, v0, v3, v4}, Landroid/graphics/RectF;->set(FFFF)V - - .line 7 - sget-object p3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config; - - invoke-static {p4, v1, p3}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; - - move-result-object p3 - - .line 8 - new-instance p4, Landroid/graphics/Canvas; - - invoke-direct {p4, p3}, Landroid/graphics/Canvas;->(Landroid/graphics/Bitmap;)V - - iput-object p4, p0, Lcom/vk/sharing/view/TargetImageView;->f:Landroid/graphics/Canvas; - - .line 9 - iget-object p4, p0, Lcom/vk/sharing/view/TargetImageView;->e:Landroid/graphics/Paint; - - new-instance v0, Landroid/graphics/BitmapShader; - - sget-object v1, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; - - invoke-direct {v0, p3, v1, v1}, Landroid/graphics/BitmapShader;->(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V - - invoke-virtual {p4, v0}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; - - .line 10 - sget p3, Lcom/vk/sharing/view/TargetImageView;->I:I - - div-int/lit8 p3, p3, 0x2 - - int-to-float p3, p3 - - .line 11 - iget-object p4, p0, Lcom/vk/sharing/view/TargetImageView;->g:Landroid/graphics/RectF; - - int-to-float v0, p1 - - sub-float/2addr v0, p3 - - int-to-float v5, p2 - - sub-float v1, v5, p3 - - invoke-virtual {p4, p3, p3, v0, v1}, Landroid/graphics/RectF;->set(FFFF)V - - .line 12 - iget-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->h:Landroid/graphics/Paint; - - new-instance p4, Landroid/graphics/LinearGradient; - - .line 13 - div-int/lit8 v0, p1, 0x2 - - int-to-float v4, v0 - - .line 14 - iget v6, p0, Lcom/vk/sharing/view/TargetImageView;->B:I - - iget v7, p0, Lcom/vk/sharing/view/TargetImageView;->C:I - - .line 15 - sget-object v8, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; - - const/4 v3, 0x0 - - move-object v1, p4 - - move v2, v4 - - .line 16 - invoke-direct/range {v1 .. v8}, Landroid/graphics/LinearGradient;->(FFFFIILandroid/graphics/Shader$TileMode;)V - - invoke-virtual {p3, p4}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; - - .line 17 - iget-object p3, p0, Lcom/vk/sharing/view/TargetImageView;->D:Landroid/graphics/drawable/Drawable; - - .line 18 - invoke-virtual {p3}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I - - move-result p4 - - sub-int p4, p1, p4 - - iget-object v0, p0, Lcom/vk/sharing/view/TargetImageView;->D:Landroid/graphics/drawable/Drawable; - - invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I - - move-result v0 - - sub-int v0, p2, v0 - - .line 19 - invoke-virtual {p3, p4, v0, p1, p2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 20 - invoke-direct {p0}, Lcom/vk/sharing/view/TargetImageView;->f()V - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$a$a.smali b/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$a$a.smali deleted file mode 100644 index 9d572ea14..000000000 --- a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$a$a.smali +++ /dev/null @@ -1,68 +0,0 @@ -.class Lcom/vk/stories/view/StoryCircleImageView$a$a; -.super Ljava/lang/Object; -.source "StoryCircleImageView.java" - -# interfaces -.implements Landroid/view/ViewTreeObserver$OnGlobalLayoutListener; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/stories/view/StoryCircleImageView$a;->a(Lcom/airbnb/lottie/LottieComposition;)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x0 - name = null -.end annotation - - -# instance fields -.field final synthetic a:Lcom/airbnb/lottie/LottieComposition; - -.field final synthetic b:Lcom/vk/stories/view/StoryCircleImageView$a; - - -# direct methods -.method constructor (Lcom/vk/stories/view/StoryCircleImageView$a;Lcom/airbnb/lottie/LottieComposition;)V - .locals 0 - - .line 1 - iput-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView$a$a;->b:Lcom/vk/stories/view/StoryCircleImageView$a; - - iput-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView$a$a;->a:Lcom/airbnb/lottie/LottieComposition; - - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - - -# virtual methods -.method public onGlobalLayout()V - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView$a$a;->b:Lcom/vk/stories/view/StoryCircleImageView$a; - - iget-object v0, v0, Lcom/vk/stories/view/StoryCircleImageView$a;->b:Lcom/vk/stories/view/StoryCircleImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getViewTreeObserver()Landroid/view/ViewTreeObserver; - - move-result-object v0 - - invoke-virtual {v0, p0}, Landroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V - - .line 2 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView$a$a;->b:Lcom/vk/stories/view/StoryCircleImageView$a; - - iget-object v1, v0, Lcom/vk/stories/view/StoryCircleImageView$a;->b:Lcom/vk/stories/view/StoryCircleImageView; - - iget-object v0, v0, Lcom/vk/stories/view/StoryCircleImageView$a;->a:Lcom/vk/dto/stories/model/StoriesContainer; - - iget-object v2, p0, Lcom/vk/stories/view/StoryCircleImageView$a$a;->a:Lcom/airbnb/lottie/LottieComposition; - - invoke-static {v1, v0, v2}, Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/vk/stories/view/StoryCircleImageView;Lcom/vk/dto/stories/model/StoriesContainer;Lcom/airbnb/lottie/LottieComposition;)V - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$a.smali b/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$a.smali deleted file mode 100644 index a7d845279..000000000 --- a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$a.smali +++ /dev/null @@ -1,99 +0,0 @@ -.class Lcom/vk/stories/view/StoryCircleImageView$a; -.super Ljava/lang/Object; -.source "StoryCircleImageView.java" - -# interfaces -.implements Lcom/airbnb/lottie/LottieListener; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/vk/dto/stories/model/StoriesContainer;)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x0 - name = null -.end annotation - -.annotation system Ldalvik/annotation/Signature; - value = { - "Ljava/lang/Object;", - "Lcom/airbnb/lottie/LottieListener<", - "Lcom/airbnb/lottie/LottieComposition;", - ">;" - } -.end annotation - - -# instance fields -.field final synthetic a:Lcom/vk/dto/stories/model/StoriesContainer; - -.field final synthetic b:Lcom/vk/stories/view/StoryCircleImageView; - - -# direct methods -.method constructor (Lcom/vk/stories/view/StoryCircleImageView;Lcom/vk/dto/stories/model/StoriesContainer;)V - .locals 0 - - .line 1 - iput-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView$a;->b:Lcom/vk/stories/view/StoryCircleImageView; - - iput-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView$a;->a:Lcom/vk/dto/stories/model/StoriesContainer; - - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - - -# virtual methods -.method public a(Lcom/airbnb/lottie/LottieComposition;)V - .locals 2 - - .line 2 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView$a;->b:Lcom/vk/stories/view/StoryCircleImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getWidth()I - - move-result v0 - - if-lez v0, :cond_0 - - .line 3 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView$a;->b:Lcom/vk/stories/view/StoryCircleImageView; - - iget-object v1, p0, Lcom/vk/stories/view/StoryCircleImageView$a;->a:Lcom/vk/dto/stories/model/StoriesContainer; - - invoke-static {v0, v1, p1}, Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/vk/stories/view/StoryCircleImageView;Lcom/vk/dto/stories/model/StoriesContainer;Lcom/airbnb/lottie/LottieComposition;)V - - goto :goto_0 - - .line 4 - :cond_0 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView$a;->b:Lcom/vk/stories/view/StoryCircleImageView; - - invoke-virtual {v0}, Landroid/widget/ImageView;->getViewTreeObserver()Landroid/view/ViewTreeObserver; - - move-result-object v0 - - new-instance v1, Lcom/vk/stories/view/StoryCircleImageView$a$a; - - invoke-direct {v1, p0, p1}, Lcom/vk/stories/view/StoryCircleImageView$a$a;->(Lcom/vk/stories/view/StoryCircleImageView$a;Lcom/airbnb/lottie/LottieComposition;)V - - invoke-virtual {v0, v1}, Landroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V - - :goto_0 - return-void -.end method - -.method public bridge synthetic a(Ljava/lang/Object;)V - .locals 0 - - .line 1 - check-cast p1, Lcom/airbnb/lottie/LottieComposition; - - invoke-virtual {p0, p1}, Lcom/vk/stories/view/StoryCircleImageView$a;->a(Lcom/airbnb/lottie/LottieComposition;)V - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$b.smali b/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$b.smali deleted file mode 100644 index 4232eb8b2..000000000 --- a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView$b.smali +++ /dev/null @@ -1,47 +0,0 @@ -.class Lcom/vk/stories/view/StoryCircleImageView$b; -.super Ljava/lang/Object; -.source "StoryCircleImageView.java" - -# interfaces -.implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingMethod; - value = Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/vk/dto/stories/model/StoriesContainer;Lcom/airbnb/lottie/LottieComposition;)V -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x0 - name = null -.end annotation - - -# instance fields -.field final synthetic a:Lcom/vk/stories/view/StoryCircleImageView; - - -# direct methods -.method constructor (Lcom/vk/stories/view/StoryCircleImageView;)V - .locals 0 - - .line 1 - iput-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView$b;->a:Lcom/vk/stories/view/StoryCircleImageView; - - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - - -# virtual methods -.method public onAnimationUpdate(Landroid/animation/ValueAnimator;)V - .locals 0 - - .line 1 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView$b;->a:Lcom/vk/stories/view/StoryCircleImageView; - - invoke-virtual {p1}, Landroid/widget/ImageView;->invalidate()V - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView.smali b/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView.smali deleted file mode 100644 index 8a2f87795..000000000 --- a/smali/smali_classes4/com/vk/stories/view/StoryCircleImageView.smali +++ /dev/null @@ -1,1652 +0,0 @@ -.class public Lcom/vk/stories/view/StoryCircleImageView; -.super Lcom/vk/stories/view/BorderedCircleImageView; -.source "StoryCircleImageView.java" - -# interfaces -.implements Lcom/vk/core/ui/themes/Themable; - - -# static fields -.field private static final B0:Ljava/util/HashSet; - .annotation system Ldalvik/annotation/Signature; - value = { - "Ljava/util/HashSet<", - "Ljava/lang/Integer;", - ">;" - } - .end annotation -.end field - - -# instance fields -.field private A0:I - -.field private final f0:Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - -.field private g0:Landroid/graphics/drawable/Drawable; - -.field private h0:Landroid/graphics/drawable/Drawable; - -.field private i0:Landroid/graphics/drawable/Drawable; - -.field private j0:I - -.field private k0:I - -.field private l0:I - -.field private m0:I - -.field private n0:I - -.field private o0:I - -.field private p0:Landroid/graphics/Bitmap; - -.field private q0:Landroid/graphics/Bitmap; - -.field private r0:Landroid/graphics/Bitmap; - -.field private s0:Landroid/graphics/Bitmap; - -.field private t0:Z - -.field private u0:Z - -.field private v0:Z - -.field private w0:Z - -.field private x0:Z - -.field private y0:Ljava/lang/String; - -.field private z0:Lcom/airbnb/lottie/LottieDrawable; - - -# direct methods -.method static constructor ()V - .locals 1 - - .line 1 - new-instance v0, Ljava/util/HashSet; - - invoke-direct {v0}, Ljava/util/HashSet;->()V - - sput-object v0, Lcom/vk/stories/view/StoryCircleImageView;->B0:Ljava/util/HashSet; - - return-void -.end method - -.method public constructor (Landroid/content/Context;)V - .locals 1 - - const/4 v0, 0x0 - - .line 1 - invoke-direct {p0, p1, v0}, Lcom/vk/stories/view/StoryCircleImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;)V - .locals 1 - - const/4 v0, 0x0 - - .line 2 - invoke-direct {p0, p1, p2, v0}, Lcom/vk/stories/view/StoryCircleImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - return-void -.end method - -.method public constructor (Landroid/content/Context;Landroid/util/AttributeSet;I)V - .locals 1 - - .line 3 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/stories/view/BorderedCircleImageView;->(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - .line 4 - sget-object v0, Lcom/vk/imageloader/FrescoWrapper;->c:Lcom/vk/imageloader/FrescoWrapper; - - invoke-virtual {v0}, Lcom/vk/imageloader/FrescoWrapper;->d()Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->f0:Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - - .line 5 - invoke-virtual {p0, p1, p2, p3}, Lcom/vk/stories/view/StoryCircleImageView;->a(Landroid/content/Context;Landroid/util/AttributeSet;I)V - - return-void -.end method - -.method private a(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/content/res/TypedArray;)V - .locals 3 - - const/high16 v0, 0x42800000 # 64.0f - - .line 7 - invoke-static {v0}, Lcom/vk/core/util/Screen;->a(F)I - - move-result v0 - - const/4 v1, 0x0 - - invoke-virtual {p3, v1, v0}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - const/4 v0, 0x2 - - .line 8 - invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v2 - - if-eqz v2, :cond_0 - - .line 9 - invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - goto :goto_0 - - :cond_0 - const v0, 0x7f0801bc - - .line 10 - invoke-static {p1, v0}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - :goto_0 - const/4 v0, 0x3 - - .line 11 - invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v2 - - if-eqz v2, :cond_1 - - .line 12 - invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->h0:Landroid/graphics/drawable/Drawable; - - goto :goto_1 - - :cond_1 - const v0, 0x7f0801b9 - - .line 13 - invoke-static {p1, v0}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->h0:Landroid/graphics/drawable/Drawable; - - :goto_1 - const-string v0, "vk_borderTint" - - .line 14 - invoke-static {p2, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->b(Landroid/util/AttributeSet;Ljava/lang/String;)I - - move-result v0 - - if-eqz v0, :cond_2 - - .line 15 - sget-object v2, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; - - invoke-virtual {v2, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->a(I)Z - - move-result v2 - - if-eqz v2, :cond_2 - - .line 16 - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->j0:I - - goto :goto_2 - - :cond_2 - const/4 v0, 0x5 - - .line 17 - invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v2 - - if-eqz v2, :cond_3 - - .line 18 - invoke-virtual {p3, v0, v1}, Landroid/content/res/TypedArray;->getColor(II)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->k0:I - - goto :goto_2 - - :cond_3 - const v0, 0x7f040022 - - .line 19 - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->j0:I - - :goto_2 - const-string v0, "vk_failBorderTint" - - .line 20 - invoke-static {p2, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->b(Landroid/util/AttributeSet;Ljava/lang/String;)I - - move-result v0 - - if-eqz v0, :cond_4 - - .line 21 - sget-object v2, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; - - invoke-virtual {v2, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->a(I)Z - - move-result v2 - - if-eqz v2, :cond_4 - - .line 22 - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->l0:I - - goto :goto_3 - - :cond_4 - const/4 v0, 0x7 - - .line 23 - invoke-virtual {p3, v0}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v2 - - if-eqz v2, :cond_5 - - .line 24 - invoke-virtual {p3, v0, v1}, Landroid/content/res/TypedArray;->getColor(II)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->m0:I - - :cond_5 - :goto_3 - const-string v0, "vk_borderSeenTint" - - .line 25 - invoke-static {p2, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->b(Landroid/util/AttributeSet;Ljava/lang/String;)I - - move-result p2 - - if-eqz p2, :cond_6 - - .line 26 - sget-object v0, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; - - invoke-virtual {v0, p2}, Lcom/vk/core/ui/themes/VKThemeHelper;->a(I)Z - - move-result v0 - - if-eqz v0, :cond_6 - - .line 27 - iput p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->n0:I - - goto :goto_4 - - :cond_6 - const/4 p2, 0x4 - - .line 28 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v0 - - if-eqz v0, :cond_7 - - .line 29 - invoke-virtual {p3, p2, v1}, Landroid/content/res/TypedArray;->getColor(II)I - - move-result p2 - - iput p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->o0:I - - goto :goto_4 - - .line 30 - :cond_7 - iput v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->o0:I - - :goto_4 - const/4 p2, 0x6 - - .line 31 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v0 - - if-eqz v0, :cond_8 - - .line 32 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable; - - move-result-object p2 - - iput-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->i0:Landroid/graphics/drawable/Drawable; - - goto :goto_5 - - :cond_8 - const p2, 0x7f0807e9 - - .line 33 - invoke-static {p1, p2}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object p2 - - iput-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->i0:Landroid/graphics/drawable/Drawable; - - :goto_5 - const/16 p2, 0x8 - - .line 34 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v0 - - if-eqz v0, :cond_9 - - .line 35 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable; - - move-result-object p1 - - goto :goto_6 - - :cond_9 - const p2, 0x7f08012a - - .line 36 - invoke-static {p1, p2}, Landroidx/core/content/ContextCompat;->getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; - - move-result-object p1 - - :goto_6 - const/16 p2, 0x9 - - .line 37 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->hasValue(I)Z - - move-result v0 - - if-eqz v0, :cond_a - - .line 38 - invoke-virtual {p3, p2}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String; - - move-result-object p2 - - iput-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->y0:Ljava/lang/String; - - goto :goto_7 - - :cond_a - const-string p2, "stories_animation_64.json" - - .line 39 - iput-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->y0:Ljava/lang/String; - - .line 40 - :goto_7 - iget p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {p1, p2, p2}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - move-result-object p1 - - iput-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->q0:Landroid/graphics/Bitmap; - - .line 41 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - iget p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {p1, p2, p2}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - .line 42 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->h0:Landroid/graphics/drawable/Drawable; - - iget p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {p1, p2, p2}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - move-result-object p1 - - iput-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->r0:Landroid/graphics/Bitmap; - - .line 43 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - iget p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {p1, p2, p2}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - move-result-object p1 - - iput-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->s0:Landroid/graphics/Bitmap; - - return-void -.end method - -.method private a(Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder;Ljava/util/List;)V - .locals 2 - .param p1 # Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - .annotation build Landroidx/annotation/NonNull; - .end annotation - .end param - .param p2 # Ljava/util/List; - .annotation build Landroidx/annotation/Nullable; - .end annotation - .end param - .annotation system Ldalvik/annotation/Signature; - value = { - "(", - "Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder;", - "Ljava/util/List<", - "Ljava/lang/String;", - ">;)V" - } - .end annotation - - const/4 v0, 0x0 - - .line 59 - invoke-virtual {p1, v0}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->b(Ljava/lang/Object;)Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - .line 60 - invoke-virtual {p1, v0}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->a(Lcom/facebook/common/internal/Supplier;)Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - if-eqz p2, :cond_2 - - .line 61 - invoke-interface {p2}, Ljava/util/List;->isEmpty()Z - - move-result v1 - - if-eqz v1, :cond_0 - - goto :goto_0 - - .line 62 - :cond_0 - invoke-interface {p2}, Ljava/util/List;->size()I - - move-result v0 - - const/4 v1, 0x1 - - if-ne v0, v1, :cond_1 - - const/4 v0, 0x0 - - .line 63 - invoke-interface {p2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; - - move-result-object p2 - - check-cast p2, Ljava/lang/String; - - invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; - - move-result-object p2 - - invoke-static {p2}, Lcom/facebook/imagepipeline/request/ImageRequestBuilder;->b(Landroid/net/Uri;)Lcom/facebook/imagepipeline/request/ImageRequestBuilder; - - move-result-object p2 - - sget-object v0, Lcom/facebook/imagepipeline/request/ImageRequest$CacheChoice;->SMALL:Lcom/facebook/imagepipeline/request/ImageRequest$CacheChoice; - - .line 64 - invoke-virtual {p2, v0}, Lcom/facebook/imagepipeline/request/ImageRequestBuilder;->a(Lcom/facebook/imagepipeline/request/ImageRequest$CacheChoice;)Lcom/facebook/imagepipeline/request/ImageRequestBuilder; - - .line 65 - invoke-virtual {p2}, Lcom/facebook/imagepipeline/request/ImageRequestBuilder;->a()Lcom/facebook/imagepipeline/request/ImageRequest; - - move-result-object p2 - - .line 66 - invoke-virtual {p1, p2}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->b(Ljava/lang/Object;)Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - goto :goto_1 - - .line 67 - :cond_1 - new-instance v0, Lcom/vk/stories/view/f; - - invoke-direct {v0, p0, p2}, Lcom/vk/stories/view/f;->(Lcom/vk/stories/view/StoryCircleImageView;Ljava/util/List;)V - - invoke-virtual {p1, v0}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->a(Lcom/facebook/common/internal/Supplier;)Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - goto :goto_1 - - .line 68 - :cond_2 - :goto_0 - invoke-virtual {p1, v0}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->b(Ljava/lang/Object;)Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - :goto_1 - return-void -.end method - -.method private a(Lcom/vk/dto/stories/model/StoriesContainer;Lcom/airbnb/lottie/LottieComposition;)V - .locals 1 - - .line 47 - new-instance v0, Lcom/airbnb/lottie/LottieDrawable; - - invoke-direct {v0}, Lcom/airbnb/lottie/LottieDrawable;->()V - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - .line 48 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {v0, p2}, Lcom/airbnb/lottie/LottieDrawable;->a(Lcom/airbnb/lottie/LottieComposition;)Z - - .line 49 - iget-object p2, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - const/4 v0, -0x1 - - invoke-virtual {p2, v0}, Lcom/airbnb/lottie/LottieDrawable;->d(I)V - - .line 50 - invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I - - move-result p2 - - invoke-direct {p0, p2}, Lcom/vk/stories/view/StoryCircleImageView;->b(I)V - - .line 51 - invoke-static {p1}, Lcom/vk/dto/stories/d/StoriesContainerExt;->f(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result p1 - - if-nez p1, :cond_0 - - .line 52 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - new-instance p2, Lcom/vk/stories/view/StoryCircleImageView$b; - - invoke-direct {p2, p0}, Lcom/vk/stories/view/StoryCircleImageView$b;->(Lcom/vk/stories/view/StoryCircleImageView;)V - - invoke-virtual {p1, p2}, Lcom/airbnb/lottie/LottieDrawable;->a(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V - - .line 53 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {p1}, Lcom/airbnb/lottie/LottieDrawable;->start()V - - goto :goto_0 - - .line 54 - :cond_0 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {p1}, Lcom/airbnb/lottie/LottieDrawable;->stop()V - - :goto_0 - return-void -.end method - -.method static synthetic a(Lcom/vk/stories/view/StoryCircleImageView;Lcom/vk/dto/stories/model/StoriesContainer;Lcom/airbnb/lottie/LottieComposition;)V - .locals 0 - - .line 1 - invoke-direct {p0, p1, p2}, Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/vk/dto/stories/model/StoriesContainer;Lcom/airbnb/lottie/LottieComposition;)V - - return-void -.end method - -.method private a(ZZ)V - .locals 0 - - .line 55 - invoke-virtual {p0}, Lcom/vk/stories/view/BorderedCircleImageView;->k()V - - .line 56 - iput-boolean p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->t0:Z - - if-nez p2, :cond_0 - - const/high16 p1, 0x3f800000 # 1.0f - - .line 57 - invoke-virtual {p0, p1}, Lcom/vk/stories/view/BorderedCircleImageView;->setSelectionAmount(F)V - - goto :goto_0 - - .line 58 - :cond_0 - invoke-virtual {p0}, Lcom/vk/stories/view/BorderedCircleImageView;->n()V - - :goto_0 - return-void -.end method - -.method private b(I)V - .locals 1 - - .line 2 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - if-eqz v0, :cond_0 - - invoke-virtual {v0}, Lcom/airbnb/lottie/LottieDrawable;->e()Lcom/airbnb/lottie/LottieComposition; - - move-result-object v0 - - if-eqz v0, :cond_0 - - .line 3 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {v0}, Lcom/airbnb/lottie/LottieDrawable;->e()Lcom/airbnb/lottie/LottieComposition; - - move-result-object v0 - - int-to-float p1, p1 - - .line 4 - invoke-virtual {v0}, Lcom/airbnb/lottie/LottieComposition;->a()Landroid/graphics/Rect; - - move-result-object v0 - - invoke-virtual {v0}, Landroid/graphics/Rect;->width()I - - move-result v0 - - int-to-float v0, v0 - - div-float/2addr p1, v0 - - .line 5 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {v0, p1}, Lcom/airbnb/lottie/LottieDrawable;->d(F)V - - :cond_0 - return-void -.end method - -.method private b(Landroid/graphics/Canvas;)V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {v0, p1}, Lcom/airbnb/lottie/LottieDrawable;->draw(Landroid/graphics/Canvas;)V - - return-void -.end method - -.method private o()Z - .locals 1 - - .line 1 - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->u0:Z - - if-nez v0, :cond_0 - - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->t0:Z - - if-nez v0, :cond_0 - - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - if-nez v0, :cond_0 - - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->w0:Z - - if-nez v0, :cond_0 - - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->v0:Z - - if-nez v0, :cond_0 - - const/4 v0, 0x1 - - goto :goto_0 - - :cond_0 - const/4 v0, 0x0 - - :goto_0 - return v0 -.end method - -.method private p()V - .locals 1 - - .line 1 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - invoke-virtual {v0}, Lcom/airbnb/lottie/LottieDrawable;->stop()V - - const/4 v0, 0x0 - - .line 2 - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - .line 3 - invoke-virtual {p0}, Landroid/widget/ImageView;->invalidate()V - - return-void -.end method - -.method private q()V - .locals 3 - - .line 1 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->j0:I - - if-eqz v0, :cond_0 - - sget-object v1, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; - - invoke-virtual {v1, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->a(I)Z - - move-result v0 - - if-eqz v0, :cond_0 - - .line 2 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->j0:I - - invoke-static {v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->k0:I - - .line 3 - :cond_0 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - iget v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->k0:I - - invoke-static {v1}, Landroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList; - - move-result-object v1 - - invoke-static {v0, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - .line 4 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - iget v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {v0, v1, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->p0:Landroid/graphics/Bitmap; - - .line 5 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->l0:I - - if-eqz v0, :cond_1 - - sget-object v1, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; - - invoke-virtual {v1, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->a(I)Z - - move-result v0 - - if-eqz v0, :cond_1 - - .line 6 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->l0:I - - invoke-static {v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->m0:I - - .line 7 - :cond_1 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->m0:I - - if-eqz v0, :cond_2 - - .line 8 - iget-object v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->i0:Landroid/graphics/drawable/Drawable; - - invoke-static {v0}, Landroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList; - - move-result-object v0 - - invoke-static {v1, v0}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->i0:Landroid/graphics/drawable/Drawable; - - .line 9 - :cond_2 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->n0:I - - if-eqz v0, :cond_3 - - sget-object v1, Lcom/vk/core/ui/themes/VKThemeHelper;->k:Lcom/vk/core/ui/themes/VKThemeHelper; - - invoke-virtual {v1, v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->a(I)Z - - move-result v0 - - if-eqz v0, :cond_3 - - .line 10 - iget v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->n0:I - - invoke-static {v0}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->o0:I - - :cond_3 - const/4 v0, 0x0 - - .line 11 - iget-object v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - invoke-static {v0}, Landroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList; - - move-result-object v0 - - invoke-static {v1, v0}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iget v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {v0, v1, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - .line 12 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->h0:Landroid/graphics/drawable/Drawable; - - iget v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->o0:I - - invoke-static {v1}, Landroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList; - - move-result-object v1 - - invoke-static {v0, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iget v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {v0, v1, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->r0:Landroid/graphics/Bitmap; - - .line 13 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->g0:Landroid/graphics/drawable/Drawable; - - invoke-virtual {p0}, Landroid/widget/ImageView;->getContext()Landroid/content/Context; - - move-result-object v1 - - const v2, 0x7f0601b5 - - invoke-static {v1, v2}, Landroidx/core/content/ContextCompat;->getColor(Landroid/content/Context;I)I - - move-result v1 - - invoke-static {v1}, Landroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList; - - move-result-object v1 - - invoke-static {v0, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)Landroid/graphics/drawable/Drawable; - - move-result-object v0 - - iget v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - invoke-static {v0, v1, v1}, Lcom/vk/core/util/DrawableUtils;->a(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap; - - move-result-object v0 - - iput-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->s0:Landroid/graphics/Bitmap; - - return-void -.end method - -.method private r()V - .locals 1 - - .line 1 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->o()Z - - move-result v0 - - if-eqz v0, :cond_0 - - const/4 v0, 0x0 - - goto :goto_0 - - :cond_0 - const/4 v0, 0x2 - - :goto_0 - invoke-static {v0}, Lcom/vk/core/util/Screen;->a(I)I - - move-result v0 - - iput v0, p0, Lcom/vk/stories/view/BorderedCircleImageView;->c0:I - - .line 2 - invoke-virtual {p0}, Lcom/vk/stories/view/BorderedCircleImageView;->m()V - - .line 3 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->q()V - - return-void -.end method - -.method private setUploadFailed(Z)V - .locals 0 - - .line 1 - iput-boolean p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->u0:Z - - .line 2 - invoke-virtual {p0}, Landroid/widget/ImageView;->invalidate()V - - return-void -.end method - - -# virtual methods -.method public synthetic a(Ljava/util/List;)Lcom/facebook/datasource/DataSource; - .locals 4 - .param p1 # Ljava/util/List; - .annotation build Landroidx/annotation/Nullable; - .end annotation - .end param - - .line 69 - new-instance v0, Ljava/util/ArrayList; - - invoke-direct {v0}, Ljava/util/ArrayList;->()V - - .line 70 - invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator; - - move-result-object p1 - - :goto_0 - invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z - - move-result v1 - - if-eqz v1, :cond_0 - - invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v1 - - check-cast v1, Ljava/lang/String; - - .line 71 - new-instance v2, Lcom/vk/im/engine/models/Image; - - const/4 v3, -0x1 - - invoke-direct {v2, v3, v3, v1}, Lcom/vk/im/engine/models/Image;->(IILjava/lang/String;)V - - invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z - - goto :goto_0 - - .line 72 - :cond_0 - iget p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->A0:I - - const/4 v1, 0x0 - - invoke-static {v0, p1, v1}, Lcom/vk/im/ui/views/avatars/AvatarDataSource;->a(Ljava/util/List;II)Lcom/facebook/datasource/DataSource; - - move-result-object p1 - - return-object p1 -.end method - -.method protected a(Landroid/content/Context;Landroid/util/AttributeSet;I)V - .locals 2 - - .line 2 - sget-object v0, Lcom/vtosters/lite/a0;->StoryCircleImageView:[I - - const/4 v1, 0x0 - - invoke-virtual {p1, p2, v0, p3, v1}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray; - - move-result-object p3 - - .line 3 - invoke-direct {p0, p1, p2, p3}, Lcom/vk/stories/view/StoryCircleImageView;->a(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/content/res/TypedArray;)V - - .line 4 - invoke-virtual {p3}, Landroid/content/res/TypedArray;->recycle()V - - .line 5 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->r()V - - .line 6 - iget-object p1, p0, Lcom/vk/stories/view/StoryCircleImageView;->p0:Landroid/graphics/Bitmap; - - iput-object p1, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - return-void -.end method - -.method public a(Lcom/vk/dto/stories/model/StoriesContainer;)V - .locals 2 - - .line 44 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - if-nez v0, :cond_0 - - .line 45 - invoke-virtual {p0}, Landroid/widget/ImageView;->getContext()Landroid/content/Context; - - move-result-object v0 - - iget-object v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->y0:Ljava/lang/String; - - invoke-static {v0, v1}, Lcom/airbnb/lottie/LottieCompositionFactory;->a(Landroid/content/Context;Ljava/lang/String;)Lcom/airbnb/lottie/LottieTask; - - move-result-object v0 - - .line 46 - new-instance v1, Lcom/vk/stories/view/StoryCircleImageView$a; - - invoke-direct {v1, p0, p1}, Lcom/vk/stories/view/StoryCircleImageView$a;->(Lcom/vk/stories/view/StoryCircleImageView;Lcom/vk/dto/stories/model/StoriesContainer;)V - - invoke-virtual {v0, v1}, Lcom/airbnb/lottie/LottieTask;->b(Lcom/airbnb/lottie/LottieListener;)Lcom/airbnb/lottie/LottieTask; - - :cond_0 - return-void -.end method - -.method public b(Ljava/util/List;)V - .locals 2 - .param p1 # Ljava/util/List; - .annotation build Landroidx/annotation/Nullable; - .end annotation - .end param - .annotation system Ldalvik/annotation/Signature; - value = { - "(", - "Ljava/util/List<", - "Ljava/lang/String;", - ">;)V" - } - .end annotation - - .line 6 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->f0:Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - - .line 7 - invoke-virtual {v0}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->j()Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - check-cast v0, Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - - .line 8 - invoke-virtual {p0}, Lcom/vk/imageloader/view/VKDraweeView;->getController()Lcom/facebook/u/e/DraweeController; - - move-result-object v1 - - invoke-virtual {v0, v1}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->a(Lcom/facebook/u/e/DraweeController;)Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder; - - check-cast v0, Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder; - - .line 9 - invoke-virtual {p0, v0}, Lcom/vk/imageloader/view/VKImageView;->setControllerListener(Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder;)V - - .line 10 - invoke-direct {p0, v0, p1}, Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/facebook/u/b/a/PipelineDraweeControllerBuilder;Ljava/util/List;)V - - .line 11 - invoke-virtual {v0}, Lcom/facebook/drawee/controller/AbstractDraweeControllerBuilder;->k0()Lcom/facebook/drawee/controller/AbstractDraweeController; - - move-result-object p1 - - invoke-virtual {p0, p1}, Lcom/vk/imageloader/view/VKDraweeView;->setController(Lcom/facebook/u/e/DraweeController;)V - - return-void -.end method - -.method protected onDraw(Landroid/graphics/Canvas;)V - .locals 2 - - .line 1 - invoke-super {p0, p1}, Lcom/vk/stories/view/ClippedImageView;->onDraw(Landroid/graphics/Canvas;)V - - const/16 v0, 0xff - - .line 2 - invoke-virtual {p0, v0}, Lcom/vk/stories/view/BorderedCircleImageView;->setBorderAlpha(I)V - - .line 3 - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->u0:Z - - if-eqz v0, :cond_0 - - .line 4 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->i0:Landroid/graphics/drawable/Drawable; - - invoke-virtual {v0, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V - - goto :goto_1 - - .line 5 - :cond_0 - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->t0:Z - - if-eqz v0, :cond_3 - - .line 6 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - if-eqz v0, :cond_1 - - .line 7 - invoke-direct {p0, p1}, Lcom/vk/stories/view/StoryCircleImageView;->b(Landroid/graphics/Canvas;)V - - goto :goto_1 - - .line 8 - :cond_1 - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->x0:Z - - if-eqz v0, :cond_2 - - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->s0:Landroid/graphics/Bitmap; - - goto :goto_0 - - :cond_2 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->p0:Landroid/graphics/Bitmap; - - :goto_0 - iput-object v0, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - .line 9 - invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I - - move-result v0 - - invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I - - move-result v1 - - invoke-virtual {p0, v0, v1}, Lcom/vk/stories/view/BorderedCircleImageView;->b(II)V - - .line 10 - invoke-virtual {p0, p1}, Lcom/vk/stories/view/BorderedCircleImageView;->a(Landroid/graphics/Canvas;)V - - goto :goto_1 - - .line 11 - :cond_3 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - if-eqz v0, :cond_4 - - .line 12 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->p()V - - goto :goto_1 - - .line 13 - :cond_4 - iget-boolean v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->w0:Z - - if-eqz v0, :cond_5 - - .line 14 - iget-object v0, p0, Lcom/vk/stories/view/StoryCircleImageView;->r0:Landroid/graphics/Bitmap; - - iput-object v0, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - const/16 v0, 0xa3 - - .line 15 - invoke-virtual {p0, v0}, Lcom/vk/stories/view/BorderedCircleImageView;->setBorderAlpha(I)V - - .line 16 - invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I - - move-result v0 - - invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I - - move-result v1 - - invoke-virtual {p0, v0, v1}, Lcom/vk/stories/view/BorderedCircleImageView;->b(II)V - - .line 17 - invoke-virtual {p0, p1}, Lcom/vk/stories/view/BorderedCircleImageView;->a(Landroid/graphics/Canvas;)V - - :cond_5 - :goto_1 - return-void -.end method - -.method protected onSizeChanged(IIII)V - .locals 0 - - .line 1 - invoke-super {p0, p1, p2, p3, p4}, Lcom/vk/stories/view/BorderedCircleImageView;->onSizeChanged(IIII)V - - .line 2 - iget-object p3, p0, Lcom/vk/stories/view/StoryCircleImageView;->i0:Landroid/graphics/drawable/Drawable; - - const/4 p4, 0x0 - - invoke-virtual {p3, p4, p4, p1, p2}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V - - .line 3 - invoke-direct {p0, p1}, Lcom/vk/stories/view/StoryCircleImageView;->b(I)V - - return-void -.end method - -.method public setStoryContainer(Lcom/vk/dto/stories/model/StoriesContainer;)V - .locals 6 - .param p1 # Lcom/vk/dto/stories/model/StoriesContainer; - .annotation build Landroidx/annotation/Nullable; - .end annotation - .end param - - const/4 v0, 0x1 - - const/4 v1, 0x0 - - if-eqz p1, :cond_0 - - .line 1 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->Q1()Z - - move-result v2 - - if-eqz v2, :cond_0 - - const/4 v2, 0x1 - - goto :goto_0 - - :cond_0 - const/4 v2, 0x0 - - :goto_0 - if-eqz p1, :cond_1 - - .line 2 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->S1()Z - - move-result v3 - - if-eqz v3, :cond_1 - - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->L1()Z - - move-result v3 - - if-nez v3, :cond_1 - - const/4 v3, 0x1 - - goto :goto_1 - - :cond_1 - const/4 v3, 0x0 - - :goto_1 - iput-boolean v3, p0, Lcom/vk/stories/view/StoryCircleImageView;->v0:Z - - .line 3 - instance-of v3, p1, Lcom/vk/dto/stories/model/CommunityGroupedStoriesContainer; - - iput-boolean v3, p0, Lcom/vk/stories/view/StoryCircleImageView;->x0:Z - - if-eqz p1, :cond_11 - - .line 4 - invoke-static {p1}, Lcom/vk/dto/stories/d/StoriesContainerExt;->c(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result v4 - - if-nez v4, :cond_3 - - invoke-static {p1}, Lcom/vk/dto/stories/d/StoriesContainerExt;->d(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result v4 - - if-eqz v4, :cond_2 - - goto :goto_2 - - .line 5 - :cond_2 - iget-object v4, p0, Lcom/vk/stories/view/StoryCircleImageView;->p0:Landroid/graphics/Bitmap; - - iput-object v4, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - goto :goto_3 - - .line 6 - :cond_3 - :goto_2 - iget-object v4, p0, Lcom/vk/stories/view/StoryCircleImageView;->q0:Landroid/graphics/Bitmap; - - iput-object v4, p0, Lcom/vk/stories/view/BorderedCircleImageView;->T:Landroid/graphics/Bitmap; - - .line 7 - :goto_3 - invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I - - move-result v4 - - invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I - - move-result v5 - - invoke-virtual {p0, v4, v5}, Lcom/vk/stories/view/BorderedCircleImageView;->b(II)V - - .line 8 - invoke-static {p1}, Lcom/vk/dto/stories/d/StoriesContainerExt;->e(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result v4 - - if-eqz v4, :cond_4 - - .line 9 - invoke-virtual {p0, p1}, Lcom/vk/stories/view/StoryCircleImageView;->a(Lcom/vk/dto/stories/model/StoriesContainer;)V - - goto :goto_4 - - .line 10 - :cond_4 - iget-object v4, p0, Lcom/vk/stories/view/StoryCircleImageView;->z0:Lcom/airbnb/lottie/LottieDrawable; - - if-eqz v4, :cond_5 - - .line 11 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->p()V - - .line 12 - :cond_5 - :goto_4 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->K1()Z - - move-result v4 - - if-nez v4, :cond_6 - - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->L1()Z - - move-result v4 - - if-eqz v4, :cond_6 - - const/4 v4, 0x1 - - goto :goto_5 - - :cond_6 - const/4 v4, 0x0 - - :goto_5 - iput-boolean v4, p0, Lcom/vk/stories/view/StoryCircleImageView;->w0:Z - - const v4, 0x7f0702c2 - - if-eqz v2, :cond_c - - .line 13 - invoke-static {v4}, Lcom/vk/core/util/ResUtils;->c(I)I - - move-result v2 - - invoke-virtual {p1, v2}, Lcom/vk/dto/stories/model/StoriesContainer;->h(I)Ljava/lang/String; - - move-result-object v2 - - if-eqz v2, :cond_7 - - .line 14 - invoke-virtual {p0, v2}, Lcom/vk/imageloader/view/VKImageView;->a(Ljava/lang/String;)V - - goto :goto_6 - - .line 15 - :cond_7 - invoke-virtual {p0}, Lcom/vk/imageloader/view/VKImageView;->g()V - - .line 16 - :goto_6 - invoke-static {p1}, Lcom/vk/stories/StoriesController;->a(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result v2 - - if-eqz v2, :cond_8 - - .line 17 - invoke-direct {p0, v0}, Lcom/vk/stories/view/StoryCircleImageView;->setUploadFailed(Z)V - - .line 18 - invoke-direct {p0, v1, v1}, Lcom/vk/stories/view/StoryCircleImageView;->a(ZZ)V - - goto/16 :goto_9 - - .line 19 - :cond_8 - invoke-direct {p0, v1}, Lcom/vk/stories/view/StoryCircleImageView;->setUploadFailed(Z)V - - .line 20 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->K1()Z - - move-result v2 - - if-nez v2, :cond_a - - invoke-static {p1}, Lcom/vk/dto/stories/d/StoriesContainerExt;->c(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result v2 - - if-eqz v2, :cond_9 - - goto :goto_7 - - .line 21 - :cond_9 - invoke-direct {p0, v1, v1}, Lcom/vk/stories/view/StoryCircleImageView;->a(ZZ)V - - goto :goto_9 - - .line 22 - :cond_a - :goto_7 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->A1()Lcom/vk/dto/stories/model/StoryEntry; - - move-result-object p1 - - if-eqz p1, :cond_b - - .line 23 - sget-object v1, Lcom/vk/stories/view/StoryCircleImageView;->B0:Ljava/util/HashSet; - - iget v2, p1, Lcom/vk/dto/stories/model/StoryEntry;->b:I - - invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; - - move-result-object v2 - - invoke-virtual {v1, v2}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z - - move-result v1 - - xor-int/2addr v1, v0 - - invoke-direct {p0, v0, v1}, Lcom/vk/stories/view/StoryCircleImageView;->a(ZZ)V - - .line 24 - sget-object v0, Lcom/vk/stories/view/StoryCircleImageView;->B0:Ljava/util/HashSet; - - iget p1, p1, Lcom/vk/dto/stories/model/StoryEntry;->b:I - - invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; - - move-result-object p1 - - invoke-virtual {v0, p1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - goto :goto_9 - - .line 25 - :cond_b - invoke-direct {p0, v0, v1}, Lcom/vk/stories/view/StoryCircleImageView;->a(ZZ)V - - goto :goto_9 - - .line 26 - :cond_c - invoke-direct {p0, v1}, Lcom/vk/stories/view/StoryCircleImageView;->setUploadFailed(Z)V - - .line 27 - invoke-virtual {p1}, Lcom/vk/dto/stories/model/StoriesContainer;->K1()Z - - move-result v2 - - if-nez v2, :cond_e - - invoke-static {p1}, Lcom/vk/dto/stories/d/StoriesContainerExt;->c(Lcom/vk/dto/stories/model/StoriesContainer;)Z - - move-result v2 - - if-eqz v2, :cond_d - - goto :goto_8 - - :cond_d - const/4 v0, 0x0 - - :cond_e - :goto_8 - invoke-direct {p0, v0, v1}, Lcom/vk/stories/view/StoryCircleImageView;->a(ZZ)V - - if-eqz v3, :cond_f - - .line 28 - check-cast p1, Lcom/vk/dto/stories/model/CommunityGroupedStoriesContainer; - - .line 29 - invoke-static {v4}, Lcom/vk/core/util/ResUtils;->c(I)I - - move-result v0 - - invoke-virtual {p1, v0}, Lcom/vk/dto/stories/model/CommunityGroupedStoriesContainer;->j(I)Ljava/util/List; - - move-result-object p1 - - .line 30 - invoke-virtual {p0, p1}, Lcom/vk/stories/view/StoryCircleImageView;->b(Ljava/util/List;)V - - goto :goto_9 - - .line 31 - :cond_f - invoke-static {v4}, Lcom/vk/core/util/ResUtils;->c(I)I - - move-result v0 - - invoke-virtual {p1, v0}, Lcom/vk/dto/stories/model/StoriesContainer;->h(I)Ljava/lang/String; - - move-result-object p1 - - if-eqz p1, :cond_10 - - .line 32 - invoke-virtual {p0, p1}, Lcom/vk/imageloader/view/VKImageView;->a(Ljava/lang/String;)V - - goto :goto_9 - - .line 33 - :cond_10 - invoke-virtual {p0}, Lcom/vk/imageloader/view/VKImageView;->g()V - - goto :goto_9 - - .line 34 - :cond_11 - invoke-virtual {p0}, Lcom/vk/imageloader/view/VKImageView;->g()V - - .line 35 - invoke-direct {p0, v1, v1}, Lcom/vk/stories/view/StoryCircleImageView;->a(ZZ)V - - .line 36 - invoke-direct {p0, v1}, Lcom/vk/stories/view/StoryCircleImageView;->setUploadFailed(Z)V - - .line 37 - iput-boolean v1, p0, Lcom/vk/stories/view/StoryCircleImageView;->w0:Z - - .line 38 - :goto_9 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->r()V - - return-void -.end method - -.method public v()V - .locals 0 - - .line 1 - invoke-direct {p0}, Lcom/vk/stories/view/StoryCircleImageView;->r()V - - .line 2 - invoke-virtual {p0}, Landroid/widget/ImageView;->invalidate()V - - return-void -.end method diff --git a/smali/smali_classes4/com/vk/ui/photoviewer/BottomPanelController.smali b/smali/smali_classes4/com/vk/ui/photoviewer/BottomPanelController.smali index e755e8c3b..9eb751b48 100644 --- a/smali/smali_classes4/com/vk/ui/photoviewer/BottomPanelController.smali +++ b/smali/smali_classes4/com/vk/ui/photoviewer/BottomPanelController.smali @@ -102,6 +102,8 @@ move-result-object v0 + invoke-static/range {v0 .. v0}, Lru/vtosters/lite/hooks/PostViewHook;->injectPhotoViewer(Landroid/view/View;)V + const-string v1, "LayoutInflater.from(cont\u2026hoto_viewer_bottom, null)" invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V diff --git a/smali/smali_classes4/com/vk/webapp/VkUiFragment$b.smali b/smali/smali_classes4/com/vk/webapp/VkUiFragment$b.smali index 73b52c6da..30a60d009 100644 --- a/smali/smali_classes4/com/vk/webapp/VkUiFragment$b.smali +++ b/smali/smali_classes4/com/vk/webapp/VkUiFragment$b.smali @@ -132,7 +132,7 @@ move-result-object v0 - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes4/com/vk/webapp/VkUiFragment.smali b/smali/smali_classes4/com/vk/webapp/VkUiFragment.smali index 01014db67..34c5d6d33 100644 --- a/smali/smali_classes4/com/vk/webapp/VkUiFragment.smali +++ b/smali/smali_classes4/com/vk/webapp/VkUiFragment.smali @@ -1217,7 +1217,7 @@ const-string v3, "static.vk.com" - invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 @@ -1968,7 +1968,7 @@ move-result-object v1 - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes4/com/vk/webapp/bridges/AndroidBridge.smali b/smali/smali_classes4/com/vk/webapp/bridges/AndroidBridge.smali index 0974269fa..54445b12f 100644 --- a/smali/smali_classes4/com/vk/webapp/bridges/AndroidBridge.smali +++ b/smali/smali_classes4/com/vk/webapp/bridges/AndroidBridge.smali @@ -1491,7 +1491,7 @@ move-result-object p1 - invoke-static {p1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object p1 @@ -1585,7 +1585,7 @@ const-string p3, "https://oauth.vk.com/authorize" - invoke-static {p3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object p3 diff --git a/smali/smali_classes4/com/vk/webapp/bridges/VkUiConnectBridge$a.smali b/smali/smali_classes4/com/vk/webapp/bridges/VkUiConnectBridge$a.smali index 9decc0b58..a45068beb 100644 --- a/smali/smali_classes4/com/vk/webapp/bridges/VkUiConnectBridge$a.smali +++ b/smali/smali_classes4/com/vk/webapp/bridges/VkUiConnectBridge$a.smali @@ -240,7 +240,7 @@ move-result-object p3 - invoke-static {p3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object p3 diff --git a/smali/smali_classes4/com/vk/webapp/helpers/WebAppApiHelper.smali b/smali/smali_classes4/com/vk/webapp/helpers/WebAppApiHelper.smali index d522bc7c3..0cb474484 100644 --- a/smali/smali_classes4/com/vk/webapp/helpers/WebAppApiHelper.smali +++ b/smali/smali_classes4/com/vk/webapp/helpers/WebAppApiHelper.smali @@ -182,7 +182,7 @@ .line 16 :goto_0 - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity$d.smali b/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity$d.smali index 162c44c2b..a5b889827 100644 --- a/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity$d.smali +++ b/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity$d.smali @@ -97,7 +97,7 @@ const-string v4, "oauth.vk.com" - invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 diff --git a/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity.smali b/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity.smali index 4f9ecb3cb..3c47b06d8 100644 --- a/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity.smali +++ b/smali/smali_classes4/com/vtosters/lite/SDKAuthActivity.smali @@ -207,7 +207,7 @@ const-string v4, "https://oauth.vk.com/blank.html" - invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v4}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 @@ -296,7 +296,7 @@ const-string v1, "oauth.vk.com" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes4/com/vtosters/lite/VKApplication$initNetwork$1.smali b/smali/smali_classes4/com/vtosters/lite/VKApplication$initNetwork$1.smali index fa33c5ac1..bc24c3d63 100644 --- a/smali/smali_classes4/com/vtosters/lite/VKApplication$initNetwork$1.smali +++ b/smali/smali_classes4/com/vtosters/lite/VKApplication$initNetwork$1.smali @@ -82,7 +82,7 @@ .line 3 :goto_0 - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes4/com/vtosters/lite/VKApplication.smali b/smali/smali_classes4/com/vtosters/lite/VKApplication.smali index 50da9badb..9ffa51c4a 100644 --- a/smali/smali_classes4/com/vtosters/lite/VKApplication.smali +++ b/smali/smali_classes4/com/vtosters/lite/VKApplication.smali @@ -14,8 +14,6 @@ # static fields .field private static a:Z -.field private static final formatoftime:Ljava/text/SimpleDateFormat; - # direct methods .method static constructor ()V .locals 2 @@ -2521,6 +2519,8 @@ .method public onCreate()V .locals 11 + invoke-static {p0}, Lru/vtosters/lite/utils/Preferences;->init(Landroid/app/Application;)V + .line 1 invoke-static {p0}, Lcom/squareup/leakcanary/LeakCanary;->isInAnalyzerProcess(Landroid/content/Context;)Z @@ -3005,59 +3005,9 @@ .line 48 sput-boolean v7, Lcom/vtosters/lite/VKApplication;->a:Z - new-instance v0, Ljava/text/SimpleDateFormat; - - invoke-static {}, Lru/vtosters/lite/hooks/DateHook;->getDateFormat()Ljava/lang/String; - - move-result-object v3 - - invoke-direct {v0, v3}, Ljava/text/SimpleDateFormat;->(Ljava/lang/String;)V - - sput-object v0, Lcom/vtosters/lite/VKApplication;->formatoftime:Ljava/text/SimpleDateFormat; - return-void .end method -.method public static getFullTime(I)Ljava/lang/String; - .registers 6 - .param p0, "s" # I - - .line 17 - invoke-static {}, Lru/vtosters/lite/hooks/DateHook;->fulltime()Z - - move-result v0 - - if-eqz v0, :cond_17 - - .line 18 - new-instance v0, Ljava/util/Date; - - int-to-long v1, p0 - - const-wide/16 v3, 0x3e8 - - mul-long v1, v1, v3 - - invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V - - .line 19 - .local v0, "d":Ljava/util/Date; - sget-object v1, Lcom/vtosters/lite/VKApplication;->formatoftime:Ljava/text/SimpleDateFormat; - - invoke-virtual {v1, v0}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String; - - move-result-object v1 - - return-object v1 - - .line 21 - .end local v0 # "d":Ljava/util/Date; - :cond_17 - const/4 v0, 0x0 - - return-object v0 -.end method - .method public onLowMemory()V .locals 2 diff --git a/smali/smali_classes4/com/vtosters/lite/ValidationActivity$a.smali b/smali/smali_classes4/com/vtosters/lite/ValidationActivity$a.smali index d19aa5770..fa3b5c744 100644 --- a/smali/smali_classes4/com/vtosters/lite/ValidationActivity$a.smali +++ b/smali/smali_classes4/com/vtosters/lite/ValidationActivity$a.smali @@ -326,7 +326,7 @@ const-string v3, "oauth.vk.com" - invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes4/com/vtosters/lite/api/AppVKApiCallback.smali b/smali/smali_classes4/com/vtosters/lite/api/AppVKApiCallback.smali index d39e6e157..65086030b 100644 --- a/smali/smali_classes4/com/vtosters/lite/api/AppVKApiCallback.smali +++ b/smali/smali_classes4/com/vtosters/lite/api/AppVKApiCallback.smali @@ -208,7 +208,7 @@ const-string v0, "api.vk.com" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 @@ -305,7 +305,7 @@ const-string v3, "api.vk.com" - invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v3}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 diff --git a/smali/smali_classes4/com/vtosters/lite/api/execute/GetFullUserProfile.smali b/smali/smali_classes4/com/vtosters/lite/api/execute/GetFullUserProfile.smali index cf4de57eb..21921923e 100644 --- a/smali/smali_classes4/com/vtosters/lite/api/execute/GetFullUserProfile.smali +++ b/smali/smali_classes4/com/vtosters/lite/api/execute/GetFullUserProfile.smali @@ -133,9 +133,7 @@ move-object/from16 v1, p2 - const v2, 0x0 - - invoke-static {v1, v2}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHook(Lorg/json/JSONObject;Z)Lorg/json/JSONObject; + invoke-static {v1}, Lru/vtosters/lite/hooks/OnlineFormatterHook;->onlineHook(Lorg/json/JSONObject;)Lorg/json/JSONObject; move-result-object v1 diff --git a/smali/smali_classes4/com/vtosters/lite/api/newsfeed/NewsfeedGet.smali b/smali/smali_classes4/com/vtosters/lite/api/newsfeed/NewsfeedGet.smali index 9db3fd928..1731cca26 100644 --- a/smali/smali_classes4/com/vtosters/lite/api/newsfeed/NewsfeedGet.smali +++ b/smali/smali_classes4/com/vtosters/lite/api/newsfeed/NewsfeedGet.smali @@ -46,22 +46,7 @@ .method static constructor ()V .locals 7 - const-string v0, "post" - - const-string v1, "photo" - - const-string v2, "photo_tag" - - const-string v3, "friends_recomm" - - const-string v4, "app_widget" - - const-string v5, "promo_button" - - const-string v6, "authors_rec" - - .line 1 - filled-new-array/range {v0 .. v6}, [Ljava/lang/String; + invoke-static {}, Lru/vtosters/lite/hooks/NewsfeedHook;->feedParams()[Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes4/com/vtosters/lite/data/Analytics.smali b/smali/smali_classes4/com/vtosters/lite/data/Analytics.smali index 27294cf0e..c5c1eeba9 100644 --- a/smali/smali_classes4/com/vtosters/lite/data/Analytics.smali +++ b/smali/smali_classes4/com/vtosters/lite/data/Analytics.smali @@ -2342,9 +2342,7 @@ iget-object v0, v0, Lcom/vtosters/lite/data/Analytics;->o:Ljava/lang/String; - invoke-static {v0}, Lru/vtosters/lite/hooks/DeviceInfoHook;->getDeviceInfo(Ljava/lang/String;)Ljava/lang/String; - - move-result-object v0 + const-string v0, "-3" return-object v0 .end method diff --git a/smali/smali_classes4/com/vtosters/lite/fragments/messages/chat/vc/MsgSendVc.smali b/smali/smali_classes4/com/vtosters/lite/fragments/messages/chat/vc/MsgSendVc.smali index f279d1439..2d025b1d7 100644 --- a/smali/smali_classes4/com/vtosters/lite/fragments/messages/chat/vc/MsgSendVc.smali +++ b/smali/smali_classes4/com/vtosters/lite/fragments/messages/chat/vc/MsgSendVc.smali @@ -2722,7 +2722,9 @@ .line 39 sget-object p1, Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter;->c:Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter; - invoke-virtual {v0}, Lcom/vk/im/engine/models/messages/MsgFromUser;->f()Ljava/lang/String; + const/4 v4, 0x0 + + invoke-static {v0, v4}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Lcom/vk/im/engine/models/messages/MsgFromUser;Z)Ljava/lang/String; move-result-object v1 @@ -6164,7 +6166,7 @@ .end method .method public d(Landroid/os/Bundle;)V - .locals 7 + .locals 8 if-eqz p1, :cond_6 @@ -6299,16 +6301,10 @@ .line 11 :cond_4 - sget-object v0, Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter;->c:Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter; - sget-object v1, Lcom/vtosters/lite/fragments/messages/chat/vc/MsgSendVc;->Z:Ljava/lang/String; invoke-virtual {p1, v1}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String; - move-result-object v1 - - invoke-virtual {v0, v1}, Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter;->a(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; - move-result-object v2 .line 12 @@ -6351,6 +6347,22 @@ move-object v4, v0 .line 15 + invoke-virtual {v5}, Lcom/vk/im/engine/models/messages/Msg;->v1()I + + move-result v7 + + const/4 v8, 0x0 + + invoke-static {v2, v7, v8}, Lru/vtosters/lite/encryption/EncryptProvider;->decryptMessage(Ljava/lang/CharSequence;IZ)Ljava/lang/CharSequence; + + move-result-object v2 + + sget-object v0, Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter;->c:Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter; + + invoke-virtual {v0, v2}, Lcom/vk/im/ui/components/dialogs_list/formatters/MentionsFormatter;->a(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; + + move-result-object v2 + invoke-direct/range {v1 .. v6}, Lcom/vtosters/lite/fragments/messages/chat/vc/MsgSendVc;->a(Ljava/lang/CharSequence;Ljava/util/List;Ljava/util/List;Lcom/vk/im/engine/models/messages/MsgFromUser;Lcom/vk/im/engine/models/ProfilesSimpleInfo;)V return-void diff --git a/smali/smali_classes4/com/vtosters/lite/fragments/money/MoneyWebViewFragment$a.smali b/smali/smali_classes4/com/vtosters/lite/fragments/money/MoneyWebViewFragment$a.smali index 66584e173..ac46576dd 100644 --- a/smali/smali_classes4/com/vtosters/lite/fragments/money/MoneyWebViewFragment$a.smali +++ b/smali/smali_classes4/com/vtosters/lite/fragments/money/MoneyWebViewFragment$a.smali @@ -68,7 +68,7 @@ const-string v1, "oauth.vk.com" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes4/com/vtosters/lite/fragments/n2/DebugDomainsFilter.smali b/smali/smali_classes4/com/vtosters/lite/fragments/n2/DebugDomainsFilter.smali index bfa41bc28..fac1a3cc0 100644 --- a/smali/smali_classes4/com/vtosters/lite/fragments/n2/DebugDomainsFilter.smali +++ b/smali/smali_classes4/com/vtosters/lite/fragments/n2/DebugDomainsFilter.smali @@ -305,7 +305,7 @@ :goto_5 const-string p2, "api.vk.com" - invoke-static {p2}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {p2}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object p2 diff --git a/smali/smali_classes4/com/vtosters/lite/fragments/n2/SettingsDebugFragment.smali b/smali/smali_classes4/com/vtosters/lite/fragments/n2/SettingsDebugFragment.smali index c6c9b5fc2..26f461a7a 100644 --- a/smali/smali_classes4/com/vtosters/lite/fragments/n2/SettingsDebugFragment.smali +++ b/smali/smali_classes4/com/vtosters/lite/fragments/n2/SettingsDebugFragment.smali @@ -1986,7 +1986,7 @@ const-string v1, "static.vk.com" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 @@ -2004,7 +2004,7 @@ const-string v2, "previous_oauth" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 @@ -2018,7 +2018,7 @@ const-string v1, "api.vk.com" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 diff --git a/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment$a.smali b/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment$a.smali index dac7985b7..58206f0cb 100644 --- a/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment$a.smali +++ b/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment$a.smali @@ -40,7 +40,7 @@ const-string v1, "oauth.vk.com" - invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v1}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 @@ -182,7 +182,7 @@ const-string v0, "https://oauth.vk.com/blank.html#state=webview_refresh_access_token" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment.smali b/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment.smali index d405868a8..9476e7fd2 100644 --- a/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment.smali +++ b/smali/smali_classes4/com/vtosters/lite/general/fragments/WebViewFragment.smali @@ -1012,7 +1012,7 @@ const-string v2, "https://oauth.vk.com/webview_token" - invoke-static {v2}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v2}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 @@ -1202,7 +1202,7 @@ const-string v0, "https://oauth.vk.com/webview_token" - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes5/com/vtosters/lite/im/ImEngineProvider$getApiManager$apiConfig$1.smali b/smali/smali_classes5/com/vtosters/lite/im/ImEngineProvider$getApiManager$apiConfig$1.smali index fd0ace6cd..bbd7a5995 100644 --- a/smali/smali_classes5/com/vtosters/lite/im/ImEngineProvider$getApiManager$apiConfig$1.smali +++ b/smali/smali_classes5/com/vtosters/lite/im/ImEngineProvider$getApiManager$apiConfig$1.smali @@ -70,7 +70,7 @@ move-result-object v0 - invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v0}, Lru/vtosters/lite/proxy/api/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 diff --git a/smali/smali_classes5/com/vtosters/lite/ui/CircleColorDrawable.smali b/smali/smali_classes5/com/vtosters/lite/ui/CircleColorDrawable.smali index 2638804b7..e7893c6e6 100644 --- a/smali/smali_classes5/com/vtosters/lite/ui/CircleColorDrawable.smali +++ b/smali/smali_classes5/com/vtosters/lite/ui/CircleColorDrawable.smali @@ -204,7 +204,7 @@ iget-object v3, p0, Lcom/vtosters/lite/ui/CircleColorDrawable;->c:Landroid/graphics/Paint; - invoke-virtual {p1, v0, v0, v2, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, v0, v0, v2, v3}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V .line 6 iget-boolean v2, p0, Lcom/vtosters/lite/ui/CircleColorDrawable;->e:Z @@ -226,7 +226,7 @@ iget-object v1, p0, Lcom/vtosters/lite/ui/CircleColorDrawable;->b:Landroid/graphics/Paint; - invoke-virtual {p1, v0, v0, v2, v1}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, v0, v0, v2, v1}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V .line 8 :cond_0 diff --git a/smali/smali_classes5/com/vtosters/lite/ui/WriteBar.smali b/smali/smali_classes5/com/vtosters/lite/ui/WriteBar.smali index 08079f8e0..8451bfaf1 100644 --- a/smali/smali_classes5/com/vtosters/lite/ui/WriteBar.smali +++ b/smali/smali_classes5/com/vtosters/lite/ui/WriteBar.smali @@ -4500,11 +4500,7 @@ .line 176 iget-object v0, p0, Lcom/vtosters/lite/ui/WriteBar;->k0:Lcom/vk/im/ui/views/ReplyView; - invoke-virtual {p1}, Lcom/vk/im/engine/models/messages/Msg;->H1()Z - - move-result v1 - - invoke-virtual {v0, p1, p2, v1}, Lcom/vk/im/ui/views/ReplyView;->a(Lcom/vk/im/engine/models/messages/WithUserContent;Lcom/vk/im/engine/models/ProfilesSimpleInfo;Z)V + invoke-static {v0, p1, p2}, Lru/vtosters/lite/hooks/WritebarReplyHook;->injectWithDecrypt(Lcom/vk/im/ui/views/ReplyView;Lcom/vk/im/engine/models/messages/MsgFromUser;Lcom/vk/im/engine/models/ProfilesSimpleInfo;)V .line 177 iput-object p1, p0, Lcom/vtosters/lite/ui/WriteBar;->m0:Lcom/vk/im/engine/models/messages/MsgFromUser; diff --git a/smali/smali_classes5/com/vtosters/lite/ui/refreshlayout/CircleImageView$a.smali b/smali/smali_classes5/com/vtosters/lite/ui/refreshlayout/CircleImageView$a.smali index b862ef18e..e017b3177 100644 --- a/smali/smali_classes5/com/vtosters/lite/ui/refreshlayout/CircleImageView$a.smali +++ b/smali/smali_classes5/com/vtosters/lite/ui/refreshlayout/CircleImageView$a.smali @@ -143,7 +143,7 @@ iget-object v3, p0, Lcom/vtosters/lite/ui/refreshlayout/CircleImageView$a;->b:Landroid/graphics/Paint; - invoke-virtual {p1, v0, v1, v2, v3}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, v0, v1, v2, v3}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V .line 4 iget v2, p0, Lcom/vtosters/lite/ui/refreshlayout/CircleImageView$a;->c:I @@ -152,7 +152,7 @@ int-to-float v2, v2 - invoke-virtual {p1, v0, v1, v2, p2}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {p1, v0, v1, v2, p2}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(Landroid/graphics/Canvas;FFFLandroid/graphics/Paint;)V return-void .end method diff --git a/smali/smali_classes5/com/vtosters/lite/utils/Utils.smali b/smali/smali_classes5/com/vtosters/lite/utils/Utils.smali index 5e713a8aa..72eaa8c81 100644 --- a/smali/smali_classes5/com/vtosters/lite/utils/Utils.smali +++ b/smali/smali_classes5/com/vtosters/lite/utils/Utils.smali @@ -327,10 +327,6 @@ if-eqz v0, :cond_0 - const-string v0, "ads_disabled" - - .line 16 - invoke-static {v1, v0}, Lcom/vtosters/lite/utils/Utils;->a(Ljava/lang/StringBuilder;Ljava/lang/String;)V .line 17 :cond_0 @@ -742,45 +738,7 @@ invoke-direct {v0, p0}, Ljava/util/HashSet;->(Ljava/util/Collection;)V - const-string p0, "ads_app" - - .line 12 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_site" - - .line 13 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_post" - - .line 14 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_app_slider" - - .line 15 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_site_slider" - - .line 16 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_app_video" - - .line 17 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_post_pretty_cards" - - .line 18 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z - - const-string p0, "ads_post_snippet_video" - - .line 19 - invoke-virtual {v0, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z + invoke-static {v0}, Lru/vtosters/lite/hooks/NewsfeedHook;->adsParams(Ljava/util/HashSet;)V .line 20 invoke-virtual {v0}, Ljava/util/HashSet;->size()I