From d00565ebacbc058b2eaaeaae2832cfdf0c790531 Mon Sep 17 00:00:00 2001 From: artdeell Date: Sun, 20 Aug 2023 23:08:02 +0300 Subject: [PATCH] Feat[modpack]: move CF API key into a string resource --- .github/workflows/android.yml | 1 + .gitignore | 3 ++- app_pojavlauncher/build.gradle | 7 +++++++ .../pojavlaunch/fragments/SearchModFragment.java | 8 +++++++- .../modloaders/modpacks/api/CommonApi.java | 13 ++++++++++--- .../modloaders/modpacks/api/CurseforgeApi.java | 6 +++++- 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 26e63f4b4..385f87a24 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -15,6 +15,7 @@ jobs: runs-on: ubuntu-22.04 env: GPLAY_KEYSTORE_PASSWORD: ${{ secrets.GPLAY_KEYSTORE_PASSWORD }} + CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }} steps: - name: Checkout uses: actions/checkout@v3 diff --git a/.gitignore b/.gitignore index 07b3f02a6..798bb7677 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ app_pojavlauncher/src/main/assets/components/jre local.properties .idea/ app_pojavlauncher/.cxx/ -.vs/ \ No newline at end of file +.vs/ +/curseforge_key.txt diff --git a/app_pojavlauncher/build.gradle b/app_pojavlauncher/build.gradle index 1bd61db56..fc84ac1f7 100644 --- a/app_pojavlauncher/build.gradle +++ b/app_pojavlauncher/build.gradle @@ -69,6 +69,12 @@ def getVersionName = { return TAG_STRING.trim().replace("-g", "-") + "-" + BRANCH.toString().trim() } +def getCFApiKey = { + String key = System.getenv("CURSEFORGE_API_KEY"); + if(key == null) key = new File("./curseforge_key.txt").text; + return key; +} + configurations { instrumentedClasspath { canBeConsumed = false @@ -107,6 +113,7 @@ android { versionCode getDateSeconds() versionName getVersionName() multiDexEnabled true //important + resValue 'string', 'curseforge_api_key', getCFApiKey() } buildTypes { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java index 70f235865..1036fb9af 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/fragments/SearchModFragment.java @@ -1,5 +1,6 @@ package net.kdt.pojavlaunch.fragments; +import android.content.Context; import android.content.DialogInterface; import android.content.res.ColorStateList; import android.graphics.Color; @@ -55,11 +56,16 @@ public class SearchModFragment extends Fragment implements ModItemAdapter.Search public SearchModFragment(){ super(R.layout.fragment_mod_search); - modpackApi = new CommonApi(); mSearchFilters = new SearchFilters(); mSearchFilters.isModpack = true; } + @Override + public void onAttach(@NonNull Context context) { + super.onAttach(context); + modpackApi = new CommonApi(context.getString(R.string.curseforge_api_key)); + } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { // You can only access resources after attaching to current context diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CommonApi.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CommonApi.java index aad45ad3c..00c753b1b 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CommonApi.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/modloaders/modpacks/api/CommonApi.java @@ -18,9 +18,16 @@ import java.util.concurrent.Future; */ public class CommonApi implements ModpackApi { - private final ModpackApi mCurseforgeApi = new CurseforgeApi(); - private final ModpackApi mModrinthApi = new ModrinthApi(); - private final ModpackApi[] mModpackApis = new ModpackApi[]{mModrinthApi, mCurseforgeApi}; + private final ModpackApi mCurseforgeApi; + private final ModpackApi mModrinthApi; + private final ModpackApi[] mModpackApis; + + public CommonApi(String curseforgeApiKey) { + mCurseforgeApi = new CurseforgeApi(curseforgeApiKey); + mModrinthApi = new ModrinthApi(); + mModpackApis = new ModpackApi[]{mModrinthApi, mCurseforgeApi}; + } + @Override public SearchResult searchMod(SearchFilters searchFilters, SearchResult previousPageResult) { CommonApiSearchResult commonApiSearchResult = (CommonApiSearchResult) previousPageResult; 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 f6118aef6..8484e2f3f 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 @@ -1,5 +1,6 @@ package net.kdt.pojavlaunch.modloaders.modpacks.api; +import android.content.Context; import android.util.Log; import com.google.gson.JsonArray; @@ -38,7 +39,10 @@ public class CurseforgeApi implements ModpackApi{ private static final int CURSEFORGE_PAGINATION_END_REACHED = -1; private static final int CURSEFORGE_PAGINATION_ERROR = -2; - private final ApiHandler mApiHandler = new ApiHandler("https://api.curseforge.com/v1", "$2a$10$Vxkj4kH1Ekf8EsS4Mx8b2eVTHsht107Lk2erVEUtnbqvojsLy.jYq"); + private final ApiHandler mApiHandler; + public CurseforgeApi(String apiKey) { + mApiHandler = new ApiHandler("https://api.curseforge.com/v1", apiKey); + } @Override public SearchResult searchMod(SearchFilters searchFilters, SearchResult previousPageResult) {