Compare commits
29
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4cb73d669a | ||
|
|
dfddb13d2d | ||
|
|
f17c57bac2 | ||
|
|
a6c4c376c3 | ||
|
|
3e4f14678e | ||
|
|
f860eb2cc0 | ||
|
|
2a6b9da4ef | ||
|
|
6224a4afdf | ||
|
|
8650124860 | ||
|
|
5e35a61473 | ||
|
|
578f1a2221 | ||
|
|
0fb3ff6c53 | ||
|
|
7fbfbd1e1e | ||
|
|
71de558e5c | ||
|
|
606b89a4ec | ||
|
|
b4bdb3070a | ||
|
|
9f4b5990b7 | ||
|
|
93b28b0a8f | ||
|
|
ed0587b9b6 | ||
|
|
6ce72dfc8b | ||
|
|
65f44d32ca | ||
|
|
8e57d5ab44 | ||
|
|
c2b6bffb17 | ||
|
|
550fbf8f6c | ||
|
|
79d3287143 | ||
|
|
2242e37315 | ||
|
|
7099da0387 | ||
|
|
9b29288351 | ||
|
|
e000bd7971 |
Binary file not shown.
|
After Width: | Height: | Size: 545 B |
Binary file not shown.
|
After Width: | Height: | Size: 819 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 730 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
+10
-3
@@ -1,9 +1,8 @@
|
||||
import java.nio.file.Files
|
||||
import org.apache.tools.ant.taskdefs.condition.Os
|
||||
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipFile
|
||||
import java.util.zip.ZipInputStream
|
||||
import org.apache.tools.ant.taskdefs.condition.Os
|
||||
|
||||
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
@@ -149,6 +148,14 @@ task buildAndInstallVTL(type: Exec) {
|
||||
}
|
||||
}
|
||||
|
||||
task buildAndLaunchVTL(type: Exec) {
|
||||
dependsOn('buildAndInstallVTL')
|
||||
if (Os.isFamily("unix") || Os.isFamily("mac"))
|
||||
commandLine 'bash', '-c', 'adb shell monkey -p com.vtosters.lite -c android.intent.category.LAUNCHER 1'
|
||||
else
|
||||
commandLine 'adb', 'shell', 'monkey', '-p', 'com.vtosters.lite', '-c', 'android.intent.category.LAUNCHER', '1'
|
||||
}
|
||||
|
||||
exportDex.dependsOn('assembleRelease')
|
||||
clean.dependsOn('cleanVersionFile')
|
||||
versionFile.dependsOn('cleanVersionFile')
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
package com.aefyr.tsg.g2;
|
||||
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.Log;
|
||||
|
||||
import com.aefyr.tsg.g2.sql.TelegramStickersDbHelper;
|
||||
import com.aefyr.tsg.g2.stickersgrabber.TelegramStickersGrabber;
|
||||
import com.aefyr.tsg.g2.stickersgrabber.TelegramStickersPackInfo;
|
||||
import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@@ -19,7 +17,7 @@ import java.util.List;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
/**
|
||||
* Created by Aefyr on 19.05.2018.
|
||||
@@ -227,6 +225,7 @@ public class TelegramStickersService {
|
||||
currentlyDownloading.add(id.toLowerCase());
|
||||
notificationsHelper.packStartedDownloading(newPack);
|
||||
|
||||
|
||||
grabber.enableProxy();
|
||||
grabber.grabPack(id, packFolder, pack.version, new TelegramStickersGrabber.PackDownloadListener() {
|
||||
@Override
|
||||
@@ -383,7 +382,7 @@ public class TelegramStickersService {
|
||||
getPacksListReference().set(li1, p2);
|
||||
}
|
||||
|
||||
interface StickersEventsListener {
|
||||
public interface StickersEventsListener {
|
||||
void onPackAdded(TelegramStickersPack pack, int atIndex);
|
||||
|
||||
void onPackRemoved(TelegramStickersPack pack, int atIndex);
|
||||
|
||||
@@ -191,7 +191,7 @@ public class DownloadUtils {
|
||||
if (!file.exists()) {
|
||||
return false;
|
||||
}
|
||||
Intent intent = new Intent("android.intent.action.VIEW");
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
var mimeType = FileUtils.f(file);
|
||||
var uri = FileUtils.uriFromFile(file);
|
||||
@@ -222,7 +222,7 @@ public class DownloadUtils {
|
||||
var mimeType = FileUtils.f(file);
|
||||
var uri = FileUtils.uriFromFile(file);
|
||||
|
||||
Intent intent = new Intent("android.intent.action.VIEW");
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setDataAndType(uri, mimeType);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
Log.d("DownloadUtils", "openFile: " + file.getAbsolutePath() + "| mimetype " + mimeType + "| uri " + uri);
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
package com.vk.stickers.details;
|
||||
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.vk.core.ui.themes.VKThemeHelper;
|
||||
import com.vk.core.util.Screen;
|
||||
import com.vk.dto.stickers.StickerItem;
|
||||
import com.vk.dto.stickers.StickerStockItem;
|
||||
import com.vk.extensions.ViewExtKt;
|
||||
import com.vk.imageloader.view.VKImageView;
|
||||
import com.vk.stickers.views.VKStickerImageView;
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public final class StickerDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
private final List<StickerItem> mItems;
|
||||
|
||||
private final StickerStockItem mItem;
|
||||
private boolean mIsTelegramPack = false;
|
||||
|
||||
public StickerDetailsAdapter(StickerStockItem stickerStockItem) {
|
||||
this.mItem = stickerStockItem;
|
||||
this.mItems = this.mItem.T1();
|
||||
}
|
||||
|
||||
public void setTelegramPack(boolean state) {
|
||||
mIsTelegramPack = state;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
return new c(viewGroup);
|
||||
case 1:
|
||||
return new d(viewGroup);
|
||||
case 2:
|
||||
return new b(viewGroup);
|
||||
default:
|
||||
throw new IllegalArgumentException("Unknown viewType: " + i);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
|
||||
switch(getItemViewType(i)) {
|
||||
case 0:
|
||||
((c) viewHolder).a(this.mItem);
|
||||
break;
|
||||
case 1:
|
||||
((d) viewHolder).a(this.mItems.get(H(i)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mIsTelegramPack ? mItems.size() : this.mItems.size() + 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int i) {
|
||||
if (mIsTelegramPack) return 1;
|
||||
if (i == 0) {
|
||||
return 0;
|
||||
}
|
||||
return i == k() ? 2 : 1;
|
||||
}
|
||||
|
||||
public int H(int i) {
|
||||
return mIsTelegramPack ? i : i - j();
|
||||
}
|
||||
|
||||
public boolean I(int i) {
|
||||
return getItemViewType(i) == 1;
|
||||
}
|
||||
|
||||
public int j() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int k() {
|
||||
return l() + 1;
|
||||
}
|
||||
|
||||
public int l() {
|
||||
return (this.mItems.size() + j()) - 1;
|
||||
}
|
||||
|
||||
public int m() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public List<StickerItem> n() {
|
||||
return this.mItems;
|
||||
}
|
||||
|
||||
public boolean v() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static final class b extends RecyclerView.ViewHolder {
|
||||
public b(ViewGroup viewGroup) {
|
||||
super(ViewExtKt.a(viewGroup, R.layout.sticker_details_hold_to_view_item, false));
|
||||
}
|
||||
}
|
||||
|
||||
private final class c extends RecyclerView.ViewHolder {
|
||||
private final VKImageView mImageBg;
|
||||
private final VKImageView mPackImage;
|
||||
private final ImageView mAnimPack;
|
||||
private final TextView mPackTitle;
|
||||
private final TextView mPackAuthor;
|
||||
private final TextView mPackSubtitle;
|
||||
private final TextView mDescription;
|
||||
|
||||
public c(ViewGroup viewGroup) {
|
||||
super(LayoutInflater.from(VKThemeHelper.u()).inflate(R.layout.sticker_details_info_item, viewGroup, false));
|
||||
this.mImageBg = this.itemView.findViewById(R.id.pack_image_bg);
|
||||
this.mPackImage = this.itemView.findViewById(R.id.pack_image);
|
||||
this.mAnimPack = this.itemView.findViewById(R.id.anim_pack);
|
||||
this.mPackTitle = this.itemView.findViewById(R.id.pack_title);
|
||||
this.mPackAuthor = this.itemView.findViewById(R.id.pack_author);
|
||||
this.mPackSubtitle = this.itemView.findViewById(R.id.pack_subtitle);
|
||||
this.mDescription = this.itemView.findViewById(R.id.description);
|
||||
}
|
||||
|
||||
public void a(StickerStockItem stickerStockItem) {
|
||||
this.mImageBg.a(stickerStockItem.R1());
|
||||
this.mImageBg.getHierarchy().a().setVisible(true, true);
|
||||
this.mImageBg.getHierarchy().a(0);
|
||||
this.mImageBg.getHierarchy().e(new ColorDrawable(VKThemeHelper.d(R.attr.placeholder_icon_background)));
|
||||
|
||||
this.mPackImage.a(stickerStockItem.h(Screen.a(68)));
|
||||
this.mPackImage.getHierarchy().a().setVisible(true, true);
|
||||
this.mPackImage.getHierarchy().a(0);
|
||||
|
||||
if (stickerStockItem.E1()) {
|
||||
ViewExtKt.r(this.mAnimPack);
|
||||
} else {
|
||||
ViewExtKt.p(this.mAnimPack);
|
||||
}
|
||||
|
||||
this.mPackTitle.setText(stickerStockItem.getTitle());
|
||||
|
||||
this.mPackAuthor.setText(stickerStockItem.v1());
|
||||
|
||||
ViewExtKt.p(this.mPackSubtitle);
|
||||
|
||||
this.mDescription.setText(stickerStockItem.C1());
|
||||
}
|
||||
}
|
||||
|
||||
private static final class d extends RecyclerView.ViewHolder {
|
||||
private final VKStickerImageView mImage;
|
||||
|
||||
public d(ViewGroup viewGroup) {
|
||||
super(new VKStickerImageView(viewGroup.getContext()));
|
||||
this.mImage = (VKStickerImageView) itemView;
|
||||
this.mImage.setAspectRatio(1.0f);
|
||||
this.mImage.setClickable(true);
|
||||
this.mImage.getHierarchy().a().setVisible(true, true);
|
||||
this.mImage.getHierarchy().a(0);
|
||||
this.mImage.setContentDescription(this.mImage.getContext().getString(R.string.stickers_accessibility_sticker));
|
||||
}
|
||||
|
||||
public void a(StickerItem stickerItem) {
|
||||
this.mImage.a(stickerItem.h(Screen.a(80)));
|
||||
this.mImage.setTag(R.id.id, stickerItem.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,179 +34,6 @@ import ru.vtosters.lite.utils.AccountManagerUtils;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
|
||||
public class JsonInjectors {
|
||||
public static JSONObject profileButton(JSONObject orig) {
|
||||
try {
|
||||
int id = orig.getInt("id");
|
||||
|
||||
var newItem = new JSONArray();
|
||||
|
||||
if (orig.has("buttons")) {
|
||||
newItem = orig.getJSONArray("buttons");
|
||||
}
|
||||
|
||||
if (!haveDonateButton() && id == AccountManagerUtils.getUserId()) {
|
||||
newItem.put(donateRecomm());
|
||||
}
|
||||
|
||||
if (!orig.has("type") && AccountManagerUtils.isVKTester()) {
|
||||
newItem.put(vktesters(id));
|
||||
}
|
||||
|
||||
orig.put("buttons", newItem);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return orig;
|
||||
}
|
||||
|
||||
public static JSONObject donateRecomm() {
|
||||
try {
|
||||
var title = AndroidUtils.getString(R.string.donate_to_vtl);
|
||||
var link = "https://vk.com/vtosters_official";
|
||||
var text_color = "2D81E0";
|
||||
|
||||
var json = new JSONObject();
|
||||
var icons = new JSONArray();
|
||||
|
||||
var action = new JSONObject().put("target", "internal");
|
||||
action.put("type", "open_url"); // may be open_url, open_internal_vkui, open_game, help_hint, show_full_post, open_vkapp, show_recommendations_for_post and groups_advertisement
|
||||
action.put("url", link);
|
||||
json.put("action", action);
|
||||
|
||||
json.put("title", title);
|
||||
|
||||
var icon1 = new JSONObject();
|
||||
icon1.put("url", "https://sun2-10.userapi.com/NLd_rNpGuSaBnPV6O-j5mqCGZk8BK8drAMd2LQ/5R-DEF37PFs.png");
|
||||
icon1.put("width", "20");
|
||||
icon1.put("height", "20");
|
||||
icons.put(icon1);
|
||||
|
||||
var icon2 = new JSONObject();
|
||||
icon2.put("url", "https://sun2-12.userapi.com/N8y9pU1meJq_eug-wB1u-HUuGyMqDfdq7A025w/A4Aio-xuLY8.png");
|
||||
icon2.put("width", "40");
|
||||
icon2.put("height", "40");
|
||||
icons.put(icon2);
|
||||
|
||||
var icon3 = new JSONObject();
|
||||
icon3.put("url", "https://sun2-9.userapi.com/3Hx4hff63_2Lt6wjjthJMF_3QLUswNNlQKoAXQ/oyzEu1NL9T8.png");
|
||||
icon3.put("width", "80");
|
||||
icon3.put("height", "80");
|
||||
icons.put(icon3);
|
||||
|
||||
json.put("icons", icons);
|
||||
|
||||
json.put("text_color", text_color);
|
||||
|
||||
return json;
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static JSONObject vktesters(int id) {
|
||||
try {
|
||||
var title = AndroidUtils.getString(R.string.tester_profile);
|
||||
var text_color = "2D81E0";
|
||||
var link = "https://" + getStatic() + "/bugs?lang=" + LangUtils.a() + "#/reporter" + id;
|
||||
|
||||
var json = new JSONObject();
|
||||
var icons = new JSONArray();
|
||||
|
||||
var action = new JSONObject();
|
||||
action.put("target", "internal");
|
||||
action.put("type", "open_internal_vkui");
|
||||
action.put("url", link);
|
||||
json.put("action", action);
|
||||
|
||||
json.put("title", title);
|
||||
|
||||
var icon1 = new JSONObject();
|
||||
icon1.put("url", "https://sun2-10.userapi.com/NLd_rNpGuSaBnPV6O-j5mqCGZk8BK8drAMd2LQ/5R-DEF37PFs.png");
|
||||
icon1.put("width", "20");
|
||||
icon1.put("height", "20");
|
||||
icons.put(icon1);
|
||||
|
||||
var icon2 = new JSONObject();
|
||||
icon2.put("url", "https://sun2-12.userapi.com/N8y9pU1meJq_eug-wB1u-HUuGyMqDfdq7A025w/A4Aio-xuLY8.png");
|
||||
icon2.put("width", "40");
|
||||
icon2.put("height", "40");
|
||||
icons.put(icon2);
|
||||
|
||||
var icon3 = new JSONObject();
|
||||
icon3.put("url", "https://sun2-9.userapi.com/3Hx4hff63_2Lt6wjjthJMF_3QLUswNNlQKoAXQ/oyzEu1NL9T8.png");
|
||||
icon3.put("width", "80");
|
||||
icon3.put("height", "80");
|
||||
icons.put(icon3);
|
||||
|
||||
json.put("icons", icons);
|
||||
|
||||
json.put("text_color", text_color);
|
||||
return json;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static JSONObject convBar(JSONObject orig) {
|
||||
var peerid = Objects.requireNonNull(orig.optJSONObject("peer")).optInt("id");
|
||||
|
||||
var pic = "https://image.pngaaa.com/641/326641-middle.png"; // can be null
|
||||
var text = AndroidUtils.getString(R.string.no_data_error);
|
||||
var link = "https://vtosters.app"; // can be null
|
||||
var linktitle = "Test button"; // can be null
|
||||
|
||||
var hasIcon = !pic.isEmpty();
|
||||
var hasButton = !link.isEmpty();
|
||||
|
||||
var isPicture = pic.endsWith(".png") || pic.endsWith(".jpg") || pic.endsWith(".jpeg") || pic.endsWith(".webp");
|
||||
|
||||
if (isVerified(peerid))
|
||||
text = AndroidUtils.getString(R.string.i_bought) + " VTosters Premium";
|
||||
if (isPrometheus(peerid))
|
||||
text = AndroidUtils.getString(R.string.i_bought) + " VTosters Premium Gold Prime Pro Plus";
|
||||
if (isDeveloper(peerid)) text = AndroidUtils.getString(R.string.i_created_poop);
|
||||
|
||||
if (!isVerified(peerid) || text.equals("") || peerid == AccountManagerUtils.getUserId() || peerid == 0) {
|
||||
if (getBoolValue("convBarRecomm", false)) {
|
||||
return null;
|
||||
} else {
|
||||
return orig.optJSONObject("conversation_bar");
|
||||
}
|
||||
}
|
||||
|
||||
if (!dev()) return orig.optJSONObject("conversation_bar"); // for devs only
|
||||
|
||||
try {
|
||||
var json = new JSONObject();
|
||||
|
||||
var buttonsJson = new JSONObject();
|
||||
buttonsJson.put("layout", "tertiary");
|
||||
buttonsJson.put("text", linktitle);
|
||||
buttonsJson.put("type", "link");
|
||||
buttonsJson.put("link", link);
|
||||
|
||||
var buttonsjson = new JSONArray(); // max 3 buttons in array
|
||||
if (hasButton) buttonsjson.put(buttonsJson);
|
||||
|
||||
json.put("name", "group_admin_welcome");
|
||||
json.put("text", text);
|
||||
json.put("buttons", buttonsjson);
|
||||
if (hasIcon && isPicture) {
|
||||
json.put("icon", pic);
|
||||
}
|
||||
return json;
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static JSONObject menu(JSONObject orig) throws JSONException {
|
||||
var Special = orig.optJSONArray("special");
|
||||
var Main = orig.getJSONArray("main");
|
||||
@@ -426,8 +253,4 @@ public class JsonInjectors {
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
public static boolean haveDonateButton() {
|
||||
return hasVerification() || new Random().nextInt(6) != 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.os.Build;
|
||||
|
||||
import ru.vtosters.lite.concurrent.VTExecutors;
|
||||
import ru.vtosters.lite.downloaders.notifications.NotificationChannels;
|
||||
import ru.vtosters.lite.ssfs.UsersList;
|
||||
import ru.vtosters.lite.ui.dialogs.DisableBattery;
|
||||
import ru.vtosters.lite.ui.dialogs.InstallGMS;
|
||||
import ru.vtosters.lite.ui.dialogs.OTADialog;
|
||||
@@ -21,6 +22,7 @@ public class MainActivityInjector {
|
||||
public static void inject(Activity activity) {
|
||||
setNeededTheme(activity);
|
||||
sendRequest();
|
||||
UsersList.getUsersList();
|
||||
if (checkupdates()) OTADialog.checkUpdates(activity);
|
||||
VTExecutors.getIoScheduler().a(DeletedMessagesHandler::reloadMessagesList); // ioScheduler
|
||||
Start.alert(activity);
|
||||
|
||||
@@ -189,7 +189,7 @@ public class PhotoViewer {
|
||||
private static void searchDialog(Context context, String url) {
|
||||
if (selectedEngine() == 0) {
|
||||
var items = new String[]{
|
||||
"Google", "Yandex", "Bing", "TraceMoe", "Ascii2d", "Saucenao"
|
||||
"Yandex", "Google", "Bing", "TraceMoe", "Ascii2d", "Saucenao"
|
||||
};
|
||||
|
||||
new VkAlertDialog.Builder(context)
|
||||
@@ -207,6 +207,11 @@ public class PhotoViewer {
|
||||
}
|
||||
|
||||
private static void searchPhoto(int i, String url) {
|
||||
if (url == null || url.isEmpty()) {
|
||||
Log.d("PhotoViewer", "url is null or empty");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (i) {
|
||||
case 1:
|
||||
searchWithYandex(url);
|
||||
@@ -230,7 +235,6 @@ public class PhotoViewer {
|
||||
}
|
||||
|
||||
private static void searchPhoto(String url) {
|
||||
if (url == null || url.isEmpty()) return;
|
||||
searchPhoto(selectedEngine(), url);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ public class CatalogJsonInjector {
|
||||
var useOldAppVer = getBoolValue("useOldAppVer", false);
|
||||
var isUsersCatalog = oldItems.optJSONObject(0).optString("url").equals("https://vk.com/audios" + getUserId() + "?section=" + (useOldAppVer ? "all" : "general"));
|
||||
|
||||
if (oldItems != null && isUsersCatalog) {
|
||||
if (isUsersCatalog) {
|
||||
var blocks = oldItems.optJSONObject(0).optJSONArray("blocks");
|
||||
|
||||
if (!useOldAppVer) {
|
||||
@@ -93,19 +93,6 @@ public class CatalogJsonInjector {
|
||||
oldItems.put(new JSONObject().put("id", id).put("title", title).put("url", url));
|
||||
}
|
||||
|
||||
var recent = fetchCatalogId("https://vk.com/audio?section=recent");
|
||||
if (recent != null) {
|
||||
var catalogarr = recent.optJSONObject("catalog").optJSONArray("sections").optJSONObject(0);
|
||||
|
||||
var title = catalogarr.optString("title");
|
||||
var id = catalogarr.optString("id");
|
||||
var url = catalogarr.optString("url");
|
||||
|
||||
if (dev()) Log.d("VKMusic", "Added " + title + " in music sections");
|
||||
|
||||
oldItems.put(new JSONObject().put("id", id).put("title", title).put("url", url));
|
||||
}
|
||||
|
||||
for (int i = 0; i < oldItems.length(); i++) {
|
||||
var item = oldItems.optJSONObject(i);
|
||||
var title = item.optString("title");
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package ru.vtosters.lite.ssfs;
|
||||
|
||||
import android.util.Log;
|
||||
import okhttp3.Request;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.di.singleton.VtOkHttpClient;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class Handler {
|
||||
private static final String TAG = "SSFSHandler";
|
||||
|
||||
public static JSONObject getBanner(int id) {
|
||||
Request request = new Request.a()
|
||||
.b(Utils.getDomain() + "/api/getChatBanner" + "?user_id=" + id)
|
||||
.a();
|
||||
|
||||
try {
|
||||
return new JSONObject(VtOkHttpClient.getInstance().a(request).execute().a().g()).getJSONObject("response");
|
||||
} catch (JSONException | IOException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getDescription(int id) {
|
||||
Request request = new Request.a()
|
||||
.b(Utils.getDomain() + "/api/getServiceDescription" + "?user_id=" + id)
|
||||
.a();
|
||||
|
||||
try {
|
||||
return new JSONObject(VtOkHttpClient.getInstance().a(request).execute().a().g()).getString("response");
|
||||
} catch (JSONException | IOException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package ru.vtosters.lite.ssfs;
|
||||
|
||||
import android.util.Log;
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.utils.LifecycleUtils;
|
||||
import ru.vtosters.lite.utils.Preferences;
|
||||
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
|
||||
public class ImBanner {
|
||||
private static final String TAG = "ImBanner";
|
||||
|
||||
public static JSONObject convBar(JSONObject orig) throws JSONException {
|
||||
var user_id = orig.getJSONObject("peer").getInt("id");
|
||||
|
||||
if (!UsersList.hasBanner(user_id) || user_id == 0) {
|
||||
if (getBoolValue("convBarRecomm", false)) {
|
||||
return null;
|
||||
} else {
|
||||
return orig.optJSONObject("conversation_bar");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
var jsonBanner = Handler.getBanner(user_id);
|
||||
var pic = jsonBanner.optString("picture");
|
||||
var text = jsonBanner.getString("text");
|
||||
|
||||
var link = jsonBanner.optString("link");
|
||||
var link_text = jsonBanner.optString("link_text");
|
||||
|
||||
var hasIcon = !pic.isEmpty();
|
||||
var hasButton = !link.isEmpty();
|
||||
var isPicture = pic.endsWith(".png") || pic.endsWith(".jpg") || pic.endsWith(".jpeg") || pic.endsWith(".webp");
|
||||
|
||||
var json = new JSONObject();
|
||||
|
||||
var buttonsJson = new JSONObject();
|
||||
buttonsJson.put("layout", "tertiary");
|
||||
buttonsJson.put("text", link_text);
|
||||
buttonsJson.put("type", "link");
|
||||
buttonsJson.put("link", link);
|
||||
|
||||
var buttons = new JSONArray(); // max 3 buttons in array
|
||||
|
||||
if (hasButton) buttons.put(buttonsJson);
|
||||
|
||||
json.put("name", "group_admin_welcome");
|
||||
json.put("text", text);
|
||||
json.put("buttons", buttons);
|
||||
|
||||
if (hasIcon && isPicture) {
|
||||
json.put("icon", pic);
|
||||
}
|
||||
|
||||
return json;
|
||||
} catch (JSONException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean showAlert() {
|
||||
var context = LifecycleUtils.getCurrentActivity();
|
||||
var bool = Preferences.getBoolValue("linkalert", false);
|
||||
|
||||
if (!bool) {
|
||||
new VkAlertDialog.Builder(context)
|
||||
.setTitle("Внимание!")
|
||||
.setMessage("Разработчики клиента не несут никакой ответственности за пользовательские ссылки. Будьте внимательны!")
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("Продолжить", (dialogInterface, i) -> {
|
||||
Preferences.preferences.edit().putBoolean("linkalert", true).commit();
|
||||
})
|
||||
.setNeutralButton("Отмена", (dialogInterface, i) -> {
|
||||
dialogInterface.cancel();
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
return bool;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package ru.vtosters.lite.ssfs;
|
||||
|
||||
import android.util.Log;
|
||||
import com.vk.core.util.LangUtils;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.utils.AccountManagerUtils;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.VTVerifications;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static ru.vtosters.lite.proxy.ProxyUtils.getStatic;
|
||||
|
||||
public class ProfileButtons {
|
||||
private static final String TAG = "ProfileButtons";
|
||||
|
||||
public static JSONObject profileButton(JSONObject orig) {
|
||||
try {
|
||||
int id = orig.getInt("id");
|
||||
|
||||
var newItem = new JSONArray();
|
||||
|
||||
if (orig.has("buttons")) {
|
||||
newItem = orig.getJSONArray("buttons");
|
||||
}
|
||||
|
||||
if (!VTVerifications.haveDonateButton() && id == AccountManagerUtils.getUserId()) {
|
||||
var map = new HashMap<>();
|
||||
map.put("20", "https://raw.githubusercontent.com/vtosters/lite/main/.github/images/donate_icon/20.png");
|
||||
map.put("40", "https://raw.githubusercontent.com/vtosters/lite/main/.github/images/donate_icon/40.png");
|
||||
map.put("80", "https://raw.githubusercontent.com/vtosters/lite/main/.github/images/donate_icon/80.png");
|
||||
|
||||
newItem.put(generateJsonObject(
|
||||
AndroidUtils.getString(com.vtosters.lite.R.string.donate_to_vtl),
|
||||
"https://vk.com/vtosters_official",
|
||||
"2D81E0",
|
||||
"open_url",
|
||||
map
|
||||
));
|
||||
}
|
||||
|
||||
if (!orig.has("type") && AccountManagerUtils.isVKTester()) {
|
||||
var map = new HashMap<>();
|
||||
map.put("20", "https://raw.githubusercontent.com/vtosters/lite/main/.github/images/bug_icon/20.png");
|
||||
map.put("40", "https://raw.githubusercontent.com/vtosters/lite/main/.github/images/bug_icon/40.png");
|
||||
map.put("80", "https://raw.githubusercontent.com/vtosters/lite/main/.github/images/bug_icon/80.png");
|
||||
|
||||
newItem.put(generateJsonObject(
|
||||
AndroidUtils.getString(com.vtosters.lite.R.string.tester_profile),
|
||||
"https://" + getStatic() + "/bugs?lang=" + LangUtils.a() + "#/reporter" + id,
|
||||
"2D81E0",
|
||||
"open_internal_vkui",
|
||||
map
|
||||
));
|
||||
}
|
||||
|
||||
orig.put("buttons", newItem);
|
||||
} catch (JSONException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
}
|
||||
|
||||
return orig;
|
||||
}
|
||||
|
||||
public static JSONObject generateJsonObject(String title, String link, String text_color, String url_type, HashMap<Object, Object> iconsList) {
|
||||
try {
|
||||
var json = new JSONObject();
|
||||
var icons = new JSONArray();
|
||||
|
||||
var action = new JSONObject().put("target", "internal");
|
||||
action.put("type", url_type); // may be open_url, open_internal_vkui, open_game, help_hint, show_full_post, open_vkapp, show_recommendations_for_post and groups_advertisement
|
||||
action.put("url", link);
|
||||
json.put("action", action);
|
||||
|
||||
json.put("title", title);
|
||||
|
||||
for (var entry : iconsList.entrySet()) {
|
||||
var icon = new JSONObject();
|
||||
icon.put("url", entry.getValue());
|
||||
icon.put("width", entry.getKey());
|
||||
icon.put("height", entry.getKey());
|
||||
icons.put(icon);
|
||||
}
|
||||
|
||||
json.put("icons", icons);
|
||||
|
||||
json.put("text_color", text_color);
|
||||
|
||||
return json;
|
||||
} catch (JSONException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package ru.vtosters.lite.ssfs;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import com.vk.profile.presenter.UserPresenter;
|
||||
import com.vtosters.lite.api.ExtendedUserProfile;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserID;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
public class ProfileHider {
|
||||
private static final String TAG = "ProfileHider";
|
||||
|
||||
public static boolean isService(Integer id) {
|
||||
return UsersList.hasDescription(id) || id == 100 || id == 101 || id == 333;
|
||||
}
|
||||
|
||||
public static void fetchInfo(ExtendedUserProfile extendedUserProfile, JSONObject jsonObject) {
|
||||
int userID = getUserID(extendedUserProfile);
|
||||
|
||||
if (UsersList.hasDescription(userID)) {
|
||||
try {
|
||||
extendedUserProfile.z2 = Handler.getDescription(userID);
|
||||
} catch (NullPointerException e) {
|
||||
Log.e(TAG, "null \"profiles\" node\n" + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String getInfo(ExtendedUserProfile extendedUserProfile) {
|
||||
int userID = getUserID(extendedUserProfile);
|
||||
if (UsersList.hasDescription(userID)) {
|
||||
if (!TextUtils.isEmpty(extendedUserProfile.z2)) {
|
||||
return extendedUserProfile.z2;
|
||||
} else {
|
||||
return Handler.getDescription(userID);
|
||||
}
|
||||
}
|
||||
return getGlobalContext().getString(UserPresenter.q0.a(userID));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package ru.vtosters.lite.ssfs;
|
||||
|
||||
import android.util.Log;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.di.singleton.VtOkHttpClient;
|
||||
import ru.vtosters.lite.utils.AccountManagerUtils;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.NetworkUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static ru.vtosters.lite.utils.Preferences.dev;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
|
||||
public class UsersList {
|
||||
private static final String TAG = "UsersList";
|
||||
private static final List<Integer> descriptionsList = new ArrayList<>();
|
||||
private static final List<Integer> bannersList = new ArrayList<>();
|
||||
|
||||
public static void getUsersList() {
|
||||
var prefs = AndroidUtils.getGlobalContext().getSharedPreferences("vt_another_data", 0);
|
||||
|
||||
if ((!NetworkUtils.isNetworkConnected() || getBoolValue("isRoamingState", false)) && prefs.contains("ids")) {
|
||||
return;
|
||||
}
|
||||
|
||||
Request request = new Request.a()
|
||||
.b(Utils.getDomain() + "/api/getUsersWithServiceDescriptionsAndBanners")
|
||||
.a();
|
||||
|
||||
VtOkHttpClient.getInstance().a(request).a(new Callback() {
|
||||
@Override
|
||||
public void a(Call call, IOException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(Call call, Response response) {
|
||||
try {
|
||||
parseJson(new JSONObject(response.a().g()).getJSONObject("response"));
|
||||
} catch (JSONException | IOException e) {
|
||||
Log.d(TAG, e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean hasDescription(int id) {
|
||||
return descriptionsList.contains(id) && id != AccountManagerUtils.getUserId();
|
||||
}
|
||||
|
||||
public static boolean hasBanner(int id) {
|
||||
return bannersList.contains(id) && id != AccountManagerUtils.getUserId();
|
||||
}
|
||||
|
||||
static void parseJson(JSONObject json) throws JSONException {
|
||||
var idsDescription = json.getJSONArray("with_service_descriptions");
|
||||
var idsBanner = json.getJSONArray("with_chat_banners");
|
||||
|
||||
if (dev()) {
|
||||
Log.d(TAG, idsDescription.toString());
|
||||
Log.d(TAG, idsBanner.toString());
|
||||
}
|
||||
|
||||
processIds(idsBanner, bannersList);
|
||||
processIds(idsDescription, descriptionsList);
|
||||
}
|
||||
|
||||
static void processIds(JSONArray jsonIds, List<Integer> member) {
|
||||
for (int i = 0; i < jsonIds.length(); i++)
|
||||
member.add(jsonIds.optInt(i));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package ru.vtosters.lite.ssfs;
|
||||
|
||||
import com.vk.core.network.Network;
|
||||
import ru.vtosters.lite.hooks.DateHook;
|
||||
import ru.vtosters.lite.proxy.ProxyUtils;
|
||||
import ru.vtosters.lite.utils.*;
|
||||
|
||||
public class Utils {
|
||||
public static String getVKUILink() {
|
||||
return getDomain() +
|
||||
"?token=" + AccountManagerUtils.getUserToken() +
|
||||
"&vt_dark=" + (ThemesUtils.isDarkTheme() ? "1" : "0") +
|
||||
"&vt_amoled=" + (ThemesUtils.isAmoledTheme() && ThemesUtils.isDarkTheme() ? "1" : "0") +
|
||||
"&secret=" + AccountManagerUtils.getUserSecret() +
|
||||
"&proxy=" + (ProxyUtils.isAnyProxyEnabled() ? "1" : "0") +
|
||||
"&lang=" + DateHook.getLocale() +
|
||||
"&vt=1" +
|
||||
"&useragent=" + Base64Utils.encodeValue(Base64Utils.encode(Network.l.c().a())) +
|
||||
"&vt_debug=" + (Preferences.dev() ? "1" : "0");
|
||||
}
|
||||
|
||||
public static String getDomain() {
|
||||
String string = AndroidUtils.getPrefsValue("ssfscustom");
|
||||
|
||||
if (!string.isEmpty()) return string;
|
||||
|
||||
return "https://ssfs.vtosters.app";
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,7 @@
|
||||
package ru.vtosters.lite.tgs;
|
||||
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
|
||||
import com.aefyr.tsg.g2.TelegramStickersPack;
|
||||
import com.aefyr.tsg.g2.TelegramStickersService;
|
||||
import com.vk.dto.common.Attachment;
|
||||
@@ -15,15 +12,15 @@ import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.attachments.PendingGraffitiAttachment;
|
||||
import com.vtosters.lite.im.AppAttachToImAttachConverter;
|
||||
import com.vtosters.lite.upload.Upload;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Stack;
|
||||
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
public class TGRoot {
|
||||
public static final int N = 76820000;
|
||||
@@ -101,7 +98,7 @@ public class TGRoot {
|
||||
}
|
||||
}
|
||||
|
||||
private static StickerStockItem toStickerPack(TelegramStickersPack p) throws JSONException {
|
||||
public static StickerStockItem toStickerPack(TelegramStickersPack p) throws JSONException {
|
||||
JSONArray arr = new JSONArray();
|
||||
|
||||
for (int j = 0; j < p.stickersCount; j++)
|
||||
|
||||
@@ -22,7 +22,8 @@ public class ThemesCore {
|
||||
public static SparseBooleanArray ACCENT_THEME_ONLY_MILK_DARK = new SparseBooleanArray();
|
||||
|
||||
private static boolean cachedAccents = false;
|
||||
private static int wallLightColor;
|
||||
private static int outgoinging_msg;
|
||||
private static int outgoinging_msg_highlight;
|
||||
|
||||
static {
|
||||
setExceptions();
|
||||
@@ -136,7 +137,8 @@ public class ThemesCore {
|
||||
themedColors.put(R.attr.im_reply_separator, accentColor);
|
||||
themedColors.put(R.attr.im_text_name, accentColor);
|
||||
|
||||
wallLightColor = ThemesUtils.lighten(accentColor, 0.76f);
|
||||
outgoinging_msg = ThemesUtils.lighten(accentColor, 0.76f);
|
||||
outgoinging_msg_highlight = ThemesUtils.lighten(accentColor, 0.5f);
|
||||
|
||||
themedColors.put(R.attr.im_ic_send_msg, accentColor);
|
||||
themedColors.put(R.attr.im_bubble_wallpaper_outgoing, accentColor);
|
||||
@@ -145,8 +147,10 @@ public class ThemesCore {
|
||||
}
|
||||
|
||||
public static int getThemedAttr(Context context, @IdRes int attr) {
|
||||
if (attr == R.attr.im_bubble_wallpaper_outgoing || attr == R.attr.im_bubble_outgoing || attr == R.attr.im_bubble_outgoing_highlighted) {
|
||||
return wallLightColor;
|
||||
if (attr == R.attr.im_bubble_wallpaper_outgoing || attr == R.attr.im_bubble_outgoing) {
|
||||
return outgoinging_msg;
|
||||
} else if (attr == R.attr.im_bubble_outgoing_highlighted) {
|
||||
return outgoinging_msg_highlight;
|
||||
}
|
||||
|
||||
return themedColors.get(attr);
|
||||
|
||||
@@ -46,7 +46,7 @@ public class PalettesManager {
|
||||
PALETTES_DIR.mkdirs();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 23 && !Environment.getExternalStorageDirectory().canWrite()) {
|
||||
makeText(getGlobalContext(), "Не выдано разрешение на запись и чтение файлов", Toast.LENGTH_LONG).show();
|
||||
makeText(getGlobalContext(), AndroidUtils.getString("cannot_write"), Toast.LENGTH_LONG).show();
|
||||
LifecycleUtils.getCurrentActivity().requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 228);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,340 @@
|
||||
package ru.vtosters.lite.ui;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import com.vtosters.lite.ui.MaterialSwitchPreference;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.ImageUtils;
|
||||
import ru.vtosters.lite.utils.ThemesUtils;
|
||||
|
||||
public class PreferenceFragmentUtils {
|
||||
|
||||
public static ListPreference addListPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
String def,
|
||||
int titleRes,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue
|
||||
) {
|
||||
return addListPreference(screen, key, def, titleRes, 0, 0, entries, entriesValue, null);
|
||||
}
|
||||
|
||||
public static ListPreference addListPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
String def,
|
||||
CharSequence title,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue
|
||||
) {
|
||||
return addListPreference(screen, key, def, title, null, "", entries, entriesValue, null);
|
||||
}
|
||||
|
||||
// change icon accent color
|
||||
public static ListPreference addListPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
String def,
|
||||
int titleRes,
|
||||
int iconRes,
|
||||
int summaryRes,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
var icon = iconRes > 0
|
||||
? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes))
|
||||
: null;
|
||||
var title = titleRes > 0
|
||||
? screen.getContext().getString(titleRes)
|
||||
: "";
|
||||
var summary = summaryRes > 0
|
||||
? screen.getContext().getString(summaryRes)
|
||||
: "";
|
||||
return addListPreference(screen, key, def, title, icon, summary, entries, entriesValue, listener);
|
||||
}
|
||||
|
||||
// change icon accent color
|
||||
public static ListPreference addListPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
String def,
|
||||
CharSequence title,
|
||||
int iconRes,
|
||||
CharSequence summary,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
var icon = iconRes > 0
|
||||
? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes))
|
||||
: null;
|
||||
return addListPreference(screen, key, def, title, icon, summary, entries, entriesValue, listener);
|
||||
}
|
||||
|
||||
public static ListPreference addListPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
String def,
|
||||
CharSequence title,
|
||||
@Nullable Drawable icon,
|
||||
CharSequence summary,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
ListPreference preference = new ListPreference(screen.getContext());
|
||||
preference.setEntries(entries);
|
||||
preference.setEntryValues(entriesValue);
|
||||
preference.setSummary(summary);
|
||||
preference.setTitle(title);
|
||||
preference.setDialogTitle(title);
|
||||
preference.setKey(key);
|
||||
preference.setDefaultValue(def);
|
||||
preference.setValue(def);
|
||||
preference.setOnPreferenceChangeListener(listener);
|
||||
|
||||
if (icon != null)
|
||||
preference.setIcon(icon);
|
||||
|
||||
screen.addPreference(preference);
|
||||
|
||||
return preference;
|
||||
}
|
||||
|
||||
public static MaterialSwitchPreference addMaterialSwitchPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
boolean defValue
|
||||
) {
|
||||
return addMaterialSwitchPreference(screen, key, title, summary, 0, defValue, null);
|
||||
}
|
||||
|
||||
// change icon accent color
|
||||
public static MaterialSwitchPreference addMaterialSwitchPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
int titleRes,
|
||||
int summaryRes,
|
||||
int iconRes,
|
||||
boolean defValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
var icon = iconRes > 0
|
||||
? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes))
|
||||
: null;
|
||||
var title = titleRes > 0
|
||||
? screen.getContext().getString(titleRes)
|
||||
: "";
|
||||
var summary = summaryRes > 0
|
||||
? screen.getContext().getString(summaryRes)
|
||||
: "";
|
||||
return addMaterialSwitchPreference(screen, key, title, summary, icon, defValue, listener);
|
||||
}
|
||||
|
||||
// change icon accent color
|
||||
public static MaterialSwitchPreference addMaterialSwitchPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
int iconRes,
|
||||
boolean defValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
var icon = iconRes > 0
|
||||
? ImageUtils.setTint(screen.getContext(), ContextCompat.getDrawable(screen.getContext(), iconRes))
|
||||
: null;
|
||||
return addMaterialSwitchPreference(screen, key, title, summary, icon, defValue, listener);
|
||||
}
|
||||
|
||||
public static MaterialSwitchPreference addMaterialSwitchPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
@Nullable Drawable icon,
|
||||
boolean defValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
MaterialSwitchPreference preference = new MaterialSwitchPreference(screen.getContext());
|
||||
preference.setTitle(title);
|
||||
preference.setSummary(summary);
|
||||
preference.setKey(key);
|
||||
preference.setDefaultValue(defValue);
|
||||
|
||||
if (icon != null)
|
||||
preference.setIcon(icon);
|
||||
preference.setOnPreferenceChangeListener(listener);
|
||||
|
||||
screen.addPreference(preference);
|
||||
|
||||
return preference;
|
||||
}
|
||||
|
||||
public static Preference addPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
int titleRes,
|
||||
int summaryRes
|
||||
) {
|
||||
var title = titleRes > 0
|
||||
? screen.getContext().getString(titleRes)
|
||||
: "";
|
||||
var summary = summaryRes > 0
|
||||
? screen.getContext().getString(summaryRes)
|
||||
: "";
|
||||
return addPreference(screen, key, title, summary, null, null);
|
||||
}
|
||||
|
||||
public static Preference addPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary
|
||||
) {
|
||||
return addPreference(screen, key, title, summary, null, null);
|
||||
}
|
||||
|
||||
// change icon accent color
|
||||
public static Preference addPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
int titleRes,
|
||||
int summaryRes,
|
||||
int iconRes,
|
||||
Preference.OnPreferenceClickListener listener) {
|
||||
var icon = iconRes > 0
|
||||
? ImageUtils.setTint(screen.getContext(), screen.getContext().getDrawable(iconRes))
|
||||
: null;
|
||||
var title = titleRes > 0
|
||||
? screen.getContext().getString(titleRes)
|
||||
: "";
|
||||
var summary = summaryRes > 0
|
||||
? screen.getContext().getString(summaryRes)
|
||||
: "";
|
||||
return addPreference(screen, key, title, summary, icon, listener);
|
||||
}
|
||||
|
||||
// change icon accent color
|
||||
public static Preference addPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
int iconRes,
|
||||
Preference.OnPreferenceClickListener listener) {
|
||||
var icon = iconRes > 0
|
||||
? ImageUtils.setTint(screen.getContext(), screen.getContext().getDrawable(iconRes))
|
||||
: null;
|
||||
return addPreference(screen, key, title, summary, icon, listener);
|
||||
}
|
||||
|
||||
public static Preference addPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
@Nullable Drawable icon,
|
||||
Preference.OnPreferenceClickListener listener
|
||||
) {
|
||||
Preference preference = new Preference(screen.getContext());
|
||||
preference.setSummary(summary);
|
||||
preference.setTitle(title);
|
||||
preference.setKey(key);
|
||||
|
||||
if (icon != null)
|
||||
preference.setIcon(icon);
|
||||
preference.setOnPreferenceClickListener(listener);
|
||||
|
||||
screen.addPreference(preference);
|
||||
|
||||
return preference;
|
||||
}
|
||||
|
||||
public static PreferenceCategory addPreferenceCategory(PreferenceScreen screen, int titleRes) {
|
||||
var title = titleRes > 0
|
||||
? screen.getContext().getString(titleRes)
|
||||
: "";
|
||||
return addPreferenceCategory(screen, title);
|
||||
}
|
||||
|
||||
public static PreferenceCategory addPreferenceCategory(PreferenceScreen screen, CharSequence title) {
|
||||
PreferenceCategory preference = new PreferenceCategory(screen.getContext(), null);
|
||||
preference.setTitle(title);
|
||||
screen.addPreference(preference);
|
||||
|
||||
return preference;
|
||||
}
|
||||
|
||||
public static Preference addEditTextPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
int titleRes,
|
||||
onPreferenceTextValueChangeListener editTextPrefChangeListener
|
||||
) {
|
||||
var title = titleRes > 0
|
||||
? screen.getContext().getString(titleRes)
|
||||
: "";
|
||||
return addEditTextPreference(screen, key, title, editTextPrefChangeListener);
|
||||
}
|
||||
|
||||
public static Preference addEditTextPreference(
|
||||
PreferenceScreen screen,
|
||||
String key,
|
||||
CharSequence title,
|
||||
onPreferenceTextValueChangeListener editTextPrefChangeListener
|
||||
) {
|
||||
return addPreference(screen, key, title, null, null, preference -> {
|
||||
LinearLayout linearLayout = new LinearLayout(screen.getContext());
|
||||
|
||||
final EditText editText = new EditText(screen.getContext());
|
||||
editText.setText(PreferenceManager.getDefaultSharedPreferences(screen.getContext()).getString(key, ""));
|
||||
editText.setHint(title);
|
||||
editText.setTextColor(ThemesUtils.getTextAttr());
|
||||
editText.setHintTextColor(ThemesUtils.getSTextAttr());
|
||||
|
||||
editText.setBackgroundTintList(ThemesUtils.getAccenedColorStateList());
|
||||
|
||||
linearLayout.addView(editText);
|
||||
editText.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
|
||||
ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) editText.getLayoutParams());
|
||||
margin.setMargins(AndroidUtils.dp2px(20f), 0, AndroidUtils.dp2px(20f), 0);
|
||||
editText.setLayoutParams(margin);
|
||||
|
||||
new VkAlertDialog.Builder(screen.getContext())
|
||||
.setTitle(title)
|
||||
.setView(linearLayout)
|
||||
.setPositiveButton("OK", (dialog, which) -> {
|
||||
boolean change = editTextPrefChangeListener.onChanged(preference, editText.getText().toString());
|
||||
if (!change)
|
||||
return;
|
||||
|
||||
PreferenceManager.getDefaultSharedPreferences(screen.getContext())
|
||||
.edit()
|
||||
.putString(key, editText.getText().toString())
|
||||
.apply();
|
||||
})
|
||||
.show();
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
public interface onPreferenceTextValueChangeListener {
|
||||
boolean onChanged(Preference preference, String newValue);
|
||||
}
|
||||
}
|
||||
@@ -1,274 +0,0 @@
|
||||
package ru.vtosters.lite.ui;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.TypedValue;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
import com.vtosters.lite.ui.MaterialSwitchPreference;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.ImageUtils;
|
||||
import ru.vtosters.lite.utils.ThemesUtils;
|
||||
|
||||
public class PreferencesUtil {
|
||||
|
||||
public static void addListPreference(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
String key,
|
||||
String def,
|
||||
CharSequence title,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue
|
||||
) {
|
||||
ListPreference preference = new ListPreference(fragment.requireContext());
|
||||
preference.setEntries(entries);
|
||||
preference.setEntryValues(entriesValue);
|
||||
preference.setTitle(title); // setTitle
|
||||
preference.setDialogTitle(title); // setDialogTitle
|
||||
preference.setKey(key); // setKey
|
||||
preference.setDefaultValue(def); // setDefaultValue
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addListPreferenceIcon(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
String key,
|
||||
String def,
|
||||
CharSequence title,
|
||||
int iconRes,
|
||||
CharSequence summary,
|
||||
CharSequence[] entries,
|
||||
CharSequence[] entriesValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
ListPreference preference = new ListPreference(fragment.requireContext());
|
||||
preference.setEntries(entries);
|
||||
preference.setEntryValues(entriesValue);
|
||||
preference.setSummary(summary); // setSummary
|
||||
preference.setTitle(title); // setTitle
|
||||
preference.setDialogTitle(title); // setDialogTitle
|
||||
preference.setKey(key); // setKey
|
||||
preference.setDefaultValue(def); // setDefaultValue
|
||||
preference.setValue(def);
|
||||
preference.setOnPreferenceChangeListener(listener);
|
||||
|
||||
if (iconRes != 0)
|
||||
preference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addMaterialSwitchPreference(
|
||||
MaterialPreferenceToolbarFragment materialPreferenceToolbarFragment,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
boolean defValue
|
||||
) {
|
||||
MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(materialPreferenceToolbarFragment.requireContext());
|
||||
materialSwitchPreference.setTitle(title); // setTitle
|
||||
materialSwitchPreference.setSummary(summary); // setSummary
|
||||
materialSwitchPreference.setKey(key); // setKey
|
||||
materialSwitchPreference.setDefaultValue(defValue); // setDefaultValue
|
||||
|
||||
materialPreferenceToolbarFragment.getPreferenceScreen().addPreference(materialSwitchPreference); // materialPreferenceToolbarFragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
// public static void addMaterialSwitchPreference(
|
||||
// MaterialPreferenceToolbarFragment fragment,
|
||||
// String key,
|
||||
// CharSequence title,
|
||||
// CharSequence summary,
|
||||
// int iconRes,
|
||||
// boolean defValue,
|
||||
// Preference.OnPreferenceChangeListener listener
|
||||
// ) {
|
||||
// MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(fragment.requireContext());
|
||||
// materialSwitchPreference.setTitle(title); // setTitle
|
||||
// materialSwitchPreference.setSummary(summary); // setSummary
|
||||
// materialSwitchPreference.setKey(key); // setKey
|
||||
// materialSwitchPreference.setDefaultValue(defValue); // setDefaultValue
|
||||
// materialSwitchPreference.setOnPreferenceChangeListener(listener); // setOnPreferenceClickListener
|
||||
//
|
||||
// if (iconRes != 0)
|
||||
// materialSwitchPreference.setIcon(setTint(fragment.requireContext(), Objects.requireNonNull(ContextCompat.getDrawable(fragment.requireContext(), iconRes)))); // preference.setIcon
|
||||
//
|
||||
// fragment.getPreferenceScreen().addPreference(materialSwitchPreference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
// }
|
||||
|
||||
public static void addMaterialSwitchPreference(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
int iconRes,
|
||||
boolean defValue,
|
||||
Preference.OnPreferenceChangeListener listener
|
||||
) {
|
||||
MaterialSwitchPreference materialSwitchPreference = new MaterialSwitchPreference(fragment.requireContext());
|
||||
materialSwitchPreference.setTitle(title); // setTitle
|
||||
materialSwitchPreference.setSummary(summary); // setSummary
|
||||
materialSwitchPreference.setKey(key); // setKey
|
||||
materialSwitchPreference.setDefaultValue(defValue); // setDefaultValue
|
||||
fragment.getPreferenceScreen().addPreference(materialSwitchPreference); // materialPreferenceToolbarFragment.getPreferenceScreen().addPreference(preference)
|
||||
|
||||
if (iconRes != 0)
|
||||
materialSwitchPreference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon
|
||||
materialSwitchPreference.setOnPreferenceChangeListener(listener); // setOnPreferenceClickListener(listener)
|
||||
|
||||
fragment.getPreferenceScreen().addPreference(materialSwitchPreference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addPreference(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary
|
||||
) {
|
||||
Preference preference = new Preference(fragment.requireContext());
|
||||
preference.setSummary(summary); // setSummary
|
||||
preference.setTitle(title); // setTitle
|
||||
preference.setKey(key); // setKey
|
||||
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addPreference(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
int iconRes,
|
||||
Preference.OnPreferenceClickListener listener
|
||||
) {
|
||||
Preference preference = new Preference(fragment.requireContext());
|
||||
preference.setSummary(summary); // setSummary
|
||||
preference.setTitle(title); // setTitle
|
||||
|
||||
if (iconRes != 0)
|
||||
preference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon
|
||||
preference.setOnPreferenceClickListener(listener); // preference.setOnPreferenceClickListener(listener)
|
||||
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addPreference(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
int iconRes,
|
||||
Preference.OnPreferenceClickListener listener) {
|
||||
Preference preference = new Preference(fragment.requireContext());
|
||||
preference.setSummary(summary); // setSummary
|
||||
preference.setTitle(title); // setTitle
|
||||
preference.setKey(key); // setKey
|
||||
|
||||
if (iconRes != 0)
|
||||
preference.setIcon(ImageUtils.setTint(fragment.requireContext(), getDrawable(fragment.requireContext(), iconRes))); // preference.setIcon
|
||||
preference.setOnPreferenceClickListener(listener); // preference.setOnPreferenceClickListener(listener)
|
||||
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addPreferenceDrawable(
|
||||
MaterialPreferenceToolbarFragment fragment,
|
||||
String key,
|
||||
CharSequence title,
|
||||
CharSequence summary,
|
||||
@Nullable Drawable icon,
|
||||
Preference.OnPreferenceClickListener listener
|
||||
) {
|
||||
Preference preference = new Preference(fragment.requireContext());
|
||||
preference.setSummary(summary); // setSummary
|
||||
preference.setTitle(title); // setTitle
|
||||
preference.setKey(key); // setKey
|
||||
|
||||
if (icon != null)
|
||||
preference.setIcon(icon); // preference.setIcon
|
||||
preference.setOnPreferenceClickListener(listener); // preference.setOnPreferenceClickListener(listener)
|
||||
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addPreferenceCategory(MaterialPreferenceToolbarFragment fragment, CharSequence title) {
|
||||
PreferenceCategory preference = new PreferenceCategory(fragment.requireContext(), null);
|
||||
preference.setTitle(title); // setTitle
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addPreferenceCategory(MaterialPreferenceToolbarFragment fragment, CharSequence title, int collapsedSize) {
|
||||
PreferenceCategory preference = new PreferenceCategory(fragment.requireContext(), null);
|
||||
preference.setTitle(title); // setTitle
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static void addEditTextPreference(MaterialPreferenceToolbarFragment fragment, String key, CharSequence title, EditTextPrefChangeListener editTextPrefChangeListener) {
|
||||
Preference preference = new Preference(fragment.requireContext());
|
||||
|
||||
preference.setTitle(title); // setTitle
|
||||
preference.setKey(key); // setKey
|
||||
preference.setOnPreferenceClickListener(preference1 -> {
|
||||
LinearLayout linearLayout = new LinearLayout(fragment.requireContext());
|
||||
|
||||
final EditText editText = new EditText(fragment.requireContext());
|
||||
editText.setText(PreferenceManager.getDefaultSharedPreferences(fragment.requireContext()).getString(key, ""));
|
||||
editText.setHint(title);
|
||||
editText.setTextColor(ThemesUtils.getTextAttr());
|
||||
editText.setHintTextColor(ThemesUtils.getSTextAttr());
|
||||
|
||||
editText.setBackgroundTintList(ThemesUtils.getAccenedColorStateList());
|
||||
|
||||
linearLayout.addView(editText);
|
||||
editText.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
|
||||
ViewGroup.MarginLayoutParams margin = ((ViewGroup.MarginLayoutParams) editText.getLayoutParams());
|
||||
margin.setMargins(AndroidUtils.dp2px(20f), 0, AndroidUtils.dp2px(20f), 0);
|
||||
editText.setLayoutParams(margin);
|
||||
|
||||
new VkAlertDialog.Builder(fragment.getContext())
|
||||
.setTitle(title)
|
||||
.setView(linearLayout)
|
||||
.setPositiveButton("OK", (dialog, which) -> {
|
||||
boolean change = editTextPrefChangeListener.onChanged(preference, editText.getText().toString());
|
||||
if (!change)
|
||||
return;
|
||||
|
||||
PreferenceManager.getDefaultSharedPreferences(fragment.requireContext())
|
||||
.edit()
|
||||
.putString(key, editText.getText().toString())
|
||||
.apply();
|
||||
})
|
||||
.show();
|
||||
return false;
|
||||
}); // preference.setOnPreferenceClickListener(listener)
|
||||
|
||||
fragment.getPreferenceScreen().addPreference(preference); // fragment.getPreferenceScreen().addPreference(preference)
|
||||
}
|
||||
|
||||
public static int getTextColor(Context ctx) {
|
||||
TypedValue typedValue = new TypedValue();
|
||||
ctx.getTheme().resolveAttribute(ThemesUtils.getTextAttr(), typedValue, true);
|
||||
return typedValue.data;
|
||||
}
|
||||
|
||||
public static int getSTextColor(Context ctx) {
|
||||
TypedValue typedValue = new TypedValue();
|
||||
ctx.getTheme().resolveAttribute(ThemesUtils.getSTextAttr(), typedValue, true);
|
||||
return typedValue.data;
|
||||
}
|
||||
|
||||
private static Drawable getDrawable(Context ctx, int drawableRes) {
|
||||
return ContextCompat.getDrawable(ctx, drawableRes);
|
||||
}
|
||||
|
||||
public interface EditTextPrefChangeListener {
|
||||
boolean onChanged(Preference preference, Object obj);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,5 @@
|
||||
package ru.vtosters.lite.ui.adapters;
|
||||
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getResources;
|
||||
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;
|
||||
@@ -14,19 +8,32 @@ import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.SwitchCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.aefyr.tsg.g2.TelegramStickersPack;
|
||||
import com.aefyr.tsg.g2.TelegramStickersService;
|
||||
import com.vk.core.dialogs.bottomsheet.ContentSnapStrategy1;
|
||||
import com.vk.core.dialogs.bottomsheet.ModalBottomSheet;
|
||||
import com.vk.core.util.ContextExtKt;
|
||||
import com.vk.core.util.DrawableUtils;
|
||||
import com.vk.sharing.Sharing;
|
||||
import com.vk.stickers.LongtapRecyclerView;
|
||||
import com.vk.stickers.bridge.GiftData;
|
||||
import com.vk.stickers.details.StickerDetailsAdapter;
|
||||
import com.vk.stickers.details.StickerDetailsView;
|
||||
import com.vtosters.lite.R;
|
||||
import org.json.JSONException;
|
||||
import ru.vtosters.lite.tgs.TGPref;
|
||||
import ru.vtosters.lite.tgs.TGRoot;
|
||||
import ru.vtosters.lite.ui.components.IItemMovingListener;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ru.vtosters.lite.tgs.TGPref;
|
||||
import ru.vtosters.lite.ui.components.IItemMovingListener;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getResources;
|
||||
import static ru.vtosters.lite.utils.ThemesUtils.*;
|
||||
|
||||
public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.StickerPackViewHolder> implements IItemMovingListener {
|
||||
private static final TelegramStickersService sService = TelegramStickersService.getInstance(getGlobalContext());
|
||||
@@ -108,10 +115,11 @@ public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.
|
||||
final TelegramStickersPack pack = sService.getPacksListReference().get(position);
|
||||
if (pack.state != TelegramStickersPack.DOWNLOADED) return;
|
||||
|
||||
File f = new File(pack.folder, "001.png");
|
||||
var uri = Uri.parse("file://" + f.getAbsolutePath());
|
||||
try {
|
||||
File f = new File(pack.folder, "001.png");
|
||||
if (f.exists()) {
|
||||
mStickerPreview.setImageURI(Uri.parse("file://" + f.getAbsolutePath()));
|
||||
mStickerPreview.setImageURI(uri);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@@ -129,7 +137,7 @@ public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.
|
||||
});
|
||||
mName.setText(pack.title);
|
||||
mSwitch.setChecked(pack.enabled);
|
||||
mSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> sService.setPackEnabled(pack, isChecked, false));
|
||||
mSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> sService.setPackEnabled(pack, isChecked, true));
|
||||
mStickersCount.setText(pack.stickersCount + " " + mStickersCount.getContext().getString(R.string.stickerscount));
|
||||
|
||||
// Color костыль
|
||||
@@ -138,6 +146,35 @@ public class StickerPackAdapter extends RecyclerView.Adapter<StickerPackAdapter.
|
||||
|
||||
mName.setTextColor(color);
|
||||
mStickersCount.setTextColor(secondary);
|
||||
|
||||
if (pack.state == TelegramStickersPack.DOWNLOADED)
|
||||
mContainer.setOnClickListener(v -> {
|
||||
try {
|
||||
ViewGroup root = (ViewGroup) ContextExtKt.c(v.getContext()).inflate(R.layout.sticker_details_bottom_container, null);
|
||||
StickerDetailsView stickersDetailsView = new StickerDetailsView(v.getContext());
|
||||
|
||||
stickersDetailsView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
|
||||
stickersDetailsView.a(TGRoot.toStickerPack(pack), new GiftData(new ArrayList<>(), false), root);
|
||||
|
||||
var recycler = (LongtapRecyclerView) stickersDetailsView.findViewById(R.id.recycler);
|
||||
((StickerDetailsAdapter) recycler.getAdapter()).setTelegramPack(true);
|
||||
|
||||
var builder = new ModalBottomSheet.a(v.getContext());
|
||||
builder.d(pack.title);
|
||||
builder.d(stickersDetailsView);
|
||||
builder.a(DrawableUtils.a(v.getContext(), R.drawable.share_outline_28, R.color.accent_blue));
|
||||
builder.c(R.attr.content_tint_background);
|
||||
builder.b(view -> {
|
||||
Sharing.a(view.getContext(), "https://t.me/addstickers/" + pack.id);
|
||||
return null;
|
||||
});
|
||||
builder.a(new ContentSnapStrategy1(false));
|
||||
|
||||
builder.a("stickers_preview");
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.io.StringWriter;
|
||||
|
||||
import ru.vtosters.lite.deviceinfo.DeviceInfoCollector;
|
||||
import ru.vtosters.lite.services.LogWriterService;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
|
||||
public class CrashReporter {
|
||||
protected static String logString;
|
||||
@@ -41,7 +42,7 @@ public class CrashReporter {
|
||||
logString = getStackTrace(th) + "\n\n" + new DeviceInfoCollector().collect().toDeviceName();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
var notificationChannel = new NotificationChannel("crashes", "crash", NotificationManager.IMPORTANCE_DEFAULT);
|
||||
var notificationChannel = new NotificationChannel("crashes", AndroidUtils.getString("crash_service_name"), NotificationManager.IMPORTANCE_DEFAULT);
|
||||
notificationChannel.enableVibration(true);
|
||||
notificationChannel.enableLights(true);
|
||||
((NotificationManager) getGlobalContext().getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(notificationChannel);
|
||||
@@ -51,7 +52,7 @@ public class CrashReporter {
|
||||
foxbinIntent.putExtra("android.intent.extra.TEXT", logString);
|
||||
foxbinIntent.setType("text/plain");
|
||||
if (!isFoxbinInstalled()) {
|
||||
foxbinIntent = new Intent("android.intent.action.VIEW");
|
||||
foxbinIntent = new Intent(Intent.ACTION_VIEW);
|
||||
foxbinIntent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.f0x1d.dogbin"));
|
||||
foxbinIntent.addFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public class OTADialog extends ModalBottomSheetWrapper<OTADialog> implements OT
|
||||
|
||||
container.setOrientation(LinearLayout.VERTICAL);
|
||||
|
||||
changelogView.setText("Изменения: \n" + changelog);
|
||||
changelogView.setText(AndroidUtils.getString("changelog") + ": \n" + changelog);
|
||||
changelogView.setTextColor(ThemesUtils.getTextAttr());
|
||||
container.addView(changelogView, new LinearLayout.LayoutParams(-1, -2));
|
||||
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
package ru.vtosters.lite.ui.dialogs;
|
||||
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.edit;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import com.vtosters.lite.R;
|
||||
|
||||
import ru.vtosters.lite.deviceinfo.OEMDetector;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.edit;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
|
||||
public class Start {
|
||||
public static void alert(final Activity activity) {
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
@@ -30,7 +28,7 @@ public class Start {
|
||||
.setNeutralButton(R.string.startbtn1,
|
||||
(dialogInterface, i) -> {
|
||||
edit().putBoolean("showAlert", false).apply();
|
||||
activity.startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/vtosters")));
|
||||
activity.startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://t.me/vtosters")));
|
||||
}
|
||||
)
|
||||
.show();
|
||||
|
||||
@@ -1,22 +1,5 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreference;
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceCategory;
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceDrawable;
|
||||
import static ru.vtosters.lite.ui.components.IconManager.icons;
|
||||
import static ru.vtosters.lite.ui.components.IconManager.iconsValues;
|
||||
import static ru.vtosters.lite.ui.components.IconManager.sIconsPlus;
|
||||
import static ru.vtosters.lite.ui.components.IconManager.sIconsPlusNames;
|
||||
import static ru.vtosters.lite.ui.components.IconManager.switchComponent;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
|
||||
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 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.ThemesUtils.getTextAttr;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -26,44 +9,47 @@ import android.os.Bundle;
|
||||
import android.util.TypedValue;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
|
||||
import androidx.appcompat.view.ContextThemeWrapper;
|
||||
import androidx.core.content.res.ResourcesCompat;
|
||||
|
||||
import com.vk.core.dialogs.alert.VkAlertDialog;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
|
||||
import ru.vtosters.lite.ui.components.IconManager;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.Preferences;
|
||||
import ru.vtosters.lite.utils.ThemesUtils;
|
||||
|
||||
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");
|
||||
var defname = Preferences.preferences.getString("appname", "vt");
|
||||
var deficon = Preferences.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));
|
||||
RadioButton rgVK = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
RadioButton rgVKontakte = new RadioButton(new ContextThemeWrapper(ctx, com.vtosters.lite.R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
RadioButton rgDefault = new RadioButton(new ContextThemeWrapper(ctx, R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
RadioButton rgVK = new RadioButton(new ContextThemeWrapper(ctx, R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
RadioButton rgVKontakte = new RadioButton(new ContextThemeWrapper(ctx, R.style.Widget_AppCompat_CompoundButton_RadioButton));
|
||||
|
||||
rg.addView(rgDefault);
|
||||
rg.addView(rgVK);
|
||||
rg.addView(rgVKontakte);
|
||||
|
||||
rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
|
||||
rgVK.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
|
||||
rgVKontakte.setTextSize(TypedValue.COMPLEX_UNIT_PX, dp2px(14f));
|
||||
rgDefault.setTextSize(TypedValue.COMPLEX_UNIT_PX, AndroidUtils.dp2px(14f));
|
||||
rgVK.setTextSize(TypedValue.COMPLEX_UNIT_PX, AndroidUtils.dp2px(14f));
|
||||
rgVKontakte.setTextSize(TypedValue.COMPLEX_UNIT_PX, AndroidUtils.dp2px(14f));
|
||||
|
||||
rg.setPadding(dp2px(18f), dp2px(12f), dp2px(18f), 0);
|
||||
rg.setPadding(AndroidUtils.dp2px(18f), AndroidUtils.dp2px(12f), AndroidUtils.dp2px(18f), 0);
|
||||
|
||||
rgDefault.setText("VTLite");
|
||||
rgDefault.setTextColor(getTextAttr());
|
||||
rgDefault.setTextColor(ThemesUtils.getTextAttr());
|
||||
|
||||
rgVK.setText("VK");
|
||||
rgVK.setTextColor(getTextAttr());
|
||||
rgVK.setTextColor(ThemesUtils.getTextAttr());
|
||||
|
||||
rgVKontakte.setText(ctx.getString(R.string.app_name_alter));
|
||||
rgVKontakte.setTextColor(getTextAttr());
|
||||
rgVKontakte.setTextColor(ThemesUtils.getTextAttr());
|
||||
|
||||
rgVKontakte.setChecked(defname.contains("vkontakte"));
|
||||
rgVK.setChecked(defname.contains("standard"));
|
||||
@@ -74,20 +60,20 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment {
|
||||
.setView(rg)
|
||||
.setPositiveButton(R.string.vtl_confirm, ((dialog, which) -> {
|
||||
if (rgDefault.isChecked()) {
|
||||
edit().putString("appname", "vt").commit();
|
||||
edit().putString("selectedicon", appicon).commit();
|
||||
AndroidUtils.edit().putString("appname", "vt").commit();
|
||||
AndroidUtils.edit().putString("selectedicon", appicon).commit();
|
||||
|
||||
switchComponent(appicon, "vt", deficon, defname);
|
||||
IconManager.switchComponent(appicon, "vt", deficon, defname);
|
||||
} else if (rgVK.isChecked()) {
|
||||
edit().putString("appname", "standard").commit();
|
||||
edit().putString("selectedicon", appicon).commit();
|
||||
AndroidUtils.edit().putString("appname", "standard").commit();
|
||||
AndroidUtils.edit().putString("selectedicon", appicon).commit();
|
||||
|
||||
switchComponent(appicon, "standard", deficon, defname);
|
||||
IconManager.switchComponent(appicon, "standard", deficon, defname);
|
||||
} else if (rgVKontakte.isChecked()) {
|
||||
edit().putString("appname", "vkontakte").commit();
|
||||
edit().putString("selectedicon", appicon).commit();
|
||||
AndroidUtils.edit().putString("appname", "vkontakte").commit();
|
||||
AndroidUtils.edit().putString("selectedicon", appicon).commit();
|
||||
|
||||
switchComponent(appicon, "vkontakte", deficon, defname);
|
||||
IconManager.switchComponent(appicon, "vkontakte", deficon, defname);
|
||||
}
|
||||
}))
|
||||
.setNegativeButton(R.string.cancel,
|
||||
@@ -102,20 +88,20 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
this.addPreferencesFromResource(R.xml.empty);
|
||||
|
||||
if (!hasVerification() && !getBoolValue("dialogrecomm", false)) {
|
||||
addPreference(this, "", requireContext().getString(R.string.icons_warning), requireContext().getString(R.string.icons_warning_info), R.drawable.ic_about_outline_28, preference -> {
|
||||
getContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app/donate/")));
|
||||
if (!Preferences.hasVerification() && !Preferences.getBoolValue("dialogrecomm", false)) {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", requireContext().getString(R.string.icons_warning), requireContext().getString(R.string.icons_warning_info), R.drawable.ic_about_outline_28, preference -> {
|
||||
getContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://vtosters.app/donate/")));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.icons_title));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.icons_title));
|
||||
|
||||
for (var i = 0; i < icons().size(); i++) {
|
||||
if (icons().get(i) == null || iconsValues().get(i) == null) return;
|
||||
for (var i = 0; i < IconManager.icons().size(); i++) {
|
||||
if (IconManager.icons().get(i) == null || IconManager.iconsValues().get(i) == null) return;
|
||||
|
||||
String iconname = icons().get(i);
|
||||
String icon = iconsValues().get(i);
|
||||
String iconname = IconManager.icons().get(i);
|
||||
String icon = IconManager.iconsValues().get(i);
|
||||
|
||||
int iconRes;
|
||||
|
||||
@@ -124,7 +110,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment {
|
||||
} else if (icon.contains("standard")) {
|
||||
iconRes = R.mipmap.ic_launcher_round;
|
||||
} else {
|
||||
iconRes = getIdentifier("ic_launcher_" + icon, "mipmap");
|
||||
iconRes = AndroidUtils.getIdentifier("ic_launcher_" + icon, "mipmap");
|
||||
}
|
||||
|
||||
Drawable drawable = ResourcesCompat.getDrawable(getResources(), iconRes, null);
|
||||
@@ -133,20 +119,20 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment {
|
||||
drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_bug_outline_28, null);
|
||||
}
|
||||
|
||||
addPreferenceDrawable(this, icon, iconname, "", drawable, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), icon, iconname, "", drawable, preference -> {
|
||||
callSelectDialog(this.getContext(), icon);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (!hasVerification() && !getBoolValue("dialogrecomm", false)) {
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.unavailable_icons));
|
||||
if (!Preferences.hasVerification() && !Preferences.getBoolValue("dialogrecomm", false)) {
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.unavailable_icons));
|
||||
|
||||
for (var i = 2; i < sIconsPlusNames.size(); i++) {
|
||||
if (sIconsPlusNames.get(i) == null || sIconsPlus.get(i) == null) return;
|
||||
for (var i = 2; i < IconManager.sIconsPlusNames.size(); i++) {
|
||||
if (IconManager.sIconsPlusNames.get(i) == null || IconManager.sIconsPlus.get(i) == null) return;
|
||||
|
||||
String iconname = sIconsPlusNames.get(i);
|
||||
String icon = sIconsPlus.get(i);
|
||||
String iconname = IconManager.sIconsPlusNames.get(i);
|
||||
String icon = IconManager.sIconsPlus.get(i);
|
||||
|
||||
int iconRes;
|
||||
|
||||
@@ -155,7 +141,7 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment {
|
||||
} else if (icon.contains("standard")) {
|
||||
iconRes = R.mipmap.ic_launcher_round;
|
||||
} else {
|
||||
iconRes = getIdentifier("ic_launcher_" + icon, "mipmap");
|
||||
iconRes = AndroidUtils.getIdentifier("ic_launcher_" + icon, "mipmap");
|
||||
}
|
||||
|
||||
Drawable drawable = ResourcesCompat.getDrawable(getResources(), iconRes, null);
|
||||
@@ -164,8 +150,8 @@ public class IconsFragment extends MaterialPreferenceToolbarFragment {
|
||||
drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_bug_outline_28, null);
|
||||
}
|
||||
|
||||
addPreferenceDrawable(this, icon, iconname, "", drawable, preference -> {
|
||||
sendToast(requireContext().getString(R.string.unavailable_icon_warning));
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), icon, iconname, "", drawable, preference -> {
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.unavailable_icon_warning));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,34 +1,17 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getEmuiVersionCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionIncrementalCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getMiuiUiVersionName;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getOneUiMajorVersion;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.getOneUiMinorVersion;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.hasMiuiIncrCode;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isEMUI;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isFlyme;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isMIUI;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isOneUi;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isSamsung;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isVivo;
|
||||
import static ru.vtosters.lite.deviceinfo.OEMDetector.isZenUI;
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreference;
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.addPreferenceCategory;
|
||||
import static ru.vtosters.lite.utils.About.getBuildNumber;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.isTablet;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
|
||||
import static ru.vtosters.lite.utils.Preferences.isValidSignature;
|
||||
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
import ru.vtosters.lite.deviceinfo.OEMDetector;
|
||||
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
|
||||
import ru.vtosters.lite.utils.About;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.Preferences;
|
||||
|
||||
public class SystemInfo extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
@@ -37,8 +20,8 @@ public class SystemInfo extends MaterialPreferenceToolbarFragment {
|
||||
super.onCreate(bundle);
|
||||
addPreferencesFromResource(R.xml.empty);
|
||||
|
||||
var oneUiMajorVersion = String.valueOf(getOneUiMajorVersion());
|
||||
var oneUiMinorVersion = String.valueOf(getOneUiMinorVersion());
|
||||
var oneUiMajorVersion = String.valueOf(OEMDetector.getOneUiMajorVersion());
|
||||
var oneUiMinorVersion = String.valueOf(OEMDetector.getOneUiMinorVersion());
|
||||
var sdkVersion = String.valueOf(Build.VERSION.SDK_INT);
|
||||
var productName = Build.PRODUCT;
|
||||
var deviceName = Build.DEVICE;
|
||||
@@ -46,145 +29,145 @@ public class SystemInfo extends MaterialPreferenceToolbarFragment {
|
||||
var manufacturerName = Build.MANUFACTURER;
|
||||
var brandName = Build.BRAND;
|
||||
var modelName = Build.MODEL;
|
||||
var miuiUiVersionName = getMiuiUiVersionName();
|
||||
var miuiIncrementalCodeName = getMiuiUiVersionIncrementalCode();
|
||||
var miuiUiVersionCodeName = getMiuiUiVersionCode();
|
||||
var emuiVersionCode = getEmuiVersionCode();
|
||||
var miuiUiVersionName = OEMDetector.getMiuiUiVersionName();
|
||||
var miuiIncrementalCodeName = OEMDetector.getMiuiUiVersionIncrementalCode();
|
||||
var miuiUiVersionCodeName = OEMDetector.getMiuiUiVersionCode();
|
||||
var emuiVersionCode = OEMDetector.getEmuiVersionCode();
|
||||
var packageName = requireContext().getPackageName();
|
||||
var commit = getBuildNumber();
|
||||
var commit = About.getBuildNumber();
|
||||
|
||||
var isMiui = isMIUI();
|
||||
var isFlyme = isFlyme();
|
||||
var isSamsung = isSamsung();
|
||||
var isOneUi = isOneUi();
|
||||
var isVivo = isVivo();
|
||||
var isZenUI = isZenUI();
|
||||
var isEMUI = isEMUI();
|
||||
var hasMiuiIncrCode = hasMiuiIncrCode();
|
||||
var isMiui = OEMDetector.isMIUI();
|
||||
var isFlyme = OEMDetector.isFlyme();
|
||||
var isSamsung = OEMDetector.isSamsung();
|
||||
var isOneUi = OEMDetector.isOneUi();
|
||||
var isVivo = OEMDetector.isVivo();
|
||||
var isZenUI = OEMDetector.isZenUI();
|
||||
var isEMUI = OEMDetector.isEMUI();
|
||||
var hasMiuiIncrCode = OEMDetector.hasMiuiIncrCode();
|
||||
|
||||
var isValidSignature = isValidSignature();
|
||||
var isTablet = isTablet();
|
||||
var isValidSignature = Preferences.isValidSignature();
|
||||
var isTablet = AndroidUtils.isTablet();
|
||||
|
||||
addPreferenceCategory(this, "App information");
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "App information");
|
||||
|
||||
addPreference(this, "", "Package name", packageName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Package name", packageName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", packageName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Commit", commit, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Commit", commit, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", commit));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Valid Signature", "Value: " + isValidSignature, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Valid Signature", "Value: " + isValidSignature, 0, null);
|
||||
|
||||
addPreference(this, "", "isTablet", "Value: " + isTablet, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isTablet", "Value: " + isTablet, 0, null);
|
||||
|
||||
addPreferenceCategory(this, "System information");
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "System information");
|
||||
|
||||
addPreference(this, "", "SDK Version", sdkVersion, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "SDK Version", sdkVersion, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", sdkVersion));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Product Name", productName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Product Name", productName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", productName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Device Name", deviceName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Device Name", deviceName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", deviceName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Board Name", boardName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Board Name", boardName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", boardName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Manufacturer Name", manufacturerName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Manufacturer Name", manufacturerName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", manufacturerName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Brand Name", brandName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Brand Name", brandName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", brandName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "Model Name", modelName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "Model Name", modelName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", modelName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreferenceCategory(this, "OEM Information");
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "OEM Information");
|
||||
|
||||
if (isOneUi) {
|
||||
addPreference(this, "", "OneUiMajorVersion", oneUiMajorVersion, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "OneUiMajorVersion", oneUiMajorVersion, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", oneUiMajorVersion));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "OneUiMinorVersion", oneUiMinorVersion, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "OneUiMinorVersion", oneUiMinorVersion, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", oneUiMinorVersion));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
} else if (isMiui) {
|
||||
addPreference(this, "", "miuiUiVersionName", miuiUiVersionName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "miuiUiVersionName", miuiUiVersionName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiUiVersionName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", "miuiUiVersionCodeName", miuiUiVersionCodeName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "miuiUiVersionCodeName", miuiUiVersionCodeName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiUiVersionCodeName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
|
||||
if (hasMiuiIncrCode) {
|
||||
addPreference(this, "", "miuiIncrementalCodeName", miuiIncrementalCodeName, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "miuiIncrementalCodeName", miuiIncrementalCodeName, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", miuiIncrementalCodeName));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
} else if (isEMUI) {
|
||||
addPreference(this, "", "emuiVersionCode", emuiVersionCode, 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "emuiVersionCode", emuiVersionCode, 0, preference -> {
|
||||
((ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("MBH-ST", emuiVersionCode));
|
||||
sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
AndroidUtils.sendToast(requireContext().getString(R.string.copied_to_clipboard));
|
||||
return false;
|
||||
});
|
||||
} else {
|
||||
addPreference(this, "", "No info", "No information about OEM", 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "No info", "No information about OEM", 0, null);
|
||||
}
|
||||
|
||||
addPreferenceCategory(this, "OEM List");
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), "OEM List");
|
||||
|
||||
addPreference(this, "", "isOneUi", "Value: " + isOneUi, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isOneUi", "Value: " + isOneUi, 0, null);
|
||||
|
||||
addPreference(this, "", "isMiui", "Value: " + isMiui, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isMiui", "Value: " + isMiui, 0, null);
|
||||
|
||||
addPreference(this, "", "isEMUI", "Value: " + isEMUI, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isEMUI", "Value: " + isEMUI, 0, null);
|
||||
|
||||
addPreference(this, "", "isFlyme", "Value: " + isFlyme, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isFlyme", "Value: " + isFlyme, 0, null);
|
||||
|
||||
addPreference(this, "", "isSamsung", "Value: " + isSamsung, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isSamsung", "Value: " + isSamsung, 0, null);
|
||||
|
||||
addPreference(this, "", "isVivo", "Value: " + isVivo, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isVivo", "Value: " + isVivo, 0, null);
|
||||
|
||||
addPreference(this, "", "isZenUI", "Value: " + isZenUI, 0, null);
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", "isZenUI", "Value: " + isZenUI, 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.WindowManager;
|
||||
@@ -97,7 +96,7 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
findPreference("accentprefs").setVisible(!ThemesUtils.isMonetTheme() && ThemesUtils.isMilkshake());
|
||||
|
||||
if (AndroidUtils.isTablet()) {
|
||||
if(AndroidUtils.isTablet()) {
|
||||
PreferenceCategory dockbarSettingsPreferenceCategory = (PreferenceCategory) findPreference("dockbarsett");
|
||||
dockbarSettingsPreferenceCategory.setVisible(false);
|
||||
}
|
||||
@@ -113,7 +112,7 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment {
|
||||
new VkAlertDialog.Builder(requireContext())
|
||||
.setTitle(AndroidUtils.getString("change_accent_color"))
|
||||
.setItems(titles, (dialog, which) -> {
|
||||
switch (which) {
|
||||
switch(which) {
|
||||
case 0:
|
||||
showColorPicker();
|
||||
break;
|
||||
@@ -154,8 +153,8 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment {
|
||||
void showPalettesDialog() {
|
||||
final var manager = PalettesManager.getInstance();
|
||||
final var titles = new String[manager.getPalettesCount()];
|
||||
if (titles.length > 0) {
|
||||
for (int i = 0; i < titles.length; ++i)
|
||||
if(titles.length > 0) {
|
||||
for(int i = 0; i < titles.length; ++i)
|
||||
titles[i] = manager.getPalette(i).name;
|
||||
new VkAlertDialog.Builder(requireContext())
|
||||
.setTitle(AndroidUtils.getString("select_palette"))
|
||||
@@ -178,7 +177,7 @@ public class ThemesFragment extends MaterialPreferenceToolbarFragment {
|
||||
LifecycleUtils.restartApplicationWithTimer();
|
||||
}
|
||||
|
||||
private void switchFragment(Class<? extends FragmentImpl> fragmentClz) {
|
||||
private void switchFragment(Class< ? extends FragmentImpl > fragmentClz) {
|
||||
var intent = new Navigator(fragmentClz)
|
||||
.b(requireContext())
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
@@ -15,8 +15,9 @@ public class VKPayFragment extends FragmentImpl {
|
||||
|
||||
public void start() {
|
||||
VKUIwrapper.setLink("https://vk.com/vkpay");
|
||||
Intent a2 = new Navigator(VKUIwrapper.class).b(getActivity());
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(a2);
|
||||
Intent intent = new Navigator(VKUIwrapper.class)
|
||||
.b(getActivity())
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
package ru.vtosters.lite.ui.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.StringRes;
|
||||
import com.aefyr.tsg.g2.TelegramStickersPack;
|
||||
import com.aefyr.tsg.g2.TelegramStickersService;
|
||||
import com.vk.about.AboutAppFragment;
|
||||
import com.vk.balance.BalanceFragment;
|
||||
import com.vk.core.fragments.FragmentImpl;
|
||||
import com.vk.navigation.Navigator;
|
||||
import com.vk.notifications.settings.NotificationsSettingsFragment;
|
||||
import com.vk.webapp.fragments.PrivacyFragment;
|
||||
@@ -25,30 +26,20 @@ import com.vtosters.lite.general.fragments.SettingsGeneralFragment;
|
||||
import com.vtosters.lite.ui.MaterialSwitchPreference;
|
||||
import ru.vtosters.lite.concurrent.VTExecutors;
|
||||
import ru.vtosters.lite.hooks.ui.SystemThemeChangerHook;
|
||||
import ru.vtosters.lite.ssfs.Utils;
|
||||
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
|
||||
import ru.vtosters.lite.ui.components.DockBarEditorManager;
|
||||
import ru.vtosters.lite.ui.components.SuperAppEditorManager;
|
||||
import ru.vtosters.lite.ui.dialogs.OTADialog;
|
||||
import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import ru.vtosters.lite.utils.SSFSUtils;
|
||||
import ru.vtosters.lite.utils.ThemesUtils;
|
||||
import ru.vtosters.lite.utils.*;
|
||||
|
||||
import static ru.vtosters.lite.ui.PreferencesUtil.*;
|
||||
import static ru.vtosters.lite.utils.About.getBuildNumber;
|
||||
import static ru.vtosters.lite.utils.About.getCommitLink;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.*;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.*;
|
||||
import static ru.vtosters.lite.utils.GmsUtils.isGmsInstalled;
|
||||
import static ru.vtosters.lite.utils.ImageUtils.getDrawableFromUrl;
|
||||
import static ru.vtosters.lite.utils.Preferences.*;
|
||||
import static ru.vtosters.lite.utils.ThemesUtils.*;
|
||||
import static ru.vtosters.lite.utils.VTVerifications.vtverif;
|
||||
public class VTSettings extends MaterialPreferenceToolbarFragment implements TelegramStickersService.StickersEventsListener {
|
||||
|
||||
public class VTSettings extends MaterialPreferenceToolbarFragment {
|
||||
public static String getValAsString(@StringRes int strRes, Boolean value) {
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
if (value) {
|
||||
if(value) {
|
||||
return AndroidUtils.getString(strRes) + ": " + AndroidUtils.getString(R.string.vtlsettenabled);
|
||||
}
|
||||
|
||||
@@ -56,44 +47,44 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
|
||||
}
|
||||
|
||||
public static String getSSFSsumm() {
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
if (hasSpecialVerif())
|
||||
if(Preferences.hasSpecialVerif())
|
||||
return AndroidUtils.getString(R.string.vtlssfssumm) + ": " + AndroidUtils.getString(R.string.vtlsettverifyes);
|
||||
|
||||
return AndroidUtils.getString(R.string.vtlssfssumm) + ": " + AndroidUtils.getString(R.string.vtlsettverifno);
|
||||
}
|
||||
|
||||
public static String getDocksumm() {
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
return AndroidUtils.getString(R.string.vtldocksumm) + ": " + DockBarEditorManager.getInstance().getSelectedTabs().size();
|
||||
}
|
||||
|
||||
public static String getTGSsumm() {
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
return AndroidUtils.getString(R.string.vtltgssumm) + ": " + TelegramStickersService.getInstance(AndroidUtils.getGlobalContext()).getPacksListReference().size();
|
||||
return AndroidUtils.getString(R.string.vtltgssumm) + ": " + TelegramStickersService.getInstance(AndroidUtils.getGlobalContext()).getActivePacksListReference().size();
|
||||
}
|
||||
|
||||
public static String getProxysumm() {
|
||||
var type = getPrefsValue("proxy");
|
||||
var type = AndroidUtils.getPrefsValue("proxy");
|
||||
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
if (type.equals("noproxy") || type.isEmpty())
|
||||
if(type.equals("noproxy") || type.isEmpty())
|
||||
type = AndroidUtils.getString(R.string.vtlsettdisabled);
|
||||
|
||||
return AndroidUtils.getString(R.string.vtlproxysumm) + ": " + type;
|
||||
}
|
||||
|
||||
public static String getThemesumm() {
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
String str;
|
||||
String[] themeTypeName = AndroidUtils.getArray("theme_type_name");
|
||||
|
||||
switch (getPrefsValue("currsystemtheme")) {
|
||||
switch(AndroidUtils.getPrefsValue("currsystemtheme")) {
|
||||
default:
|
||||
case "system":
|
||||
str = themeTypeName[0];
|
||||
@@ -110,45 +101,63 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
|
||||
}
|
||||
|
||||
public static String getSuperappsumm() {
|
||||
if (disableSettingsSumms()) return null;
|
||||
if(Preferences.disableSettingsSumms()) return null;
|
||||
|
||||
return AndroidUtils.getString(R.string.elements_hidden_count) + ": " + SuperAppEditorManager.getInstance().getDisabledTabs().size();
|
||||
}
|
||||
|
||||
private void switchTheme(boolean isDarkTheme) {
|
||||
setTheme(isDarkTheme ? getDarkTheme() : getLightTheme(), requireActivity());
|
||||
ThemesUtils.setTheme(isDarkTheme ? ThemesUtils.getDarkTheme() : ThemesUtils.getLightTheme(), requireActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackAdded(TelegramStickersPack pack, int atIndex) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackRemoved(TelegramStickersPack pack, int atIndex) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackChanged(TelegramStickersPack pack, int atIndex) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackDownloadError(TelegramStickersPack pack, Exception error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivePacksListChanged() {
|
||||
findPreference("tgs_stickers").setSummary(getTGSsumm());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInactivePacksListChanged() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
|
||||
var feedsumm = getValAsString(R.string.vtlfeedsumm, ads());
|
||||
var docksumm = getDocksumm();
|
||||
var msgsumm = isTablet() ? getValAsString(R.string.autotranslate_title, autotranslate()) : getValAsString(R.string.vtlmsgsumm, vkme());
|
||||
var activitysumm = getValAsString(R.string.vtlactivitysumm, offline());
|
||||
var themessumm = getValAsString(R.string.vtlthemessumm, navbar());
|
||||
var tgssumm = getTGSsumm();
|
||||
var superapp = getSuperappsumm();
|
||||
var mediasumm = getValAsString(R.string.vtlinterfacesumm, shortinfo());
|
||||
var interfacesumm = getValAsString(R.string.showstories, stories());
|
||||
var proxysumm = getProxysumm();
|
||||
var othersumm = getValAsString(R.string.vtlothersumm, vtverif());
|
||||
var ssfs = getSSFSsumm();
|
||||
var about = "Commit: " + getBuildNumber();
|
||||
TelegramStickersService.getInstance(requireContext()).addStickersEventsListener(this);
|
||||
|
||||
this.addPreferencesFromResource(R.xml.empty);
|
||||
|
||||
addPreferenceDrawable(
|
||||
this,
|
||||
var accountSwitcher = PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"account_switcher",
|
||||
getUsername(),
|
||||
AccountManagerUtils.getUsername(),
|
||||
requireContext().getString(R.string.vtllogout),
|
||||
requireContext().getDrawable(R.drawable.ic_user_circle_outline_28),
|
||||
preference -> {
|
||||
try {
|
||||
VKAuth.a("logout", false);
|
||||
} catch (Exception ignored) {
|
||||
} catch(Exception ignored) {
|
||||
}
|
||||
|
||||
var intent = new Intent(requireContext(), MainActivity.class)
|
||||
@@ -158,310 +167,475 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
|
||||
requireContext().startActivity(intent);
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
VTExecutors.getIoScheduler().a(() -> {
|
||||
var icon = getDrawableFromUrl(getUserPhoto(), 0, true, true);
|
||||
if (icon == null) return;
|
||||
var icon = ImageUtils.getDrawableFromUrl(AccountManagerUtils.getUserPhoto(), 0, true, true);
|
||||
if(icon == null) return;
|
||||
requireActivity().runOnUiThread(() -> {
|
||||
findPreference("account_switcher").setIcon(icon);
|
||||
accountSwitcher.setIcon(icon);
|
||||
});
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtssfs), ssfs, R.drawable.ic_link_circle_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
VKUIwrapper.setLink(SSFSUtils.getSSFSLink());
|
||||
Intent a2 = new Navigator(VKUIwrapper.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtssfs),
|
||||
getSSFSsumm(),
|
||||
R.drawable.ic_link_circle_outline_28,
|
||||
preference -> {
|
||||
VKUIwrapper.setLink(Utils.getVKUILink());
|
||||
launchFragment(VKUIwrapper.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.appearance_theme_use_system));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.appearance_theme_use_system);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 28 && milkshake()) {
|
||||
addListPreferenceIcon(
|
||||
this,
|
||||
if(Build.VERSION.SDK_INT >= 28 && Preferences.milkshake()) {
|
||||
PreferenceFragmentUtils.addListPreference(
|
||||
getPreferenceScreen(),
|
||||
"currsystemtheme",
|
||||
"system",
|
||||
requireContext().getString(R.string.appearance_theme_use_system),
|
||||
R.drawable.ic_palette_outline_28, getThemesumm(),
|
||||
R.drawable.ic_palette_outline_28,
|
||||
getThemesumm(),
|
||||
AndroidUtils.getArray("theme_type_name_checkbox"),
|
||||
new String[]{"system", "dark", "light"},
|
||||
new String[] { "system", "dark", "light" },
|
||||
(preference, o) -> {
|
||||
String value = (String) o;
|
||||
if (!value.equals("system")) {
|
||||
if(!value.equals("system")) {
|
||||
var theme = value.equals("dark") ? ThemesUtils.getDarkTheme() : ThemesUtils.getLightTheme();
|
||||
ThemesUtils.applyTheme(theme);
|
||||
}
|
||||
edit().putString("currsystemtheme", value).commit();
|
||||
AndroidUtils.edit().putString("currsystemtheme", value).commit();
|
||||
SystemThemeChangerHook.onThemeChanged(getResources().getConfiguration());
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
addMaterialSwitchPreference(this, "", requireContext().getString(R.string.vtsettdarktheme), "", R.drawable.ic_palette_outline_28, isDarkTheme(), (preference, o) -> {
|
||||
final var switchPreference = (MaterialSwitchPreference) preference;
|
||||
final var isDarkTheme = !switchPreference.isChecked();
|
||||
switchTheme(isDarkTheme);
|
||||
return true;
|
||||
});
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtsettdarktheme),
|
||||
"",
|
||||
R.drawable.ic_palette_outline_28,
|
||||
ThemesUtils.isDarkTheme(),
|
||||
(preference, o) -> {
|
||||
final var switchPreference = (MaterialSwitchPreference) preference;
|
||||
final var isDarkTheme = !switchPreference.isChecked();
|
||||
switchTheme(isDarkTheme);
|
||||
return true;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (!isGmsInstalled()) {
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.gmsname));
|
||||
if(!GmsUtils.isGmsInstalled()) {
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.gmsname);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.installgms), "", R.drawable.ic_about_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(InstallGMSFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.installgms),
|
||||
"",
|
||||
R.drawable.ic_about_outline_28,
|
||||
preference -> {
|
||||
launchFragment(InstallGMSFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (devmenu()) {
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.sett_debug));
|
||||
if(Preferences.devmenu()) {
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.sett_debug);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.sett_debug), "", R.drawable.ic_bug_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(SettingsDebugFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.sett_debug),
|
||||
"",
|
||||
R.drawable.ic_bug_outline_28,
|
||||
preference -> {
|
||||
launchFragment(SettingsDebugFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addMaterialSwitchPreference(this, "ssl", requireContext().getString(R.string.debug_developer_force_ssl), requireContext().getString(R.string.debug_developer_force_ssl_summary), R.drawable.ic_globe_outline_28, true, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("ssl", value).commit();
|
||||
return true;
|
||||
});
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(
|
||||
getPreferenceScreen(),
|
||||
"ssl",
|
||||
requireContext().getString(R.string.debug_developer_force_ssl),
|
||||
requireContext().getString(R.string.debug_developer_force_ssl_summary),
|
||||
R.drawable.ic_globe_outline_28,
|
||||
true,
|
||||
(preference, o) -> {
|
||||
AndroidUtils.edit().putBoolean("ssl", (boolean) o).commit();
|
||||
return true;
|
||||
}
|
||||
);
|
||||
|
||||
if (dev() && isValidSignature()) {
|
||||
addMaterialSwitchPreference(this, "autoupdates", requireContext().getString(R.string.checkupdates), "", R.drawable.ic_camera_switch_outline_24, true, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("autoupdates", value).commit();
|
||||
return true;
|
||||
});
|
||||
if(Preferences.dev() && Preferences.isValidSignature()) {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(
|
||||
getPreferenceScreen(),
|
||||
"autoupdates",
|
||||
requireContext().getString(R.string.checkupdates),
|
||||
"",
|
||||
R.drawable.ic_camera_switch_outline_24,
|
||||
true,
|
||||
(preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
AndroidUtils.edit().putBoolean("autoupdates", value).commit();
|
||||
return true;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.vtsettaccount));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.vtsettaccount);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vkconnect), "", R.drawable.ic_user_circle_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
VKUIwrapper.officalLinks("account");
|
||||
Intent a2 = new Navigator(VKUIwrapper.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.privacy_settings), "", R.drawable.ic_privacy_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(PrivacyFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.sett_account), "", R.drawable.ic_user_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(SettingsAccountFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
if (isVKTester()) {
|
||||
addPreference(this, "", requireContext().getString(R.string.bugs), "", R.drawable.ic_bug_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
VKUIwrapper.officalLinks("bugs");
|
||||
Intent a2 = new Navigator(VKUIwrapper.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.vtlvksettings));
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.sett_general), "", R.drawable.ic_settings_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(SettingsGeneralFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.blacklist), "", R.drawable.ic_users_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(BlacklistFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.sett_notifications), "", R.drawable.ic_menu_notification_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(NotificationsSettingsFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
if (VKAccountManager.d().isMusicSubs()) {
|
||||
addPreference(this, "", requireContext().getString(R.string.subscription_music), "", R.drawable.ic_music_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(MusicSubscriptionControlFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.votes), "", R.drawable.ic_coins_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(BalanceFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.vtsettmod));
|
||||
|
||||
if (vkme()) {
|
||||
addPreference(this, "", requireContext().getString(R.string.warning), requireContext().getString(R.string.vkme_mode_info), R.drawable.ic_about_outline_28, preference -> false);
|
||||
} else {
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlfeed), feedsumm, R.drawable.ic_newsfeed_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(FeedFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlmedia), mediasumm, R.drawable.ic_media_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(MediaFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlmessages), msgsumm, R.drawable.ic_message_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(MessagesFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtltgs), tgssumm, R.drawable.ic_telegram_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(StickersFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlthemes), themessumm, R.drawable.ic_write_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(ThemesFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlinterface), interfacesumm, R.drawable.ic_interface_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(InterfaceFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
|
||||
if (!vkme()) {
|
||||
if (!isTablet()) {
|
||||
addPreference(this, "", requireContext().getString(R.string.dockbar_editor), docksumm, R.drawable.ic_list_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent intent = new Navigator(DockBarEditorFragment.class).b(context);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vkconnect),
|
||||
"",
|
||||
R.drawable.ic_user_circle_outline_28,
|
||||
preference -> {
|
||||
VKUIwrapper.officalLinks("account");
|
||||
launchFragment(VKUIwrapper.class);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
if (milkshake() && superapp()) {
|
||||
addPreference(this, "", requireContext().getString(R.string.superapp_editor), superapp, R.drawable.ic_services_outline_28, (preference) -> {
|
||||
Context context = requireContext();
|
||||
Intent intent = new Navigator(SuperAppEditorFragment.class).b(context);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
return true;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.privacy_settings),
|
||||
"",
|
||||
R.drawable.ic_privacy_outline_28,
|
||||
preference -> {
|
||||
launchFragment(PrivacyFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.sett_account),
|
||||
"",
|
||||
R.drawable.ic_user_outline_28,
|
||||
preference -> {
|
||||
launchFragment(SettingsAccountFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
if(AccountManagerUtils.isVKTester()) {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.bugs),
|
||||
"",
|
||||
R.drawable.ic_bug_outline_28,
|
||||
preference -> {
|
||||
VKUIwrapper.officalLinks("bugs");
|
||||
launchFragment(VKUIwrapper.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtlvksettings));
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.sett_general),
|
||||
"",
|
||||
R.drawable.ic_settings_outline_28,
|
||||
preference -> {
|
||||
launchFragment(SettingsGeneralFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.blacklist),
|
||||
"",
|
||||
R.drawable.ic_users_outline_28,
|
||||
preference -> {
|
||||
launchFragment(BlacklistFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.sett_notifications),
|
||||
"",
|
||||
R.drawable.ic_menu_notification_outline_28,
|
||||
preference -> {
|
||||
launchFragment(NotificationsSettingsFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
if(VKAccountManager.d().isMusicSubs()) {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.subscription_music),
|
||||
"",
|
||||
R.drawable.ic_music_outline_28,
|
||||
preference -> {
|
||||
launchFragment(MusicSubscriptionControlFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.votes),
|
||||
"",
|
||||
R.drawable.ic_coins_outline_28,
|
||||
preference -> {
|
||||
launchFragment(BalanceFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtsettmod));
|
||||
|
||||
if(Preferences.vkme()) {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.warning),
|
||||
requireContext().getString(R.string.vkme_mode_info),
|
||||
R.drawable.ic_about_outline_28,
|
||||
preference -> false
|
||||
);
|
||||
} else {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlfeed),
|
||||
getValAsString(R.string.vtlfeedsumm, Preferences.ads()),
|
||||
R.drawable.ic_newsfeed_outline_28,
|
||||
preference -> {
|
||||
launchFragment(FeedFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlmedia),
|
||||
getValAsString(R.string.vtlinterfacesumm, Preferences.shortinfo()),
|
||||
R.drawable.ic_media_outline_28,
|
||||
preference -> {
|
||||
launchFragment(MediaFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlmessages),
|
||||
AndroidUtils.isTablet()
|
||||
? getValAsString(R.string.autotranslate_title, Preferences.autotranslate())
|
||||
: getValAsString(R.string.vtlmsgsumm, Preferences.vkme()),
|
||||
R.drawable.ic_message_outline_28,
|
||||
preference -> {
|
||||
launchFragment(MessagesFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"tgs_stickers",
|
||||
requireContext().getString(R.string.vtltgs),
|
||||
getTGSsumm(),
|
||||
R.drawable.ic_telegram_outline_28,
|
||||
preference -> {
|
||||
launchFragment(StickersFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlthemes),
|
||||
getThemesumm(),
|
||||
R.drawable.ic_write_outline_28,
|
||||
preference -> {
|
||||
launchFragment(ThemesFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlinterface),
|
||||
getValAsString(R.string.showstories, Preferences.stories()),
|
||||
R.drawable.ic_interface_outline_28,
|
||||
preference -> {
|
||||
launchFragment(InterfaceFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
if(!Preferences.vkme()) {
|
||||
if(!AndroidUtils.isTablet()) {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.dockbar_editor),
|
||||
getDocksumm(),
|
||||
R.drawable.ic_list_outline_28,
|
||||
preference -> {
|
||||
launchFragment(DockBarEditorFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
if(Preferences.milkshake() && Preferences.superapp()) {
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.superapp_editor),
|
||||
getSuperappsumm(),
|
||||
R.drawable.ic_services_outline_28,
|
||||
(preference) -> {
|
||||
launchFragment(SuperAppEditorFragment.class);
|
||||
return true;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlactivity), activitysumm, R.drawable.ic_write_outline_28_new_accent, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(ActivityFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlactivity),
|
||||
getValAsString(R.string.vtlactivitysumm, Preferences.offline()),
|
||||
R.drawable.ic_write_outline_28_new_accent,
|
||||
preference -> {
|
||||
launchFragment(ActivityFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlproxy), proxysumm, R.drawable.ic_globe_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(ProxySettingsFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlproxy),
|
||||
getProxysumm(),
|
||||
R.drawable.ic_globe_outline_28,
|
||||
preference -> {
|
||||
launchFragment(ProxySettingsFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtlother), othersumm, R.drawable.ic_more_horizontal_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(OtherFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtlother),
|
||||
getValAsString(R.string.vtlothersumm, VTVerifications.vtverif()),
|
||||
R.drawable.ic_more_horizontal_28,
|
||||
preference -> {
|
||||
launchFragment(OtherFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.vtsettaboutmod));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtsettaboutmod));
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.menu_about), about, R.drawable.ic_about_outline_28, preference -> {
|
||||
Context context = requireContext();
|
||||
Intent a2 = new Navigator(AboutAppFragment.class).b(context);
|
||||
a2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(a2);
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.menu_about),
|
||||
"Commit: " + About.getBuildNumber(),
|
||||
R.drawable.ic_about_outline_28,
|
||||
preference -> {
|
||||
launchFragment(AboutAppFragment.class);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.opencommit), "", R.drawable.ic_link_outline_28, preference -> {
|
||||
requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse(getCommitLink())));
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.opencommit),
|
||||
"",
|
||||
R.drawable.ic_link_outline_28,
|
||||
preference -> {
|
||||
requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse(About.getCommitLink())));
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.vtfaq), requireContext().getString(R.string.vtfaqsumm), R.drawable.ic_help_outline_28, preference -> {
|
||||
requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://t.me/s/vtosters_faq")));
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.vtfaq),
|
||||
requireContext().getString(R.string.vtfaqsumm),
|
||||
R.drawable.ic_help_outline_28,
|
||||
preference -> {
|
||||
requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://t.me/s/vtosters_faq")));
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.reportbug), requireContext().getString(R.string.reportbugsumm), R.drawable.ic_bug_outline_28, preference -> {
|
||||
requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://github.com/vtosters/lite/issues")));
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.reportbug),
|
||||
requireContext().getString(R.string.reportbugsumm),
|
||||
R.drawable.ic_bug_outline_28,
|
||||
preference -> {
|
||||
requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://github.com/vtosters/lite/issues")));
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
if (isValidSignature()) {
|
||||
addPreferenceCategory(this, requireContext().getString(R.string.updates));
|
||||
if(Preferences.isValidSignature()) {
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.updates));
|
||||
|
||||
addPreference(this, "", requireContext().getString(R.string.checkforupdates), "", R.drawable.ic_download_outline_28, preference -> {
|
||||
OTADialog.checkUpdates(getActivity());
|
||||
return false;
|
||||
});
|
||||
PreferenceFragmentUtils.addPreference(
|
||||
getPreferenceScreen(),
|
||||
"",
|
||||
requireContext().getString(R.string.checkforupdates),
|
||||
"",
|
||||
R.drawable.ic_download_outline_28,
|
||||
preference -> {
|
||||
OTADialog.checkUpdates(getActivity());
|
||||
return false;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private void launchFragment(Class< ? extends FragmentImpl > fragmentClz) {
|
||||
Intent intent = new Navigator(fragmentClz)
|
||||
.b(requireContext())
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
requireContext().startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@@ -471,4 +645,10 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
|
||||
public int T4() {
|
||||
return R.string.notification_settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
TelegramStickersService.getInstance(requireContext()).removeStickersEventsListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,7 +241,7 @@ public class StickersFragment extends BaseToolbarFragment {
|
||||
.setTitle(requireContext().getString(R.string.stickersapi8))
|
||||
.setMessage(requireContext().getString(R.string.stickersapi9) +
|
||||
requireContext().getString(R.string.stickersapi10))
|
||||
.setNeutralButton("Открыть бота", (dl, i) -> {
|
||||
.setNeutralButton(AndroidUtils.getString("open_bot"), (dl, i) -> {
|
||||
var intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/botfather"));
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
requireActivity().startActivity(intent);
|
||||
|
||||
+20
-22
@@ -1,15 +1,13 @@
|
||||
package ru.vtosters.lite.ui.fragments.tgstickers;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.aefyr.tsg.g2.stickersgrabber.TelegramStickersGrabber;
|
||||
import com.vk.core.util.ToastUtils;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
|
||||
import ru.vtosters.lite.tgs.TGPref;
|
||||
import ru.vtosters.lite.tgs.TGRoot;
|
||||
import ru.vtosters.lite.ui.PreferencesUtil;
|
||||
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
|
||||
|
||||
public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
@@ -20,17 +18,17 @@ public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragme
|
||||
int vtosterXml = R.xml.empty;
|
||||
addPreferencesFromResource(vtosterXml);
|
||||
|
||||
PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.sprefsstickers));
|
||||
PreferencesUtil.addPreference(this, "", requireContext().getString(R.string.sprefsdelkey), "", 0, preference -> {
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.sprefsstickers));
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", R.string.sprefsdelkey, 0, 0, preference -> {
|
||||
TGPref.setTGBotKey(null);
|
||||
ToastUtils.a(requireContext().getString(R.string.sprefsdelkey2));
|
||||
return false;
|
||||
});
|
||||
|
||||
PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.sprefsnetwork));
|
||||
PreferencesUtil.addListPreference(this, "VTGS:CM", "0", requireContext().getString(R.string.sprefsctype), new CharSequence[]{
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.sprefsnetwork));
|
||||
PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "VTGS:CM", "0", requireContext().getString(R.string.sprefsctype), new CharSequence[] {
|
||||
requireContext().getString(R.string.ctypedirect), requireContext().getString(R.string.ctypesocks)
|
||||
}, new String[]{
|
||||
}, new String[] {
|
||||
"0", "2"
|
||||
});
|
||||
|
||||
@@ -40,40 +38,40 @@ public class StickersPreferencesFragment extends MaterialPreferenceToolbarFragme
|
||||
String newData = (String) o;
|
||||
TGPref.setTGConnectMethod(Integer.parseInt(newData));
|
||||
TelegramStickersGrabber.updateURLs();
|
||||
preference.setTitle(TGRoot.getSummary()); // setTitle
|
||||
preference.setTitle(TGRoot.getSummary());
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.ssocks));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), R.string.ssocks);
|
||||
|
||||
PreferencesUtil.addEditTextPreference(this, "tg_proxy_host", requireContext().getString(R.string.ssockshost), (preference, o) -> {
|
||||
TGPref.setTGProxyIP((String) o);
|
||||
PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_host", R.string.ssockshost, (preference, o) -> {
|
||||
TGPref.setTGProxyIP(o);
|
||||
return true;
|
||||
});
|
||||
PreferencesUtil.addEditTextPreference(this, "tg_proxy_port", requireContext().getString(R.string.ssocksport), (preference, o) -> {
|
||||
PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_port", R.string.ssocksport, (preference, o) -> {
|
||||
try {
|
||||
TGPref.setTGProxyPort(Integer.parseInt((String) o));
|
||||
TGPref.setTGProxyPort(Integer.parseInt(o));
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
} catch(Exception e) {
|
||||
ToastUtils.a(requireContext().getString(R.string.ssockswport));
|
||||
return false;
|
||||
}
|
||||
});
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "tg_proxy_auth", requireContext().getString(R.string.ssocksauth), "", 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "tg_proxy_auth", requireContext().getString(R.string.ssocksauth), "", 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
|
||||
findPreference("tg_proxy_login").setEnabled(value); // findPreference("tg_proxy_login").setEnabled(value);
|
||||
findPreference("tg_proxy_pass").setEnabled(value); // findPreference("tg_proxy_pass").setEnabled(booleanValue);
|
||||
findPreference("tg_proxy_login").setEnabled(value);
|
||||
findPreference("tg_proxy_pass").setEnabled(value);
|
||||
|
||||
TGPref.setTGProxyPassEnabled(value);
|
||||
return true;
|
||||
});
|
||||
PreferencesUtil.addEditTextPreference(this, "tg_proxy_login", requireContext().getString(R.string.ssockslogin), (preference, o) -> {
|
||||
TGPref.setTGProxyUserPass((String) o, TGPref.getTGProxyPass());
|
||||
PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_login", R.string.ssockslogin, (preference, o) -> {
|
||||
TGPref.setTGProxyUserPass(o, TGPref.getTGProxyPass());
|
||||
return true;
|
||||
});
|
||||
PreferencesUtil.addEditTextPreference(this, "tg_proxy_pass", requireContext().getString(R.string.ssockspass), (preference, o) -> {
|
||||
TGPref.setTGProxyUserPass(TGPref.getTGProxyUser(), (String) o);
|
||||
PreferenceFragmentUtils.addEditTextPreference(getPreferenceScreen(), "tg_proxy_pass", R.string.ssockspass, (preference, o) -> {
|
||||
TGPref.setTGProxyUserPass(TGPref.getTGProxyUser(), o);
|
||||
return true;
|
||||
});
|
||||
|
||||
|
||||
@@ -1,36 +1,28 @@
|
||||
package ru.vtosters.lite.ui.wallpapers;
|
||||
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getDimmingSummary;
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getMosaicSummary;
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getRadiusSummary;
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.getWallpaperFile;
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.removeWallpaper;
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.requestUpdateWallpaper;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.edit;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
import static ru.vtosters.lite.utils.Preferences.hasVerification;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.preference.ListPreference;
|
||||
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment;
|
||||
import com.vtosters.lite.im.ImEngineProvider;
|
||||
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import ru.vtosters.lite.ui.PreferencesUtil;
|
||||
import ru.vtosters.lite.utils.AndroidUtils;
|
||||
import static ru.vtosters.lite.ui.wallpapers.WallpapersHooks.*;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.edit;
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
import static ru.vtosters.lite.utils.Preferences.hasVerification;
|
||||
|
||||
public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
@@ -55,20 +47,20 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
|
||||
addPreferencesFromResource(R.xml.empty);
|
||||
|
||||
PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.vkim_settings_appearance_chat_preview_title));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vkim_settings_appearance_chat_preview_title));
|
||||
|
||||
mWPPreviewPref = new WallpaperPreferences(getContext());
|
||||
mWPPreviewPref.setIcon(null);
|
||||
mWPPreviewPref.setIconSpaceReserved(false);
|
||||
getPreferenceScreen().addPreference(mWPPreviewPref);
|
||||
|
||||
PreferencesUtil.addPreference(this, "wp_set", requireContext().getString(R.string.wallpaper_select), requireContext().getString(R.string.wallpaper_from_gallery), R.drawable.ic_picture_outline_28, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "wp_set", requireContext().getString(R.string.wallpaper_select), requireContext().getString(R.string.wallpaper_from_gallery), R.drawable.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", requireContext().getString(R.string.wallpaper_remove), "", R.drawable.ic_delete_outline_28, preference -> {
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "wp_clear", requireContext().getString(R.string.wallpaper_remove), "", R.drawable.ic_delete_outline_28, preference -> {
|
||||
removeWallpaper();
|
||||
requestUpdateWallpaper();
|
||||
mWPPreviewPref.redraw();
|
||||
@@ -76,30 +68,30 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addPreferenceCategory(this, requireContext().getString(R.string.vtlfilters));
|
||||
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), requireContext().getString(R.string.vtlfilters));
|
||||
|
||||
if (!hasVerification() && !getBoolValue("dialogrecomm", false)) {
|
||||
PreferencesUtil.addPreference(this, "", requireContext().getString(R.string.filters_warning), requireContext().getString(R.string.icons_warning_info), 0, preference -> {
|
||||
requireContext().startActivity(new Intent("android.intent.action.VIEW").setData(Uri.parse("https://vtosters.app/donate/")));
|
||||
PreferenceFragmentUtils.addPreference(getPreferenceScreen(), "", requireContext().getString(R.string.filters_warning), requireContext().getString(R.string.icons_warning_info), 0, preference -> {
|
||||
requireContext().startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://vtosters.app/donate/")));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
PreferencesUtil.addListPreference(this, "msg_blur_radius", "disabled", requireContext().getString(R.string.filter_blur), AndroidUtils.getArray(R.array.filter_types), new String[]{
|
||||
PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "msg_blur_radius", "disabled", requireContext().getString(R.string.filter_blur), AndroidUtils.getArray(R.array.filter_types), new String[]{
|
||||
"disabled", "low", "med", "high"
|
||||
});
|
||||
|
||||
PreferencesUtil.addListPreference(this, "msg_dim", "off", requireContext().getString(R.string.filter_dim), AndroidUtils.getArray(R.array.filter_dim_types), new String[]{
|
||||
PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "msg_dim", "off", requireContext().getString(R.string.filter_dim), AndroidUtils.getArray(R.array.filter_dim_types), new String[]{
|
||||
"off", "dim_black", "dim_white"
|
||||
});
|
||||
|
||||
|
||||
PreferencesUtil.addListPreference(this, "msg_mosaic", "disabled", requireContext().getString(R.string.filter_mosaic), AndroidUtils.getArray(R.array.filter_types), new String[]{
|
||||
PreferenceFragmentUtils.addListPreference(getPreferenceScreen(), "msg_mosaic", "disabled", requireContext().getString(R.string.filter_mosaic), AndroidUtils.getArray(R.array.filter_types), new String[]{
|
||||
"disabled", "low", "med", "high"
|
||||
});
|
||||
|
||||
if (hasVerification()) {
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_monochrome", requireContext().getString(R.string.filter_monochrome), "", 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_monochrome", requireContext().getString(R.string.filter_monochrome), "", 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_monochrome", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -107,7 +99,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_invert", requireContext().getString(R.string.filter_invert_colors), "", 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_invert", requireContext().getString(R.string.filter_invert_colors), "", 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_invert", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -115,7 +107,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_sepia", requireContext().getString(R.string.filter_sepia), "", 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_sepia", requireContext().getString(R.string.filter_sepia), "", 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_sepia", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -123,7 +115,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_emboss", requireContext().getString(R.string.filter_emboss), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_emboss", requireContext().getString(R.string.filter_emboss), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_emboss", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -131,7 +123,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_engrave", requireContext().getString(R.string.filter_engrave), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_engrave", requireContext().getString(R.string.filter_engrave), requireContext().getString(R.string.filter_maybe_lag), 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_engrave", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -139,7 +131,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_flea", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_flea", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_flea", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -147,7 +139,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
return true;
|
||||
});
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "msg_snow", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "msg_snow", requireContext().getString(R.string.filter_flea), "", 0, false, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("msg_snow", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
@@ -156,7 +148,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment {
|
||||
});
|
||||
}
|
||||
|
||||
PreferencesUtil.addMaterialSwitchPreference(this, "compresswp", requireContext().getString(R.string.compress_wallpaper_title), requireContext().getString(R.string.compress_wallpaper_summ), 0, true, (preference, o) -> {
|
||||
PreferenceFragmentUtils.addMaterialSwitchPreference(getPreferenceScreen(), "compresswp", requireContext().getString(R.string.compress_wallpaper_title), requireContext().getString(R.string.compress_wallpaper_summ), 0, true, (preference, o) -> {
|
||||
boolean value = (boolean) o;
|
||||
edit().putBoolean("compresswp", value).commit();
|
||||
requestUpdateWallpaper();
|
||||
|
||||
@@ -21,7 +21,7 @@ public class Base64Utils {
|
||||
|
||||
public static String encodeValue(String value) {
|
||||
try {
|
||||
return URLEncoder.encode(value, StandardCharsets.UTF_8.toString());
|
||||
return URLEncoder.encode(value, StandardCharsets.UTF_8.name());
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.graphics.*;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import java.net.URL;
|
||||
@@ -77,7 +78,7 @@ public class ImageUtils {
|
||||
return outputBitmap;
|
||||
}
|
||||
|
||||
public static Drawable setTint(Context ctx, Drawable d) {
|
||||
public static Drawable setTint(Context ctx, @NonNull Drawable d) {
|
||||
d.setColorFilter(ThemesUtils.getAccentColor(), PorterDuff.Mode.SRC_ATOP);
|
||||
return d;
|
||||
}
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
package ru.vtosters.lite.utils;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import com.vk.profile.presenter.UserPresenter;
|
||||
import com.vtosters.lite.R;
|
||||
import com.vtosters.lite.api.ExtendedUserProfile;
|
||||
import com.vtosters.lite.fragments.messages.chat.vc.MsgSendVc;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import ru.vtosters.lite.di.singleton.VtOkHttpClient;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserID;
|
||||
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserId;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
|
||||
public class ProfileHider {
|
||||
private static final OkHttpClient client = VtOkHttpClient.getInstance();
|
||||
|
||||
public static void injectMap(HashMap<Integer, UserPresenter.a.a> hashMap) {
|
||||
if (VTVerifications.isServiceAccount(getUserId())) {
|
||||
hashMap.put(100, new UserPresenter.a.a(R.string.service_account_admin_100_info, R.color.service_account_admin_100, R.drawable.ic_custom_avatar_id100));
|
||||
hashMap.put(101, new UserPresenter.a.a(R.string.service_account_admin_101_info, R.color.service_account_admin_101, R.drawable.ic_custom_avatar_id101));
|
||||
hashMap.put(333, new UserPresenter.a.a(R.string.service_account_mobile_info, R.color.service_account_admin_333, R.drawable.ic_custom_avatar_id333)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static void fetchInfo(ExtendedUserProfile extendedUserProfile) {
|
||||
int userID = getUserID(extendedUserProfile.a);
|
||||
if (VTVerifications.isServiceAccount(userID)) {
|
||||
Request request = new Request.a()
|
||||
.b("https://sf.vknext.net/block_text?user_id=" + userID)
|
||||
.a();
|
||||
try {
|
||||
JSONObject payload = new JSONObject(client.a(request)
|
||||
.execute()
|
||||
.c()
|
||||
.a()
|
||||
.g());
|
||||
String response = payload.optJSONObject(MsgSendVc.d0).optString("response");
|
||||
if (!TextUtils.isEmpty(response))
|
||||
extendedUserProfile.z2 = response;
|
||||
} catch (IOException | JSONException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NullPointerException e) {
|
||||
Log.e("ProfileHide", "null \"profiles\" node\n" + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String getInfo(ExtendedUserProfile extendedUserProfile) {
|
||||
int userID = getUserID(extendedUserProfile);
|
||||
if (VTVerifications.isServiceAccount(userID) && !TextUtils.isEmpty(extendedUserProfile.z2))
|
||||
return extendedUserProfile.z2;
|
||||
return getGlobalContext().getString(UserPresenter.q0.a(userID));
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package ru.vtosters.lite.utils;
|
||||
|
||||
import com.vk.core.network.Network;
|
||||
|
||||
import static ru.vtosters.lite.hooks.DateHook.getLocale;
|
||||
import static ru.vtosters.lite.proxy.ProxyUtils.isAnyProxyEnabled;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
|
||||
import static ru.vtosters.lite.utils.Preferences.dev;
|
||||
import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme;
|
||||
|
||||
public class SSFSUtils {
|
||||
public static String getSSFSLink() {
|
||||
return SSFSDomain() +
|
||||
"?token=" + AccountManagerUtils.getUserToken() +
|
||||
"&vt_dark=" + getDarkVKUI() +
|
||||
"&vt_amoled=" + getAmoledVKUI() +
|
||||
"&secret=" + AccountManagerUtils.getUserSecret() +
|
||||
"&proxy=" + getUserProxy() +
|
||||
"&lang=" + getLocale() +
|
||||
"&vt=1" +
|
||||
"&useragent=" + Base64Utils.encodeValue(Base64Utils.encode(Network.l.c().a())) +
|
||||
"&vt_debug=" + isDEVModEnabled();
|
||||
}
|
||||
|
||||
public static String SSFSDomain() {
|
||||
String string = getPrefsValue("ssfscustom");
|
||||
|
||||
if (!string.isEmpty()) return string;
|
||||
|
||||
return "https://ssfs.vtosters.app";
|
||||
}
|
||||
|
||||
public static String getDarkVKUI() {
|
||||
return isDarkTheme() ? "1" : "0";
|
||||
}
|
||||
|
||||
public static String getAmoledVKUI() {
|
||||
return ThemesUtils.isAmoledTheme() && isDarkTheme() ? "1" : "0";
|
||||
}
|
||||
|
||||
public static String getUserProxy() {
|
||||
return isAnyProxyEnabled() ? "1" : "0";
|
||||
}
|
||||
|
||||
public static String isDEVModEnabled() {
|
||||
return dev() ? "1" : "0";
|
||||
}
|
||||
}
|
||||
@@ -102,7 +102,7 @@ public class ThemesUtils {
|
||||
|
||||
public static int getAccentColor() {
|
||||
var accent = AndroidUtils.getPreferences().getInt("accent_color", getColorFromAttr(R.attr.accent));
|
||||
return (accent == 0 || !isMilkshake()) ? isMonetTheme() ? getColorFromAttr(R.attr.accent) : getStockAccent() : accent;
|
||||
return (accent == 0 || !isMilkshake()) || isMonetTheme() ? getColorFromAttr(R.attr.accent) : accent;
|
||||
} // Color accent
|
||||
|
||||
public static int getMutedAccentColor() {
|
||||
@@ -194,7 +194,7 @@ public class ThemesUtils {
|
||||
}
|
||||
|
||||
public static int getMutedColor(int color) {
|
||||
return ColorUtils.blendARGB(color, (isDarkTheme() ? Color.BLACK : Color.WHITE), (isMilkshake() ? 0.5f : 0.32f));
|
||||
return ColorUtils.blendARGB(color, (isDarkTheme() ? Color.BLACK : Color.WHITE), (isMilkshake() ? 0.5f : isDarkTheme() ? 0.32f : 0.2f));
|
||||
}
|
||||
|
||||
public static void setCustomAccentColor(int newColor, boolean async) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package ru.vtosters.lite.utils;
|
||||
|
||||
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
|
||||
import static ru.vtosters.lite.utils.Preferences.hasVerification;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
@@ -15,6 +16,7 @@ import org.json.JSONObject;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
@@ -158,4 +160,8 @@ public class VTVerifications {
|
||||
public static VerifyInfo VerifyInfo(JSONObject jSONObject) {
|
||||
return new VerifyInfo(isVerified(jSONObject), hasPrometheus(jSONObject));
|
||||
}
|
||||
|
||||
public static boolean haveDonateButton() {
|
||||
return hasVerification() || new Random().nextInt(6) != 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5936,7 +5936,7 @@
|
||||
<string name="vtlmsgsumm">Режим VK Мессенджера</string>
|
||||
<string name="vtlactivitysumm">Офлайн режим</string>
|
||||
<string name="vtlthemessumm">Покраска навбара</string>
|
||||
<string name="vtltgssumm">Установлено паков</string>
|
||||
<string name="vtltgssumm">Используется паков</string>
|
||||
<string name="vtlinterfacesumm">Округление чисел</string>
|
||||
<string name="vtlproxysumm">Тип проксирования</string>
|
||||
<string name="vtlothersumm">Отображение верификаций</string>
|
||||
@@ -6335,6 +6335,9 @@
|
||||
<string name="amoledtheme_title">AMOLED-тема</string>
|
||||
<string name="amoledtheme_summ">Полностью чёрная тема для устройств с AMOLED-экранами</string>
|
||||
<string name="monettheme_title">Monet-тема</string>
|
||||
<string name="monettheme_summ">Динамическая покраска приложения на основе обоев телефона</string>
|
||||
<string name="monettheme_summ">Динамическая покраска интерфейса на основе обоев телефона</string>
|
||||
<string name="accents">Акценты</string>
|
||||
<string name="cannot_write">Отсутствует разрешение на запись и чтение файлов</string>
|
||||
<string name="open_bot">Открыть бота</string>
|
||||
<string name="crash_service_name">Уведомления об ошибках</string>
|
||||
</resources>
|
||||
@@ -13,7 +13,7 @@
|
||||
<item name="attach_picker_tab_inactive_background">@android:color/system_neutral1_200</item>
|
||||
<item name="attach_picker_tab_inactive_icon">@android:color/system_neutral1_100</item>
|
||||
<item name="attach_picker_tab_inactive_text">@android:color/system_neutral1_400</item>
|
||||
<item name="background_content">@android:color/system_neutral1_10</item>
|
||||
<item name="background_content">@android:color/system_neutral1_0</item>
|
||||
<item name="background_highlighted">@color/alpha05</item>
|
||||
<item name="background_keyboard">@android:color/system_neutral1_100</item>
|
||||
<item name="background_light">@android:color/system_neutral1_50</item>
|
||||
@@ -26,7 +26,7 @@
|
||||
<item name="button_commerce_foreground">@android:color/system_neutral1_10</item>
|
||||
<item name="button_commerce_foreground_disabled">#66ffffff</item>
|
||||
<item name="button_muted_background">#0c001c3d</item>
|
||||
<item name="button_muted_background_disabled">#66f2f3f5</item>
|
||||
<item name="button_muted_background_disabled">@android:color/system_accent2_100</item>
|
||||
<item name="button_muted_foreground">@android:color/system_accent1_500</item>
|
||||
<item name="button_muted_foreground_disabled">#665181b8</item>
|
||||
<item name="button_outline_border">@android:color/system_accent1_300</item>
|
||||
@@ -110,12 +110,12 @@
|
||||
<item name="icon_outline_secondary">@android:color/system_neutral1_300</item>
|
||||
<item name="icon_secondary">@android:color/system_neutral1_300</item>
|
||||
<item name="icon_tertiary">@android:color/system_neutral1_200</item>
|
||||
<item name="im_attach_tint">@android:color/system_accent1_400</item>
|
||||
<item name="im_bubble_border_alternate">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_border_alternate_highlighted">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_button_background">@android:color/system_neutral1_50</item>
|
||||
<item name="im_attach_tint">@android:color/system_accent1_500</item>
|
||||
<item name="im_bubble_border_alternate">@android:color/system_accent1_50</item>
|
||||
<item name="im_bubble_border_alternate_highlighted">@android:color/system_neutral1_200</item>
|
||||
<item name="im_bubble_button_background">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_button_background_disabled">#66f9f9f9</item>
|
||||
<item name="im_bubble_button_background_highlighted">@color/gray_A150</item>
|
||||
<item name="im_bubble_button_background_highlighted">@android:color/system_neutral1_200</item>
|
||||
<item name="im_bubble_button_background_highlighted_disabled">#66d7d8d9</item>
|
||||
<item name="im_bubble_button_foreground">@color/black</item>
|
||||
<item name="im_bubble_button_foreground_disabled">#66000000</item>
|
||||
@@ -125,31 +125,31 @@
|
||||
<item name="im_bubble_gift_background_highlighted">@android:color/system_accent3_300</item>
|
||||
<item name="im_bubble_gift_text">@android:color/system_accent3_500</item>
|
||||
<item name="im_bubble_gift_text_secondary">@android:color/system_accent3_400</item>
|
||||
<item name="im_bubble_incoming">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_alternate">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_alternate_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_highlighted">@color/gray_A150</item>
|
||||
<item name="im_bubble_incoming">@android:color/system_accent1_300</item>
|
||||
<item name="im_bubble_incoming_alternate">@android:color/system_accent1_300</item>
|
||||
<item name="im_bubble_incoming_alternate_highlighted">@android:color/system_accent2_200</item>
|
||||
<item name="im_bubble_incoming_highlighted">@android:color/system_accent2_200</item>
|
||||
<item name="im_bubble_outgoing">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_outgoing_alternate">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_outgoing_alternate_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_outgoing_highlighted">@android:color/system_accent1_300</item>
|
||||
<item name="im_bubble_wallpaper_button_background">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_wallpaper_button_background_disabled">#66f2f3f5</item>
|
||||
<item name="im_bubble_wallpaper_button_background_highlighted">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_wallpaper_button_background_highlighted_disabled">#66e1e3e6</item>
|
||||
<item name="im_bubble_outgoing_alternate_highlighted">@android:color/system_neutral1_300</item>
|
||||
<item name="im_bubble_outgoing_highlighted">@android:color/system_neutral1_300</item>
|
||||
<item name="im_bubble_wallpaper_button_background">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_wallpaper_button_background_disabled">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_wallpaper_button_background_highlighted">@android:color/system_neutral1_200</item>
|
||||
<item name="im_bubble_wallpaper_button_background_highlighted_disabled">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_wallpaper_button_foreground">@color/black</item>
|
||||
<item name="im_bubble_wallpaper_button_foreground_disabled">#66000000</item>
|
||||
<item name="im_bubble_wallpaper_expiring_border">@color/mint_A1_alpha12</item>
|
||||
<item name="im_bubble_wallpaper_incoming">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_wallpaper_incoming">@android:color/system_neutral1_0</item>
|
||||
<item name="im_bubble_wallpaper_incoming_border">?accent</item>
|
||||
<item name="im_bubble_wallpaper_incoming_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_wallpaper_outgoing">@android:color/system_accent1_200</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_border">?accent</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_highlighted">@android:color/system_accent1_300</item>
|
||||
<item name="im_forward_line_tint">@android:color/system_accent1_600</item>
|
||||
<item name="im_reply_separator">@android:color/system_accent1_400</item>
|
||||
<item name="im_reply_separator">@android:color/system_accent1_500</item>
|
||||
<item name="im_service_message_text">@android:color/system_neutral1_400</item>
|
||||
<item name="im_text_name">@android:color/system_accent1_400</item>
|
||||
<item name="im_text_name">@android:color/system_accent1_500</item>
|
||||
<item name="im_toolbar_separator">?accent</item>
|
||||
<item name="im_toolbar_voice_msg_background">@android:color/system_neutral1_300</item>
|
||||
<item name="image_border">@android:color/system_neutral1_50</item>
|
||||
@@ -273,7 +273,7 @@
|
||||
<item name="attach_picker_tab_inactive_background">@android:color/system_neutral1_50</item>
|
||||
<item name="attach_picker_tab_inactive_icon">@android:color/system_neutral1_400</item>
|
||||
<item name="attach_picker_tab_inactive_text">@android:color/system_neutral1_400</item>
|
||||
<item name="background_content">@android:color/system_neutral1_10</item>
|
||||
<item name="background_content">@android:color/system_neutral1_0</item>
|
||||
<item name="background_highlighted">@color/alpha05</item>
|
||||
<item name="background_keyboard">@android:color/system_neutral1_100</item>
|
||||
<item name="background_light">@android:color/system_neutral1_50</item>
|
||||
@@ -373,9 +373,9 @@
|
||||
<item name="im_attach_tint">@android:color/system_accent1_500</item>
|
||||
<item name="im_bubble_border_alternate">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_border_alternate_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_button_background">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_button_background">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_button_background_disabled">#66f9f9f9</item>
|
||||
<item name="im_bubble_button_background_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_button_background_highlighted">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_button_background_highlighted_disabled">#66d7d8d9</item>
|
||||
<item name="im_bubble_button_foreground">@color/black</item>
|
||||
<item name="im_bubble_button_foreground_disabled">#66000000</item>
|
||||
@@ -387,11 +387,11 @@
|
||||
<item name="im_bubble_gift_text_secondary">@android:color/system_accent3_400</item>
|
||||
<item name="im_bubble_incoming">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_alternate">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_alternate_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_incoming_highlighted">@color/gray_A150</item>
|
||||
<item name="im_bubble_incoming_alternate_highlighted">@color/alpha05</item>
|
||||
<item name="im_bubble_incoming_highlighted">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_outgoing">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_outgoing_alternate">@android:color/system_accent2_100</item>
|
||||
<item name="im_bubble_outgoing_alternate_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_outgoing_alternate_highlighted">@color/alpha05</item>
|
||||
<item name="im_bubble_outgoing_highlighted">@android:color/system_accent1_300</item>
|
||||
<item name="im_bubble_wallpaper_button_background">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_wallpaper_button_background_disabled">#66f2f3f5</item>
|
||||
@@ -400,9 +400,9 @@
|
||||
<item name="im_bubble_wallpaper_button_foreground">@color/black</item>
|
||||
<item name="im_bubble_wallpaper_button_foreground_disabled">#66000000</item>
|
||||
<item name="im_bubble_wallpaper_expiring_border">@color/mint_A1_alpha12</item>
|
||||
<item name="im_bubble_wallpaper_incoming">@android:color/system_neutral1_100</item>
|
||||
<item name="im_bubble_wallpaper_incoming">@android:color/system_neutral1_10</item>
|
||||
<item name="im_bubble_wallpaper_incoming_border">?accent</item>
|
||||
<item name="im_bubble_wallpaper_incoming_highlighted">@android:color/system_neutral1_50</item>
|
||||
<item name="im_bubble_wallpaper_incoming_highlighted">@color/alpha05</item>
|
||||
<item name="im_bubble_wallpaper_outgoing">@android:color/system_accent1_200</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_border">?accent</item>
|
||||
<item name="im_bubble_wallpaper_outgoing_highlighted">@android:color/system_accent1_300</item>
|
||||
|
||||
@@ -2957,7 +2957,7 @@ in group chats"</string>
|
||||
<string name="post_reposted_one_more">%1$s and %2$s more shared this</string>
|
||||
<string name="post_reposted_two">%1$s and %2$s shared this</string>
|
||||
<string name="post_reposted_two_more">%1$s, %2$s and %3$s more shared this</string>
|
||||
<string name="post_show_full">Expand text...</string>
|
||||
<string name="post_show_full">View all...</string>
|
||||
<string name="post_stat_menu_item">Post statistics</string>
|
||||
<string name="post_to_wall">Post to wall</string>
|
||||
<string name="post_unfix">Unpin</string>
|
||||
@@ -5642,7 +5642,7 @@ Registration date:"</string>
|
||||
<string name="interfaceglobalpost">Shorten posts</string>
|
||||
<string name="interfaceglobalpostsum">"Shorten the text in posts
|
||||
|
||||
Expand text..."</string>
|
||||
View all..."</string>
|
||||
<string name="pollresults_title">Poll results</string>
|
||||
<string name="pollresults_summ">Show results in polls without voting in them</string>
|
||||
<string name="vtl_downloads_title">Downloads</string>
|
||||
@@ -6071,7 +6071,7 @@ May look like a fake leaving the online"</string>
|
||||
<string name="vtlmsgsumm">VK Messenger mode</string>
|
||||
<string name="vtlactivitysumm">Offline mode</string>
|
||||
<string name="vtlthemessumm">Navbar coloring</string>
|
||||
<string name="vtltgssumm">Installed packs</string>
|
||||
<string name="vtltgssumm">Activated packs</string>
|
||||
<string name="vtlinterfacesumm">Round numbers</string>
|
||||
<string name="vtlproxysumm">Proxy type</string>
|
||||
<string name="vtlothersumm">Show verifications</string>
|
||||
@@ -6475,4 +6475,7 @@ May look like a fake leaving the online"</string>
|
||||
<string name="monettheme_title">Monet theme</string>
|
||||
<string name="monettheme_summ">Dynamic app theme based on phone wallpaper</string>
|
||||
<string name="accents">Accents</string>
|
||||
<string name="cannot_write">No permission to write or read files</string>
|
||||
<string name="open_bot">Open a bot</string>
|
||||
<string name="crash_service_name">Error notifications</string>
|
||||
</resources>
|
||||
|
||||
@@ -82,6 +82,8 @@
|
||||
.method public onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
|
||||
.locals 2
|
||||
|
||||
invoke-static/range {p1 .. p1}, Lru/vtosters/lite/hooks/VKUIHook;->inject(Landroid/webkit/WebView;)V
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/articles/ArticleWebView$a;->c:Lcom/vk/articles/ArticleWebView;
|
||||
|
||||
|
||||
+1
-1
@@ -622,7 +622,7 @@
|
||||
|
||||
move-result-object v4
|
||||
|
||||
invoke-static {v1}, Lru/vtosters/lite/hooks/JsonInjectors;->convBar(Lorg/json/JSONObject;)Lorg/json/JSONObject;
|
||||
invoke-static {v1}, Lru/vtosters/lite/ssfs/ImBanner;->convBar(Lorg/json/JSONObject;)Lorg/json/JSONObject;
|
||||
|
||||
move-result-object v6
|
||||
|
||||
|
||||
+10
-1
@@ -16,8 +16,17 @@
|
||||
|
||||
# direct methods
|
||||
.method public static synthetic a(Lcom/vk/im/ui/components/viewcontrollers/dialog_bar/DialogBarVcCallback;Ljava/lang/String;Lcom/vk/im/engine/models/dialogs/ConversationBar$ButtonType;ILjava/lang/Object;)V
|
||||
.locals 0
|
||||
.locals 1
|
||||
|
||||
invoke-static {}, Lru/vtosters/lite/ssfs/ImBanner;->showAlert()Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_228
|
||||
|
||||
return-void
|
||||
|
||||
:cond_228
|
||||
if-nez p4, :cond_1
|
||||
|
||||
and-int/lit8 p3, p3, 0x2
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
.method public constructor <init>(Landroid/content/Context;Lcom/vtosters/lite/api/ExtendedUserProfile;Z)V
|
||||
.locals 2
|
||||
|
||||
invoke-static {p2}, Lru/vtosters/lite/utils/ProfileHider;->getInfo(Lcom/vtosters/lite/api/ExtendedUserProfile;)Ljava/lang/String;
|
||||
invoke-static {p2}, Lru/vtosters/lite/ssfs/ProfileHider;->getInfo(Lcom/vtosters/lite/api/ExtendedUserProfile;)Ljava/lang/String;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
@@ -30,10 +30,6 @@
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string p2, "LinkParser.parseWiki(Lin\u2026account_admin_100_info)))"
|
||||
|
||||
invoke-static {p1, p2}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
const/4 p2, 0x0
|
||||
|
||||
const/4 v0, 0x2
|
||||
|
||||
@@ -101,16 +101,11 @@
|
||||
.method public final b(I)Z
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0}, Lcom/vk/profile/presenter/UserPresenter$a;->a()Ljava/util/HashMap;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
|
||||
invoke-static {p1}, Lru/vtosters/lite/ssfs/ProfileHider;->isService(Ljava/lang/Integer;)Z
|
||||
|
||||
move-result p1
|
||||
|
||||
|
||||
@@ -143,8 +143,6 @@
|
||||
|
||||
move-result-object v0
|
||||
|
||||
invoke-static {v0}, Lru/vtosters/lite/utils/ProfileHider;->injectMap(Ljava/util/HashMap;)V
|
||||
|
||||
sput-object v0, Lcom/vk/profile/presenter/UserPresenter;->p0:Ljava/util/HashMap;
|
||||
|
||||
return-void
|
||||
|
||||
@@ -439,36 +439,18 @@
|
||||
|
||||
.line 14
|
||||
:cond_7
|
||||
sget-object v1, Lcom/vk/profile/presenter/UserPresenter;->q0:Lcom/vk/profile/presenter/UserPresenter$a;
|
||||
|
||||
invoke-virtual {v1}, Lcom/vk/profile/presenter/UserPresenter$a;->a()Ljava/util/HashMap;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
iget v3, p0, Lcom/vk/profile/ui/BaseProfileFragment;->q0:I
|
||||
|
||||
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
||||
|
||||
move-result-object v3
|
||||
|
||||
invoke-virtual {v1, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
check-cast v1, Lcom/vk/profile/presenter/UserPresenter$a$a;
|
||||
|
||||
if-eqz v1, :cond_8
|
||||
|
||||
.line 15
|
||||
iget-object v3, p0, Lcom/vk/profile/ui/user/AdministratorProfileFragment;->k1:Lcom/vk/core/view/links/LinkedTextView;
|
||||
|
||||
if-eqz v3, :cond_8
|
||||
|
||||
invoke-virtual {v1}, Lcom/vk/profile/presenter/UserPresenter$a$a;->c()I
|
||||
invoke-static {p0}, Lcom/vk/profile/ui/user/AdministratorProfileFragment;->a(Lcom/vk/profile/ui/user/AdministratorProfileFragment;)Lcom/vtosters/lite/api/ExtendedUserProfile;
|
||||
|
||||
move-result v1
|
||||
move-result-object v1
|
||||
|
||||
invoke-virtual {p0, v1}, Landroidx/fragment/app/Fragment;->getString(I)Ljava/lang/String;
|
||||
if-eqz v1, :cond_8
|
||||
|
||||
invoke-static {v1}, Lru/vtosters/lite/ssfs/ProfileHider;->getInfo(Lcom/vtosters/lite/api/ExtendedUserProfile;)Ljava/lang/String;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
|
||||
@@ -40,6 +40,14 @@
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "com.vtosters.lite.action.RELOAD_TGS_LIST"
|
||||
|
||||
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-nez v0, :cond_5
|
||||
|
||||
invoke-virtual {p1}, Ljava/lang/String;->hashCode()I
|
||||
|
||||
move-result p2
|
||||
|
||||
@@ -1415,6 +1415,10 @@
|
||||
.line 8
|
||||
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
|
||||
|
||||
const-string v1, "com.vtosters.lite.action.RELOAD_TGS_LIST"
|
||||
|
||||
invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
|
||||
|
||||
const-string v1, "com.vkontakte.android.STICKERS_RELOADED"
|
||||
|
||||
.line 9
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
.class public final Lcom/vk/stickers/details/StickerDetailsAdapter$a;
|
||||
.super Ljava/lang/Object;
|
||||
.source "StickerDetailsAdapter.kt"
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation system Ldalvik/annotation/EnclosingClass;
|
||||
value = Lcom/vk/stickers/details/StickerDetailsAdapter;
|
||||
.end annotation
|
||||
|
||||
.annotation system Ldalvik/annotation/InnerClass;
|
||||
accessFlags = 0x19
|
||||
name = "a"
|
||||
.end annotation
|
||||
|
||||
|
||||
# direct methods
|
||||
.method private constructor <init>()V
|
||||
.locals 0
|
||||
|
||||
.line 1
|
||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public synthetic constructor <init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
.locals 0
|
||||
|
||||
.line 2
|
||||
invoke-direct {p0}, Lcom/vk/stickers/details/StickerDetailsAdapter$a;-><init>()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
@@ -1,37 +0,0 @@
|
||||
.class final Lcom/vk/stickers/details/StickerDetailsAdapter$b;
|
||||
.super Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
|
||||
.source "StickerDetailsAdapter.kt"
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation system Ldalvik/annotation/EnclosingClass;
|
||||
value = Lcom/vk/stickers/details/StickerDetailsAdapter;
|
||||
.end annotation
|
||||
|
||||
.annotation system Ldalvik/annotation/InnerClass;
|
||||
accessFlags = 0x1a
|
||||
name = "b"
|
||||
.end annotation
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>(Landroid/view/ViewGroup;)V
|
||||
.locals 4
|
||||
|
||||
.line 1
|
||||
sget v0, Lcom/vk/stickers/k;->sticker_details_hold_to_view_item:I
|
||||
|
||||
const/4 v1, 0x0
|
||||
|
||||
const/4 v2, 0x2
|
||||
|
||||
const/4 v3, 0x0
|
||||
|
||||
invoke-static {p1, v0, v1, v2, v3}, Lcom/vk/extensions/ViewExtKt;->a(Landroid/view/ViewGroup;IZILjava/lang/Object;)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;-><init>(Landroid/view/View;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
@@ -1,349 +0,0 @@
|
||||
.class final Lcom/vk/stickers/details/StickerDetailsAdapter$c;
|
||||
.super Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
|
||||
.source "StickerDetailsAdapter.kt"
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation system Ldalvik/annotation/EnclosingClass;
|
||||
value = Lcom/vk/stickers/details/StickerDetailsAdapter;
|
||||
.end annotation
|
||||
|
||||
.annotation system Ldalvik/annotation/InnerClass;
|
||||
accessFlags = 0x1a
|
||||
name = "c"
|
||||
.end annotation
|
||||
|
||||
|
||||
# instance fields
|
||||
.field private final a:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
.field private final b:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
.field private final c:Landroid/widget/ImageView;
|
||||
|
||||
.field private final d:Landroid/widget/TextView;
|
||||
|
||||
.field private final e:Landroid/widget/TextView;
|
||||
|
||||
.field private final f:Landroid/widget/TextView;
|
||||
|
||||
.field private final g:Landroid/widget/TextView;
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>(Landroid/view/ViewGroup;)V
|
||||
.locals 3
|
||||
|
||||
.line 1
|
||||
invoke-static {}, Lcom/vk/core/ui/themes/VKThemeHelper;->u()Landroid/content/Context;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
invoke-static {v0}, Landroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
sget v1, Lcom/vk/stickers/k;->sticker_details_info_item:I
|
||||
|
||||
const/4 v2, 0x0
|
||||
|
||||
invoke-virtual {v0, v1, p1, v2}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
.line 2
|
||||
invoke-direct {p0, p1}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;-><init>(Landroid/view/View;)V
|
||||
|
||||
.line 3
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->pack_image_bg:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.pack_image_bg)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->a:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
.line 4
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->pack_image:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.pack_image)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->b:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
.line 5
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->anim_pack:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.anim_pack)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Landroid/widget/ImageView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->c:Landroid/widget/ImageView;
|
||||
|
||||
.line 6
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->pack_title:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.pack_title)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Landroid/widget/TextView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->d:Landroid/widget/TextView;
|
||||
|
||||
.line 7
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->pack_author:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.pack_author)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Landroid/widget/TextView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->e:Landroid/widget/TextView;
|
||||
|
||||
.line 8
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->pack_subtitle:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.pack_subtitle)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Landroid/widget/TextView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->f:Landroid/widget/TextView;
|
||||
|
||||
.line 9
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
sget v0, Lcom/vk/stickers/j;->description:I
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
const-string v0, "itemView.findViewById(R.id.description)"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
check-cast p1, Landroid/widget/TextView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->g:Landroid/widget/TextView;
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public final a(Lcom/vk/dto/stickers/StickerStockItem;)V
|
||||
.locals 5
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->a:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerStockItem;->R1()Ljava/lang/String;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
invoke-virtual {v0, v1}, Lcom/vk/imageloader/view/VKImageView;->a(Ljava/lang/String;)V
|
||||
|
||||
.line 2
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->a:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
check-cast v0, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
const-string v1, "packBgView.hierarchy"
|
||||
|
||||
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
invoke-virtual {v0}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->a()Landroid/graphics/drawable/Drawable;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
const/4 v2, 0x1
|
||||
|
||||
invoke-virtual {v0, v2, v2}, Landroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
|
||||
|
||||
.line 3
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->a:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
check-cast v0, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
const/4 v1, 0x0
|
||||
|
||||
invoke-virtual {v0, v1}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->a(I)V
|
||||
|
||||
.line 4
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->a:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
check-cast v0, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
new-instance v3, Landroid/graphics/drawable/ColorDrawable;
|
||||
|
||||
sget v4, Lcom/vk/stickers/f;->placeholder_icon_background:I
|
||||
|
||||
invoke-static {v4}, Lcom/vk/core/ui/themes/VKThemeHelper;->d(I)I
|
||||
|
||||
move-result v4
|
||||
|
||||
invoke-direct {v3, v4}, Landroid/graphics/drawable/ColorDrawable;-><init>(I)V
|
||||
|
||||
invoke-virtual {v0, v3}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->e(Landroid/graphics/drawable/Drawable;)V
|
||||
|
||||
.line 5
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->b:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
const/16 v3, 0x44
|
||||
|
||||
invoke-static {v3}, Lcom/vk/core/util/Screen;->a(I)I
|
||||
|
||||
move-result v3
|
||||
|
||||
invoke-virtual {p1, v3}, Lcom/vk/dto/stickers/StickerStockItem;->h(I)Ljava/lang/String;
|
||||
|
||||
move-result-object v3
|
||||
|
||||
invoke-virtual {v0, v3}, Lcom/vk/imageloader/view/VKImageView;->a(Ljava/lang/String;)V
|
||||
|
||||
.line 6
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->b:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
check-cast v0, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
const-string v3, "packImageView.hierarchy"
|
||||
|
||||
invoke-static {v0, v3}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
invoke-virtual {v0}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->a()Landroid/graphics/drawable/Drawable;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
invoke-virtual {v0, v2, v2}, Landroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
|
||||
|
||||
.line 7
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->b:Lcom/vk/imageloader/view/VKImageView;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
check-cast v0, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
invoke-static {v0, v3}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
invoke-virtual {v0, v1}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->a(I)V
|
||||
|
||||
.line 8
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerStockItem;->E1()Z
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_0
|
||||
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->c:Landroid/widget/ImageView;
|
||||
|
||||
invoke-static {v0}, Lcom/vk/extensions/ViewExtKt;->r(Landroid/view/View;)V
|
||||
|
||||
goto :goto_0
|
||||
|
||||
:cond_0
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->c:Landroid/widget/ImageView;
|
||||
|
||||
invoke-static {v0}, Lcom/vk/extensions/ViewExtKt;->p(Landroid/view/View;)V
|
||||
|
||||
.line 9
|
||||
:goto_0
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->d:Landroid/widget/TextView;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerStockItem;->getTitle()Ljava/lang/String;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
|
||||
|
||||
.line 10
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->e:Landroid/widget/TextView;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerStockItem;->v1()Ljava/lang/String;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
|
||||
|
||||
.line 11
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->f:Landroid/widget/TextView;
|
||||
|
||||
invoke-static {v0}, Lcom/vk/extensions/ViewExtKt;->p(Landroid/view/View;)V
|
||||
|
||||
.line 12
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->g:Landroid/widget/TextView;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerStockItem;->C1()Ljava/lang/String;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-virtual {v0, p1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
@@ -1,157 +0,0 @@
|
||||
.class final Lcom/vk/stickers/details/StickerDetailsAdapter$d;
|
||||
.super Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
|
||||
.source "StickerDetailsAdapter.kt"
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation system Ldalvik/annotation/EnclosingClass;
|
||||
value = Lcom/vk/stickers/details/StickerDetailsAdapter;
|
||||
.end annotation
|
||||
|
||||
.annotation system Ldalvik/annotation/InnerClass;
|
||||
accessFlags = 0x1a
|
||||
name = "d"
|
||||
.end annotation
|
||||
|
||||
|
||||
# instance fields
|
||||
.field private final a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>(Landroid/view/ViewGroup;)V
|
||||
.locals 2
|
||||
|
||||
.line 1
|
||||
new-instance v0, Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
invoke-virtual {p1}, Landroid/view/ViewGroup;->getContext()Landroid/content/Context;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-direct {v0, p1}, Lcom/vk/stickers/views/VKStickerImageView;-><init>(Landroid/content/Context;)V
|
||||
|
||||
invoke-direct {p0, v0}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;-><init>(Landroid/view/View;)V
|
||||
|
||||
.line 2
|
||||
iget-object p1, p0, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View;
|
||||
|
||||
if-eqz p1, :cond_0
|
||||
|
||||
check-cast p1, Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
.line 3
|
||||
iget-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
const/high16 v0, 0x3f800000 # 1.0f
|
||||
|
||||
invoke-virtual {p1, v0}, Lcom/vk/imageloader/view/GenericVKImageView;->setAspectRatio(F)V
|
||||
|
||||
.line 4
|
||||
iget-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
const/4 v0, 0x1
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/widget/ImageView;->setClickable(Z)V
|
||||
|
||||
.line 5
|
||||
iget-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
check-cast p1, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
const-string v1, "stickerView.hierarchy"
|
||||
|
||||
invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
invoke-virtual {p1}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->a()Landroid/graphics/drawable/Drawable;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-virtual {p1, v0, v0}, Landroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
|
||||
|
||||
.line 6
|
||||
iget-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/imageloader/view/VKDraweeView;->getHierarchy()Lcom/facebook/u/e/DraweeHierarchy;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
check-cast p1, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;
|
||||
|
||||
invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
const/4 v0, 0x0
|
||||
|
||||
invoke-virtual {p1, v0}, Lcom/facebook/drawee/generic/GenericDraweeHierarchy;->a(I)V
|
||||
|
||||
.line 7
|
||||
iget-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
invoke-virtual {p1}, Landroid/widget/ImageView;->getContext()Landroid/content/Context;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
sget v1, Lcom/vk/stickers/l;->stickers_accessibility_sticker:I
|
||||
|
||||
invoke-virtual {v0, v1}, Landroid/content/Context;->getString(I)Ljava/lang/String;
|
||||
|
||||
move-result-object v0
|
||||
|
||||
invoke-virtual {p1, v0}, Landroid/widget/ImageView;->setContentDescription(Ljava/lang/CharSequence;)V
|
||||
|
||||
return-void
|
||||
|
||||
.line 8
|
||||
:cond_0
|
||||
new-instance p1, Lkotlin/TypeCastException;
|
||||
|
||||
const-string v0, "null cannot be cast to non-null type com.vk.stickers.views.VKStickerImageView"
|
||||
|
||||
invoke-direct {p1, v0}, Lkotlin/TypeCastException;-><init>(Ljava/lang/String;)V
|
||||
|
||||
throw p1
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public final a(Lcom/vk/dto/stickers/StickerItem;)V
|
||||
.locals 2
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
const/16 v1, 0x50
|
||||
|
||||
invoke-static {v1}, Lcom/vk/core/util/Screen;->a(I)I
|
||||
|
||||
move-result v1
|
||||
|
||||
invoke-virtual {p1, v1}, Lcom/vk/dto/stickers/StickerItem;->h(I)Ljava/lang/String;
|
||||
|
||||
move-result-object v1
|
||||
|
||||
invoke-virtual {v0, v1}, Lcom/vk/imageloader/view/VKImageView;->a(Ljava/lang/String;)V
|
||||
|
||||
.line 2
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a:Lcom/vk/stickers/views/VKStickerImageView;
|
||||
|
||||
sget v1, Lcom/vk/stickers/j;->id:I
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerItem;->getId()I
|
||||
|
||||
move-result p1
|
||||
|
||||
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-virtual {v0, v1, p1}, Landroid/widget/ImageView;->setTag(ILjava/lang/Object;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
@@ -1,336 +0,0 @@
|
||||
.class public final Lcom/vk/stickers/details/StickerDetailsAdapter;
|
||||
.super Landroidx/recyclerview/widget/RecyclerView$Adapter;
|
||||
.source "StickerDetailsAdapter.kt"
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation system Ldalvik/annotation/MemberClasses;
|
||||
value = {
|
||||
Lcom/vk/stickers/details/StickerDetailsAdapter$c;,
|
||||
Lcom/vk/stickers/details/StickerDetailsAdapter$d;,
|
||||
Lcom/vk/stickers/details/StickerDetailsAdapter$b;,
|
||||
Lcom/vk/stickers/details/StickerDetailsAdapter$a;
|
||||
}
|
||||
.end annotation
|
||||
|
||||
.annotation system Ldalvik/annotation/Signature;
|
||||
value = {
|
||||
"Landroidx/recyclerview/widget/RecyclerView$Adapter<",
|
||||
"Landroidx/recyclerview/widget/RecyclerView$ViewHolder;",
|
||||
">;"
|
||||
}
|
||||
.end annotation
|
||||
|
||||
|
||||
# instance fields
|
||||
.field private final a:Ljava/util/List;
|
||||
.annotation system Ldalvik/annotation/Signature;
|
||||
value = {
|
||||
"Ljava/util/List<",
|
||||
"Lcom/vk/dto/stickers/StickerItem;",
|
||||
">;"
|
||||
}
|
||||
.end annotation
|
||||
.end field
|
||||
|
||||
.field private b:Lcom/vk/dto/stickers/StickerStockItem;
|
||||
|
||||
|
||||
# direct methods
|
||||
.method static constructor <clinit>()V
|
||||
.locals 2
|
||||
|
||||
new-instance v0, Lcom/vk/stickers/details/StickerDetailsAdapter$a;
|
||||
|
||||
const/4 v1, 0x0
|
||||
|
||||
invoke-direct {v0, v1}, Lcom/vk/stickers/details/StickerDetailsAdapter$a;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public constructor <init>(Lcom/vk/dto/stickers/StickerStockItem;)V
|
||||
.locals 0
|
||||
|
||||
.line 1
|
||||
invoke-direct {p0}, Landroidx/recyclerview/widget/RecyclerView$Adapter;-><init>()V
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->b:Lcom/vk/dto/stickers/StickerStockItem;
|
||||
|
||||
.line 2
|
||||
iget-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->b:Lcom/vk/dto/stickers/StickerStockItem;
|
||||
|
||||
invoke-virtual {p1}, Lcom/vk/dto/stickers/StickerStockItem;->T1()Ljava/util/List;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
invoke-static {p1}, Lkotlin/collections/l;->g(Ljava/lang/Iterable;)Ljava/util/List;
|
||||
|
||||
move-result-object p1
|
||||
|
||||
iput-object p1, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->a:Ljava/util/List;
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public final H(I)I
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0}, Lcom/vk/stickers/details/StickerDetailsAdapter;->j()I
|
||||
|
||||
move-result v0
|
||||
|
||||
sub-int/2addr p1, v0
|
||||
|
||||
return p1
|
||||
.end method
|
||||
|
||||
.method public final I(I)Z
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0, p1}, Lcom/vk/stickers/details/StickerDetailsAdapter;->getItemViewType(I)I
|
||||
|
||||
move-result p1
|
||||
|
||||
const/4 v0, 0x1
|
||||
|
||||
if-ne p1, v0, :cond_0
|
||||
|
||||
goto :goto_0
|
||||
|
||||
:cond_0
|
||||
const/4 v0, 0x0
|
||||
|
||||
:goto_0
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public getItemCount()I
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->a:Ljava/util/List;
|
||||
|
||||
invoke-interface {v0}, Ljava/util/List;->size()I
|
||||
|
||||
move-result v0
|
||||
|
||||
add-int/lit8 v0, v0, 0x2
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public getItemViewType(I)I
|
||||
.locals 1
|
||||
|
||||
if-nez p1, :cond_0
|
||||
|
||||
const/4 p1, 0x0
|
||||
|
||||
goto :goto_0
|
||||
|
||||
.line 1
|
||||
:cond_0
|
||||
invoke-virtual {p0}, Lcom/vk/stickers/details/StickerDetailsAdapter;->k()I
|
||||
|
||||
move-result v0
|
||||
|
||||
if-ne p1, v0, :cond_1
|
||||
|
||||
const/4 p1, 0x2
|
||||
|
||||
goto :goto_0
|
||||
|
||||
:cond_1
|
||||
const/4 p1, 0x1
|
||||
|
||||
:goto_0
|
||||
return p1
|
||||
.end method
|
||||
|
||||
.method public final j()I
|
||||
.locals 1
|
||||
|
||||
const/4 v0, 0x1
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public final k()I
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0}, Lcom/vk/stickers/details/StickerDetailsAdapter;->l()I
|
||||
|
||||
move-result v0
|
||||
|
||||
add-int/lit8 v0, v0, 0x1
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public final l()I
|
||||
.locals 2
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->a:Ljava/util/List;
|
||||
|
||||
invoke-interface {v0}, Ljava/util/List;->size()I
|
||||
|
||||
move-result v0
|
||||
|
||||
invoke-virtual {p0}, Lcom/vk/stickers/details/StickerDetailsAdapter;->j()I
|
||||
|
||||
move-result v1
|
||||
|
||||
add-int/2addr v0, v1
|
||||
|
||||
add-int/lit8 v0, v0, -0x1
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public final m()I
|
||||
.locals 1
|
||||
|
||||
const/4 v0, 0x0
|
||||
|
||||
return v0
|
||||
.end method
|
||||
|
||||
.method public final n()Ljava/util/List;
|
||||
.locals 1
|
||||
.annotation system Ldalvik/annotation/Signature;
|
||||
value = {
|
||||
"()",
|
||||
"Ljava/util/List<",
|
||||
"Lcom/vk/dto/stickers/StickerItem;",
|
||||
">;"
|
||||
}
|
||||
.end annotation
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->a:Ljava/util/List;
|
||||
|
||||
return-object v0
|
||||
.end method
|
||||
|
||||
.method public onBindViewHolder(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
|
||||
.locals 2
|
||||
|
||||
.line 1
|
||||
invoke-virtual {p0, p2}, Lcom/vk/stickers/details/StickerDetailsAdapter;->getItemViewType(I)I
|
||||
|
||||
move-result v0
|
||||
|
||||
if-eqz v0, :cond_1
|
||||
|
||||
const/4 v1, 0x1
|
||||
|
||||
if-eq v0, v1, :cond_0
|
||||
|
||||
goto :goto_0
|
||||
|
||||
.line 2
|
||||
:cond_0
|
||||
check-cast p1, Lcom/vk/stickers/details/StickerDetailsAdapter$d;
|
||||
|
||||
iget-object v0, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->a:Ljava/util/List;
|
||||
|
||||
invoke-virtual {p0, p2}, Lcom/vk/stickers/details/StickerDetailsAdapter;->H(I)I
|
||||
|
||||
move-result p2
|
||||
|
||||
invoke-interface {v0, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;
|
||||
|
||||
move-result-object p2
|
||||
|
||||
check-cast p2, Lcom/vk/dto/stickers/StickerItem;
|
||||
|
||||
invoke-virtual {p1, p2}, Lcom/vk/stickers/details/StickerDetailsAdapter$d;->a(Lcom/vk/dto/stickers/StickerItem;)V
|
||||
|
||||
goto :goto_0
|
||||
|
||||
.line 3
|
||||
:cond_1
|
||||
check-cast p1, Lcom/vk/stickers/details/StickerDetailsAdapter$c;
|
||||
|
||||
iget-object p2, p0, Lcom/vk/stickers/details/StickerDetailsAdapter;->b:Lcom/vk/dto/stickers/StickerStockItem;
|
||||
|
||||
invoke-virtual {p1, p2}, Lcom/vk/stickers/details/StickerDetailsAdapter$c;->a(Lcom/vk/dto/stickers/StickerStockItem;)V
|
||||
|
||||
:goto_0
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public onCreateViewHolder(Landroid/view/ViewGroup;I)Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
|
||||
.locals 2
|
||||
|
||||
if-eqz p2, :cond_2
|
||||
|
||||
const/4 v0, 0x1
|
||||
|
||||
if-eq p2, v0, :cond_1
|
||||
|
||||
const/4 v0, 0x2
|
||||
|
||||
if-ne p2, v0, :cond_0
|
||||
|
||||
.line 1
|
||||
new-instance p2, Lcom/vk/stickers/details/StickerDetailsAdapter$b;
|
||||
|
||||
invoke-direct {p2, p1}, Lcom/vk/stickers/details/StickerDetailsAdapter$b;-><init>(Landroid/view/ViewGroup;)V
|
||||
|
||||
goto :goto_0
|
||||
|
||||
.line 2
|
||||
:cond_0
|
||||
new-instance p1, Ljava/lang/IllegalArgumentException;
|
||||
|
||||
new-instance v0, Ljava/lang/StringBuilder;
|
||||
|
||||
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
||||
|
||||
const-string v1, "Unknown viewType: "
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
||||
|
||||
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
|
||||
|
||||
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
||||
|
||||
move-result-object p2
|
||||
|
||||
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
||||
|
||||
throw p1
|
||||
|
||||
.line 3
|
||||
:cond_1
|
||||
new-instance p2, Lcom/vk/stickers/details/StickerDetailsAdapter$d;
|
||||
|
||||
invoke-direct {p2, p1}, Lcom/vk/stickers/details/StickerDetailsAdapter$d;-><init>(Landroid/view/ViewGroup;)V
|
||||
|
||||
goto :goto_0
|
||||
|
||||
.line 4
|
||||
:cond_2
|
||||
new-instance p2, Lcom/vk/stickers/details/StickerDetailsAdapter$c;
|
||||
|
||||
invoke-direct {p2, p1}, Lcom/vk/stickers/details/StickerDetailsAdapter$c;-><init>(Landroid/view/ViewGroup;)V
|
||||
|
||||
:goto_0
|
||||
return-object p2
|
||||
.end method
|
||||
|
||||
.method public final v()Z
|
||||
.locals 1
|
||||
|
||||
const/4 v0, 0x0
|
||||
|
||||
return v0
|
||||
.end method
|
||||
@@ -1513,7 +1513,7 @@
|
||||
iput-object v0, v15, Lcom/vtosters/lite/api/ExtendedUserProfile;->l1:Ljava/util/ArrayList;
|
||||
|
||||
:cond_22
|
||||
invoke-static {v14}, Lru/vtosters/lite/hooks/JsonInjectors;->profileButton(Lorg/json/JSONObject;)Lorg/json/JSONObject;
|
||||
invoke-static {v14}, Lru/vtosters/lite/ssfs/ProfileButtons;->profileButton(Lorg/json/JSONObject;)Lorg/json/JSONObject;
|
||||
|
||||
move-result-object v14
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
|
||||
iput v4, v2, Lcom/vk/dto/user/UserProfile;->b:I
|
||||
|
||||
invoke-static {v0}, Lru/vtosters/lite/utils/ProfileHider;->fetchInfo(Lcom/vtosters/lite/api/ExtendedUserProfile;)V
|
||||
invoke-static {v0, v1}, Lru/vtosters/lite/ssfs/ProfileHider;->fetchInfo(Lcom/vtosters/lite/api/ExtendedUserProfile;Lorg/json/JSONObject;)V
|
||||
|
||||
.line 3
|
||||
iget-object v2, v0, Lcom/vtosters/lite/api/ExtendedUserProfile;->a:Lcom/vk/dto/user/UserProfile;
|
||||
|
||||
Reference in New Issue
Block a user