diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8031ccc99..f1987cc4b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@ Changes:
- Add theming colour support (thanks, Subhashish Anand!)
- Don't close scan activity on camera error (so manual entry is still possible)
+- Add all contributors to the about dialog
## v2.3.0 (2021-08-19)
diff --git a/app/src/main/java/protect/card_locker/AboutActivity.java b/app/src/main/java/protect/card_locker/AboutActivity.java
index 0ab4f86cb..ee2c3d356 100644
--- a/app/src/main/java/protect/card_locker/AboutActivity.java
+++ b/app/src/main/java/protect/card_locker/AboutActivity.java
@@ -1,6 +1,5 @@
package protect.card_locker;
-import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
@@ -13,6 +12,10 @@ import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.Toolbar;
import androidx.core.text.HtmlCompat;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -35,6 +38,23 @@ public class AboutActivity extends CatimaAppCompatActivity
actionBar.setDisplayHomeAsUpEnabled(true);
}
+ StringBuilder contributors = new StringBuilder().append("
");
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.contributors), StandardCharsets.UTF_8));
+
+ try {
+ while (true) {
+ String tmp = reader.readLine();
+
+ if (tmp == null || tmp.isEmpty()) {
+ break;
+ }
+
+ contributors.append("
");
+ contributors.append(tmp);
+ }
+ } catch (IOException ignored) {}
+
final List USED_LIBRARIES = new ArrayList<>();
USED_LIBRARIES.add(new ThirdPartyInfo("Color Picker", "https://github.com/jaredrummler/ColorPicker", "Apache 2.0"));
USED_LIBRARIES.add(new ThirdPartyInfo("Commons CSV", "https://commons.apache.org/proper/commons-csv/", "Apache 2.0"));
@@ -49,13 +69,13 @@ public class AboutActivity extends CatimaAppCompatActivity
StringBuilder libs = new StringBuilder().append("
");
for (ThirdPartyInfo entry : USED_LIBRARIES)
{
- libs.append("
").append(entry.name()).append(" (").append(entry.license()).append(")
");
+ libs.append("
").append(entry.name()).append(" (").append(entry.license()).append(")");
}
StringBuilder resources = new StringBuilder().append("
");
for (ThirdPartyInfo entry : USED_ASSETS)
{
- resources.append("
").append(entry.name()).append(" (").append(entry.license()).append(")
");
+ resources.append("
").append(entry.name()).append(" (").append(entry.license()).append(")");
}
String appName = getString(R.string.app_name);
@@ -88,6 +108,8 @@ public class AboutActivity extends CatimaAppCompatActivity
"
" +
getString(R.string.app_license) +
"
" +
+ String.format(getString(R.string.app_contributors), contributors.toString()) +
+ "
" +
String.format(getString(R.string.app_libraries), libs.toString()) +
"
" +
String.format(getString(R.string.app_resources), resources.toString()), HtmlCompat.FROM_HTML_MODE_COMPACT));
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 42c405a1c..bcfa001e2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -237,5 +237,6 @@
green_theme
grey_theme
brown_theme
+ Made possible by: %s