diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java index e956eed4..e19e8969 100644 --- a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java +++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java @@ -14,6 +14,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.OplusRecyclerView; +import org.json.JSONException; + import java.util.ArrayList; import java.util.List; @@ -22,6 +24,7 @@ import it.dhd.oxygencustomizer.ui.adapters.CreditsAdapter; import it.dhd.oxygencustomizer.ui.base.BaseFragment; import it.dhd.oxygencustomizer.ui.models.CreditsModel; +import it.dhd.oxygencustomizer.utils.ContributorParser; import it.dhd.oxygencustomizer.utils.TranslatorParser; public class Credits extends BaseFragment { @@ -72,7 +75,12 @@ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { credits.add(new CreditsModel(VIEW_TYPE_ITEM, "thecubed", """ Recognized Developer For finding a fix to lag issue from recents""", "https://github.com/thecubed", R.drawable.ic_default_person)); - + try { + credits.addAll(new ContributorParser().parseContributors()); + } catch (JSONException e) { + Log.e("Credits", "Error parsing contributors", e); + } + credits.add(new CreditsModel("Testers")); credits.add(new CreditsModel(VIEW_TYPE_ITEM, "Max", "", "", R.drawable.ic_default_person)); credits.add(new CreditsModel(VIEW_TYPE_ITEM, "Siri00", "", "", R.drawable.ic_default_person)); diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/ContributorParser.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/ContributorParser.java new file mode 100644 index 00000000..a3cc12fb --- /dev/null +++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/ContributorParser.java @@ -0,0 +1,55 @@ +package it.dhd.oxygencustomizer.utils; + +import static it.dhd.oxygencustomizer.OxygenCustomizer.getAppContext; +import static it.dhd.oxygencustomizer.ui.adapters.CreditsAdapter.VIEW_TYPE_ITEM; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import it.dhd.oxygencustomizer.ui.models.CreditsModel; + +public class ContributorParser { + + private List mExcludedContributors = new ArrayList<>(){{ + addAll(Arrays.asList("DHD2280", "crowdin-bot", "github-actions[bot]")); + }}; + + public ArrayList parseContributors() throws JSONException { + ArrayList contributorsList = new ArrayList<>(); + String jsonStr = readJsonFileFromAssets("Misc/contributors.json"); + JSONArray jsonArray = new JSONArray(jsonStr); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + String name = jsonObject.getString("login"); + if (mExcludedContributors.contains(name)) continue; + String picture = jsonObject.getString("avatar_url"); + String profileUrl = jsonObject.getString("html_url"); + contributorsList.add(new CreditsModel(VIEW_TYPE_ITEM, name, "GitHub Contributor", profileUrl, picture)); + } + return contributorsList; + } + + public String readJsonFileFromAssets(String fileName) { + StringBuilder stringBuilder = new StringBuilder(); + try { + InputStream inputStream = getAppContext().getAssets().open(fileName); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + String line; + while ((line = bufferedReader.readLine()) != null) { + stringBuilder.append(line); + } + bufferedReader.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return stringBuilder.toString(); + } +} diff --git a/app/src/main/res/drawable/ic_crdroid.xml b/app/src/main/res/drawable/ic_crdroid.xml index a463436d..48bff64e 100644 --- a/app/src/main/res/drawable/ic_crdroid.xml +++ b/app/src/main/res/drawable/ic_crdroid.xml @@ -19,7 +19,7 @@ android:height="24.0dp" android:viewportWidth="24.0" android:viewportHeight="24.0" - android:tint="?colorOnSurface"> + android:tint="@color/oplusColorControls"> diff --git a/app/src/main/res/drawable/ic_matrixx_logo.xml b/app/src/main/res/drawable/ic_matrixx_logo.xml index ff4c5540..9bf63d1f 100644 --- a/app/src/main/res/drawable/ic_matrixx_logo.xml +++ b/app/src/main/res/drawable/ic_matrixx_logo.xml @@ -4,7 +4,7 @@ android:height="20dp" android:viewportWidth="24" android:viewportHeight="24" - android:tint="?colorOnSurface"> + android:tint="@color/oplusColorControls">