From 38a2b3f2b2cbdb289c40cde739dadd5990b59785 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Tue, 23 May 2023 23:17:20 +0300 Subject: [PATCH] cleanup banner msg code --- .../ru/vtosters/hooks/ssfs/BannerHook.java | 2 +- .../java/ru/vtosters/lite/ssfs/ImBanner.java | 63 +++++++++++-------- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java b/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java index 43a29097c..0487d1a1b 100644 --- a/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java +++ b/app/src/main/java/ru/vtosters/hooks/ssfs/BannerHook.java @@ -10,7 +10,7 @@ import ru.vtosters.lite.utils.LifecycleUtils; public class BannerHook { public static JSONObject convBar(JSONObject orig) { - return ImBanner.convBar(orig); + return ImBanner.convertToBanner(orig); } public static boolean showAlert() { diff --git a/app/src/main/java/ru/vtosters/lite/ssfs/ImBanner.java b/app/src/main/java/ru/vtosters/lite/ssfs/ImBanner.java index 1b4d55b3d..2d7dacb82 100644 --- a/app/src/main/java/ru/vtosters/lite/ssfs/ImBanner.java +++ b/app/src/main/java/ru/vtosters/lite/ssfs/ImBanner.java @@ -5,52 +5,63 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.util.Optional; + public class ImBanner { private static final String TAG = "ImBanner"; - public static JSONObject convBar(JSONObject orig) { - var user = orig.optJSONObject("peer"); - var user_id = user != null ? user.optInt("id") : 0; + public static JSONObject convertToBanner(JSONObject original) { + final String PEER = "peer"; + final String ID = "id"; + final String PICTURE = "picture"; + final String TEXT = "text"; + final String LINK = "link"; + final String LINK_TEXT = "link_text"; + final String NAME = "name"; + final String BUTTONS = "buttons"; + final String ICON = "icon"; - if (user_id == 0 || !UsersList.hasBanner(user_id)) { + Optional user = Optional.ofNullable(original.optJSONObject(PEER)); + int userId = user.map(u -> u.optInt(ID)).orElse(0); + + if (userId == 0 || !UsersList.hasBanner(userId)) { return null; } - var jsonBanner = Handler.getBanner(user_id); + JSONObject banner = Handler.getBanner(userId); - if (jsonBanner == null) { + if (banner == null) { return null; } try { - var pic = jsonBanner.optString("picture"); - var text = jsonBanner.getString("text"); + String picture = banner.optString(PICTURE); + String text = banner.getString(TEXT); + String link = banner.optString(LINK); + String linkText = banner.optString(LINK_TEXT); - var link = jsonBanner.optString("link"); - var link_text = jsonBanner.optString("link_text"); + boolean hasIcon = !picture.isEmpty(); + boolean hasButton = !link.isEmpty(); + boolean isPicture = picture.endsWith(".png") || picture.endsWith(".jpg") || picture.endsWith(".jpeg") || picture.endsWith(".webp"); - var hasIcon = !pic.isEmpty(); - var hasButton = !link.isEmpty(); - var isPicture = pic.endsWith(".png") || pic.endsWith(".jpg") || pic.endsWith(".jpeg") || pic.endsWith(".webp"); + JSONObject json = new JSONObject(); - var json = new JSONObject(); + JSONObject buttonJson = new JSONObject(); + buttonJson.put("layout", "tertiary"); + buttonJson.put("text", linkText); + buttonJson.put("type", "link"); + buttonJson.put("link", link); - var buttonsJson = new JSONObject(); - buttonsJson.put("layout", "tertiary"); - buttonsJson.put("text", link_text); - buttonsJson.put("type", "link"); - buttonsJson.put("link", link); + JSONArray buttons = new JSONArray(); // max 3 buttons in array - var buttons = new JSONArray(); // max 3 buttons in array + if (hasButton) buttons.put(buttonJson); - if (hasButton) buttons.put(buttonsJson); - - json.put("name", "group_admin_welcome"); - json.put("text", text); - json.put("buttons", buttons); + json.put(NAME, "group_admin_welcome"); + json.put(TEXT, text); + json.put(BUTTONS, buttons); if (hasIcon && isPicture) { - json.put("icon", pic); + json.put(ICON, picture); } return json;