diff --git a/app/src/main/java/protect/card_locker/AboutActivity.java b/app/src/main/java/protect/card_locker/AboutActivity.java
index 04e5b1791..25aab1976 100644
--- a/app/src/main/java/protect/card_locker/AboutActivity.java
+++ b/app/src/main/java/protect/card_locker/AboutActivity.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
-import androidx.appcompat.app.ActionBar;
import androidx.core.text.HtmlCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -40,62 +39,12 @@ public class AboutActivity extends CatimaAppCompatActivity implements View.OnCli
setSupportActionBar(binding.toolbar);
enableToolbarBackButton();
- 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()) {
- reader.close();
- 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"));
- USED_LIBRARIES.add(new ThirdPartyInfo("NumberPickerPreference", "https://github.com/invissvenska/NumberPickerPreference", "GNU LGPL 3.0"));
- USED_LIBRARIES.add(new ThirdPartyInfo("uCrop", "https://github.com/Yalantis/uCrop", "Apache 2.0"));
- USED_LIBRARIES.add(new ThirdPartyInfo("Zip4j", "https://github.com/srikanth-lingala/zip4j", "Apache 2.0"));
- USED_LIBRARIES.add(new ThirdPartyInfo("ZXing", "https://github.com/zxing/zxing", "Apache 2.0"));
- USED_LIBRARIES.add(new ThirdPartyInfo("ZXing Android Embedded", "https://github.com/journeyapps/zxing-android-embedded", "Apache 2.0"));
-
- final List USED_ASSETS = new ArrayList<>();
- USED_ASSETS.add(new ThirdPartyInfo("Android icons", "https://fonts.google.com/icons?selected=Material+Icons", "Apache 2.0"));
-
- StringBuilder libs = new StringBuilder().append("
");
- for (ThirdPartyInfo entry : USED_LIBRARIES) {
- 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(")");
- }
-
String appName = getString(R.string.app_name);
- int year = Calendar.getInstance().get(Calendar.YEAR);
-
- String version = "?";
- try {
- PackageInfo pi = getPackageManager().getPackageInfo(getPackageName(), 0);
- version = pi.versionName;
- } catch (PackageManager.NameNotFoundException e) {
- Log.w(TAG, "Package name not found", e);
- }
TextView copyright = binding.creditsSub;
- copyright.setText(String.format(getString(R.string.app_copyright_fmt), year));
+ copyright.setText(String.format(getString(R.string.app_copyright_fmt), getCurrentYear()));
TextView vHistory = binding.versionHistorySub;
- vHistory.setText(String.format(getString(R.string.debug_version_fmt), version));
+ vHistory.setText(String.format(getString(R.string.debug_version_fmt), getAppVersion()));
setTitle(String.format(getString(R.string.about_title_fmt), appName));
@@ -108,19 +57,11 @@ public class AboutActivity extends CatimaAppCompatActivity implements View.OnCli
binding.reportError.setOnClickListener(this);
binding.rate.setOnClickListener(this);
- StringBuilder contributorInfo = new StringBuilder();
- contributorInfo.append(HtmlCompat.fromHtml(String.format(getString(R.string.app_contributors), contributors.toString()), HtmlCompat.FROM_HTML_MODE_COMPACT));
- contributorInfo.append("\n\n");
- contributorInfo.append(getString(R.string.app_copyright_old));
- contributorInfo.append("\n\n");
- contributorInfo.append(HtmlCompat.fromHtml(String.format(getString(R.string.app_libraries), libs.toString()), HtmlCompat.FROM_HTML_MODE_COMPACT));
- contributorInfo.append("\n\n");
- contributorInfo.append(HtmlCompat.fromHtml(String.format(getString(R.string.app_resources), resources.toString()), HtmlCompat.FROM_HTML_MODE_COMPACT));
binding.credits
.setOnClickListener(view -> new MaterialAlertDialogBuilder(this)
.setTitle(R.string.credits)
- .setMessage(contributorInfo.toString())
+ .setMessage(getContributorInfo())
.setPositiveButton(R.string.ok, (dialogInterface, i) -> {
})
.show());
@@ -168,4 +109,84 @@ public class AboutActivity extends CatimaAppCompatActivity implements View.OnCli
}
}
+ private String getAppVersion() {
+ String version = "?";
+ try {
+ PackageInfo pi = getPackageManager().getPackageInfo(getPackageName(), 0);
+ version = pi.versionName;
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(TAG, "Package name not found", e);
+ }
+
+ return version;
+ }
+
+ private int getCurrentYear() {
+ return Calendar.getInstance().get(Calendar.YEAR);
+ }
+
+ private String getContributors() {
+ 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()) {
+ reader.close();
+ break;
+ }
+
+ contributors.append("
");
+ contributors.append(tmp);
+ }
+ } catch (IOException ignored) {
+ }
+
+ return contributors.toString();
+ }
+
+ private String getThirdPartyLibraries() {
+ 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"));
+ USED_LIBRARIES.add(new ThirdPartyInfo("NumberPickerPreference", "https://github.com/invissvenska/NumberPickerPreference", "GNU LGPL 3.0"));
+ USED_LIBRARIES.add(new ThirdPartyInfo("uCrop", "https://github.com/Yalantis/uCrop", "Apache 2.0"));
+ USED_LIBRARIES.add(new ThirdPartyInfo("Zip4j", "https://github.com/srikanth-lingala/zip4j", "Apache 2.0"));
+ USED_LIBRARIES.add(new ThirdPartyInfo("ZXing", "https://github.com/zxing/zxing", "Apache 2.0"));
+ USED_LIBRARIES.add(new ThirdPartyInfo("ZXing Android Embedded", "https://github.com/journeyapps/zxing-android-embedded", "Apache 2.0"));
+ StringBuilder libs = new StringBuilder().append("
");
+ for (ThirdPartyInfo entry : USED_LIBRARIES) {
+ libs.append("
").append(entry.name()).append(" (").append(entry.license()).append(")");
+ }
+
+ return libs.toString();
+ }
+
+ private String getUsedThirdPartyAssets() {
+ final List USED_ASSETS = new ArrayList<>();
+ USED_ASSETS.add(new ThirdPartyInfo("Android icons", "https://fonts.google.com/icons?selected=Material+Icons", "Apache 2.0"));
+
+ StringBuilder resources = new StringBuilder().append("
");
+ for (ThirdPartyInfo entry : USED_ASSETS) {
+ resources.append("
").append(entry.name()).append(" (").append(entry.license()).append(")");
+ }
+
+ return resources.toString();
+ }
+
+ private String getContributorInfo() {
+ StringBuilder contributorInfo = new StringBuilder();
+ contributorInfo.append(HtmlCompat.fromHtml(String.format(getString(R.string.app_contributors), getContributors()), HtmlCompat.FROM_HTML_MODE_COMPACT));
+ contributorInfo.append("\n\n");
+ contributorInfo.append(getString(R.string.app_copyright_old));
+ contributorInfo.append("\n\n");
+ contributorInfo.append(HtmlCompat.fromHtml(String.format(getString(R.string.app_libraries), getThirdPartyLibraries()), HtmlCompat.FROM_HTML_MODE_COMPACT));
+ contributorInfo.append("\n\n");
+ contributorInfo.append(HtmlCompat.fromHtml(String.format(getString(R.string.app_resources), getUsedThirdPartyAssets()), HtmlCompat.FROM_HTML_MODE_COMPACT));
+
+ return contributorInfo.toString();
+ }
}