From 7d284a85bc38b41b159432a27dd6c34d5349367d Mon Sep 17 00:00:00 2001 From: Pfaffenrodt Date: Sat, 29 Oct 2022 12:38:39 +0200 Subject: [PATCH] Extract about content from onCreate --- .../protect/card_locker/AboutActivity.java | 145 ++++++++++-------- 1 file changed, 83 insertions(+), 62 deletions(-) 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(); + } }