From 5efe8f3de8c090d77f5f391305c0beacc8048d0b Mon Sep 17 00:00:00 2001 From: movte <212824502@qq.com> Date: Mon, 12 Aug 2024 03:30:09 +0800 Subject: [PATCH 1/2] Fix: Error fetching logo link for ModPack without icon --- .../modloaders/modpacks/ModItemAdapter.java | 2 +- .../modloaders/modpacks/api/CurseforgeApi.java | 9 ++++++++- .../modloaders/modpacks/api/ModrinthApi.java | 11 ++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/ModItemAdapter.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/ModItemAdapter.java index 5eab19ab04..3bf6a23f40 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/ModItemAdapter.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/ModItemAdapter.java @@ -256,7 +256,7 @@ public void setStateLimited(ModItem item) { drawable.setCornerRadius(mCornerDimensionCache * bm.getHeight()); mIconView.setImageDrawable(drawable); }; - mIconCache.getImage(mImageReceiver, mModItem.getIconCacheTag(), mModItem.imageUrl); + if (mModItem.imageUrl != null) mIconCache.getImage(mImageReceiver, mModItem.getIconCacheTag(), mModItem.imageUrl); mSourceView.setImageResource(getSourceDrawable(item.apiSource)); mTitle.setText(item.title); mDescription.setText(item.description); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CurseforgeApi.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CurseforgeApi.java index 940e4452a4..19277f9e79 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CurseforgeApi.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CurseforgeApi.java @@ -79,12 +79,19 @@ public SearchResult searchMod(SearchFilters searchFilters, SearchResult previous Log.i("CurseforgeApi", "Skipping modpack "+dataElement.get("name").getAsString() + " because curseforge sucks"); continue; } + String logoUrl; + try { + logoUrl = dataElement.getAsJsonObject("logo").get("thumbnailUrl").getAsString(); + } catch (Exception e) { + Log.e("error", Tools.printToString(e)); + logoUrl = null; + } ModItem modItem = new ModItem(Constants.SOURCE_CURSEFORGE, searchFilters.isModpack, dataElement.get("id").getAsString(), dataElement.get("name").getAsString(), dataElement.get("summary").getAsString(), - dataElement.getAsJsonObject("logo").get("thumbnailUrl").getAsString()); + logoUrl); modItemList.add(modItem); } if(curseforgeSearchResult == null) curseforgeSearchResult = new CurseforgeSearchResult(); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java index 73a5863f6e..2259a4870a 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/ModrinthApi.java @@ -1,5 +1,7 @@ package net.kdt.pojavlaunch.modloaders.modpacks.api; +import android.util.Log; + import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.kdt.mcgui.ProgressLayout; @@ -64,13 +66,20 @@ public SearchResult searchMod(SearchFilters searchFilters, SearchResult previous ModItem[] items = new ModItem[responseHits.size()]; for(int i=0; i Date: Mon, 12 Aug 2024 13:27:05 +0800 Subject: [PATCH 2/2] Fix: Potential Hotbar Index Out-of-Bounds Issue --- .../net/kdt/pojavlaunch/customcontrols/mouse/HotbarView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/mouse/HotbarView.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/mouse/HotbarView.java index 640d65fbcf..ecdae55a7e 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/mouse/HotbarView.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/mouse/HotbarView.java @@ -99,7 +99,7 @@ public boolean onTouchEvent(MotionEvent event) { mDropGesture.cancel(); return true; } - int hotbarIndex = (int)MathUtils.map(x, 0, mWidth, 0, HOTBAR_KEYS.length); + int hotbarIndex = (int)MathUtils.map(x, 0, mWidth, 0, HOTBAR_KEYS.length - 1); // Check if the slot changed and we need to make a key press if(hotbarIndex == mLastIndex) { // Only check for doubletapping if the slot has not changed