add tgs stickers preview in settings
This commit is contained in:
@@ -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++)
|
||||
|
||||
@@ -13,11 +13,23 @@ 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 static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
|
||||
import static ru.vtosters.lite.utils.AndroidUtils.getResources;
|
||||
@@ -103,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();
|
||||
@@ -133,6 +146,37 @@ 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) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user