From bda1a1d5afec30534b2cf5ea8263c92e4c0b9c5b Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Wed, 27 Jan 2021 13:54:11 +0100 Subject: [PATCH] Add a dialog for Aegis' license --- app/src/main/assets/LICENSE | 1 + app/src/main/assets/license.html | 14 +++ .../aegis/importers/AegisImporter.java | 2 +- .../aegis/importers/AndOtpImporter.java | 2 +- .../importers/AuthenticatorPlusImporter.java | 2 +- .../aegis/importers/AuthyImporter.java | 2 +- .../importers/TotpAuthenticatorImporter.java | 2 +- .../aegis/ui/AboutActivity.java | 21 ++++- .../aegis/ui/AegisActivity.java | 1 + .../aegis/ui/AuthActivity.java | 1 + .../aegis/ui/ChangelogDialog.java | 94 ------------------- .../aegis/ui/EditEntryActivity.java | 1 + .../aegis/ui/GroupManagerActivity.java | 1 + .../aegis/ui/ImportEntriesActivity.java | 1 + .../aegis/ui/IntroActivity.java | 1 + .../aegis/ui/MainActivity.java | 1 + .../aegis/ui/ScannerActivity.java | 2 +- .../aegis/ui/SlotManagerActivity.java | 1 + .../aegis/ui/TransferEntriesActivity.java | 1 + .../aegis/ui/dialogs/ChangelogDialog.java | 21 +++++ .../aegis/ui/{ => dialogs}/Dialogs.java | 2 +- .../aegis/ui/dialogs/LicenseDialog.java | 22 +++++ .../aegis/ui/dialogs/SimpleWebViewDialog.java | 93 ++++++++++++++++++ .../AppearancePreferencesFragment.java | 2 +- .../fragments/BackupsPreferencesFragment.java | 2 +- .../ImportExportPreferencesFragment.java | 2 +- .../ui/fragments/PreferencesFragment.java | 2 +- .../SecurityPreferencesFragment.java | 2 +- .../aegis/ui/slides/SecuritySetupSlide.java | 2 +- .../aegis/ui/tasks/ProgressDialogTask.java | 2 +- .../aegis/ui/views/EntryListView.java | 3 +- app/src/main/res/layout/content_about.xml | 49 +++++++++- app/src/main/res/values-ar-rSA/strings.xml | 4 +- app/src/main/res/values-cs-rCZ/strings.xml | 4 +- app/src/main/res/values-de-rDE/strings.xml | 4 +- app/src/main/res/values-el-rGR/strings.xml | 4 +- app/src/main/res/values-es-rES/strings.xml | 4 +- app/src/main/res/values-eu-rES/strings.xml | 4 +- app/src/main/res/values-fa-rIR/strings.xml | 4 +- app/src/main/res/values-fi-rFI/strings.xml | 4 +- app/src/main/res/values-fr-rFR/strings.xml | 4 +- app/src/main/res/values-hi-rIN/strings.xml | 4 +- app/src/main/res/values-hu-rHU/strings.xml | 4 +- app/src/main/res/values-in-rID/strings.xml | 4 +- app/src/main/res/values-it-rIT/strings.xml | 4 +- app/src/main/res/values-ja-rJP/strings.xml | 4 +- app/src/main/res/values-kn-rIN/strings.xml | 4 +- app/src/main/res/values-nl-rNL/strings.xml | 4 +- app/src/main/res/values-pl-rPL/strings.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 4 +- app/src/main/res/values-pt-rPT/strings.xml | 4 +- app/src/main/res/values-ro-rRO/strings.xml | 4 +- app/src/main/res/values-ru-rRU/strings.xml | 4 +- app/src/main/res/values-tr-rTR/strings.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 4 +- app/src/main/res/values-zh-rTW/strings.xml | 4 +- app/src/main/res/values/strings.xml | 8 +- 57 files changed, 290 insertions(+), 169 deletions(-) create mode 120000 app/src/main/assets/LICENSE create mode 100644 app/src/main/assets/license.html delete mode 100644 app/src/main/java/com/beemdevelopment/aegis/ui/ChangelogDialog.java create mode 100644 app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/ChangelogDialog.java rename app/src/main/java/com/beemdevelopment/aegis/ui/{ => dialogs}/Dialogs.java (99%) create mode 100644 app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/LicenseDialog.java create mode 100644 app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java diff --git a/app/src/main/assets/LICENSE b/app/src/main/assets/LICENSE new file mode 120000 index 00000000..14776154 --- /dev/null +++ b/app/src/main/assets/LICENSE @@ -0,0 +1 @@ +../../../../LICENSE \ No newline at end of file diff --git a/app/src/main/assets/license.html b/app/src/main/assets/license.html new file mode 100644 index 00000000..812429ad --- /dev/null +++ b/app/src/main/assets/license.html @@ -0,0 +1,14 @@ + + + + + +
%1$s
+ + diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/AegisImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/AegisImporter.java index 706cb1c2..85b43f77 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/AegisImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/AegisImporter.java @@ -8,7 +8,7 @@ import androidx.lifecycle.Lifecycle; import com.beemdevelopment.aegis.encoding.EncodingException; import com.beemdevelopment.aegis.helpers.ContextHelper; import com.beemdevelopment.aegis.otp.OtpInfoException; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.tasks.PasswordSlotDecryptTask; import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.vault.VaultEntry; diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpImporter.java index 17a43c9b..b8b86475 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/AndOtpImporter.java @@ -17,7 +17,7 @@ import com.beemdevelopment.aegis.otp.OtpInfo; import com.beemdevelopment.aegis.otp.OtpInfoException; import com.beemdevelopment.aegis.otp.SteamInfo; import com.beemdevelopment.aegis.otp.TotpInfo; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.tasks.ProgressDialogTask; import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.vault.VaultEntry; diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/AuthenticatorPlusImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/AuthenticatorPlusImporter.java index 9b4df7cd..c171c5dc 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/AuthenticatorPlusImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/AuthenticatorPlusImporter.java @@ -2,7 +2,7 @@ package com.beemdevelopment.aegis.importers; import android.content.Context; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.util.IOUtils; import com.topjohnwu.superuser.io.SuFile; diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/AuthyImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/AuthyImporter.java index 3e80e30d..7d8a1ae9 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/AuthyImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/AuthyImporter.java @@ -12,7 +12,7 @@ import com.beemdevelopment.aegis.encoding.Hex; import com.beemdevelopment.aegis.otp.OtpInfo; import com.beemdevelopment.aegis.otp.OtpInfoException; import com.beemdevelopment.aegis.otp.TotpInfo; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.util.JsonUtils; import com.beemdevelopment.aegis.util.PreferenceParser; import com.beemdevelopment.aegis.vault.VaultEntry; diff --git a/app/src/main/java/com/beemdevelopment/aegis/importers/TotpAuthenticatorImporter.java b/app/src/main/java/com/beemdevelopment/aegis/importers/TotpAuthenticatorImporter.java index 8b29f372..c3fea991 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/importers/TotpAuthenticatorImporter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/importers/TotpAuthenticatorImporter.java @@ -14,7 +14,7 @@ import com.beemdevelopment.aegis.encoding.EncodingException; import com.beemdevelopment.aegis.encoding.Hex; import com.beemdevelopment.aegis.otp.OtpInfoException; import com.beemdevelopment.aegis.otp.TotpInfo; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.util.PreferenceParser; import com.beemdevelopment.aegis.vault.VaultEntry; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AboutActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AboutActivity.java index 8ed048bc..f732e398 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AboutActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AboutActivity.java @@ -21,6 +21,8 @@ import com.beemdevelopment.aegis.Theme; import com.beemdevelopment.aegis.helpers.ThemeHelper; import com.beemdevelopment.aegis.licenses.GlideLicense; import com.beemdevelopment.aegis.licenses.ProtobufLicense; +import com.beemdevelopment.aegis.ui.dialogs.ChangelogDialog; +import com.beemdevelopment.aegis.ui.dialogs.LicenseDialog; import com.mikepenz.iconics.context.IconicsLayoutInflater2; import de.psdev.licensesdialog.LicenseResolver; @@ -49,8 +51,15 @@ public class AboutActivity extends AegisActivity { getSupportActionBar().setDisplayShowHomeEnabled(true); } - View btnLicenses = findViewById(R.id.btn_licenses); - btnLicenses.setOnClickListener(v -> showLicenseDialog()); + View btnLicense = findViewById(R.id.btn_license); + btnLicense.setOnClickListener(v -> { + LicenseDialog.create() + .setTheme(getConfiguredTheme()) + .show(getSupportFragmentManager(), null); + }); + + View btnThirdPartyLicenses = findViewById(R.id.btn_third_party_licenses); + btnThirdPartyLicenses.setOnClickListener(v -> showThirdPartyLicenseDialog()); TextView appVersion = findViewById(R.id.app_version); appVersion.setText(getCurrentAppVersion()); @@ -80,7 +89,9 @@ public class AboutActivity extends AegisActivity { View btnChangelog = findViewById(R.id.btn_changelog); btnChangelog.setOnClickListener(v -> { - ChangelogDialog.create().setTheme(getConfiguredTheme()).show(getSupportFragmentManager(), "CHANGELOG_DIALOG"); + ChangelogDialog.create() + .setTheme(getConfiguredTheme()) + .show(getSupportFragmentManager(), null); }); } @@ -116,7 +127,7 @@ public class AboutActivity extends AegisActivity { startActivity(Intent.createChooser(mailIntent, this.getString(R.string.email))); } - private void showLicenseDialog() { + private void showThirdPartyLicenseDialog() { String stylesheet = getString(R.string.custom_notices_format_style); int backgroundColorResource = getConfiguredTheme() == Theme.AMOLED ? R.attr.cardBackgroundFocused : R.attr.cardBackground; String backgroundColor = getThemeColorAsHex(backgroundColorResource); @@ -131,7 +142,7 @@ public class AboutActivity extends AegisActivity { new LicensesDialog.Builder(this) .setNotices(R.raw.notices) - .setTitle(R.string.licenses) + .setTitle(R.string.third_party_licenses) .setNoticesCssStyle(stylesheet) .setIncludeOwnLicense(true) .build() diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java index 1109d7d4..ae2080a0 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java @@ -16,6 +16,7 @@ import com.beemdevelopment.aegis.Preferences; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.Theme; import com.beemdevelopment.aegis.ThemeMap; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultManagerException; import java.util.Locale; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java index 402b5f81..fdba8765 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java @@ -33,6 +33,7 @@ import com.beemdevelopment.aegis.helpers.BiometricsHelper; import com.beemdevelopment.aegis.helpers.EditTextHelper; import com.beemdevelopment.aegis.helpers.MetricsHelper; import com.beemdevelopment.aegis.helpers.UiThreadExecutor; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.tasks.PasswordSlotDecryptTask; import com.beemdevelopment.aegis.vault.VaultFile; import com.beemdevelopment.aegis.vault.VaultFileCredentials; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/ChangelogDialog.java b/app/src/main/java/com/beemdevelopment/aegis/ui/ChangelogDialog.java deleted file mode 100644 index b9a1338f..00000000 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/ChangelogDialog.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.beemdevelopment.aegis.ui; - -import android.annotation.SuppressLint; -import android.app.Dialog; -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.graphics.Color; -import android.os.Bundle; -import android.view.InflateException; -import android.view.LayoutInflater; -import android.view.View; -import android.webkit.WebView; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; - -import com.beemdevelopment.aegis.R; -import com.beemdevelopment.aegis.Theme; -import com.beemdevelopment.aegis.helpers.ThemeHelper; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.UnsupportedEncodingException; - -public class ChangelogDialog extends DialogFragment { - private Theme _themeStyle; - - public static ChangelogDialog create() { - return new ChangelogDialog(); - } - - @SuppressLint("InflateParams") - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final View customView; - try { - customView = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_web_view, null); - } catch (InflateException e) { - e.printStackTrace(); - return new AlertDialog.Builder(getActivity()) - .setTitle(android.R.string.dialog_alert_title) - .setMessage(getString(R.string.webview_error)) - .setPositiveButton(android.R.string.ok, null) - .show(); - } - AlertDialog dialog = new AlertDialog.Builder(getActivity()) - .setTitle("Changelog") - .setView(customView) - .setPositiveButton(android.R.string.ok, null) - .show(); - - final WebView webView = customView.findViewById(R.id.web_view); - StringBuilder buf = new StringBuilder(); - - try (InputStream html = getActivity().getAssets().open("changelog.html")) { - BufferedReader in = new BufferedReader(new InputStreamReader(html, "UTF-8")); - String str; - while ((str = in.readLine()) != null) - buf.append(str); - - in.close(); - String changelog = buf.toString(); - changelog = replaceStylesheet(changelog); - webView.loadData(changelog, "text/html", "UTF-8"); - } catch (IOException e) { - webView.loadData("

Unable to load

" + e.getLocalizedMessage() + "

", "text/html", "UTF-8"); - } - return dialog; - } - - private String replaceStylesheet(String changelog) { - int backgroundColorResource = _themeStyle == Theme.AMOLED ? R.attr.cardBackgroundFocused : R.attr.cardBackground; - String backgroundColor = colorToCSS(ThemeHelper.getThemeColor(backgroundColorResource, getContext().getTheme())); - String textColor = colorToCSS(0xFFFFFF & ThemeHelper.getThemeColor(R.attr.primaryText, getContext().getTheme())); - - return String.format(changelog, backgroundColor, textColor); - } - - private static String colorToCSS(int color) { - return String.format("rgb(%d, %d, %d)", Color.red(color), Color.green(color), Color.blue(color)); - } - - public ChangelogDialog setTheme(Theme theme) { - _themeStyle = theme; - - return this; - } -} - diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java index c7e893e8..c3b4f1cf 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/EditEntryActivity.java @@ -39,6 +39,7 @@ import com.beemdevelopment.aegis.otp.OtpInfo; import com.beemdevelopment.aegis.otp.OtpInfoException; import com.beemdevelopment.aegis.otp.SteamInfo; import com.beemdevelopment.aegis.otp.TotpInfo; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.util.Cloner; import com.beemdevelopment.aegis.vault.VaultEntry; import com.beemdevelopment.aegis.vault.VaultManager; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java index 3dfc3817..1e7b81f0 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java @@ -10,6 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.beemdevelopment.aegis.R; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.views.GroupAdapter; import java.text.Collator; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/ImportEntriesActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/ImportEntriesActivity.java index 10986050..47e4821b 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/ImportEntriesActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/ImportEntriesActivity.java @@ -23,6 +23,7 @@ import com.beemdevelopment.aegis.helpers.FabScrollHelper; import com.beemdevelopment.aegis.importers.DatabaseImporter; import com.beemdevelopment.aegis.importers.DatabaseImporterEntryException; import com.beemdevelopment.aegis.importers.DatabaseImporterException; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.models.ImportEntry; import com.beemdevelopment.aegis.ui.views.ImportEntriesAdapter; import com.beemdevelopment.aegis.util.UUIDMap; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/IntroActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/IntroActivity.java index 212b188c..aa6196e7 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/IntroActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/IntroActivity.java @@ -4,6 +4,7 @@ import android.os.Bundle; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.ThemeMap; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.intro.IntroBaseActivity; import com.beemdevelopment.aegis.ui.intro.SlideFragment; import com.beemdevelopment.aegis.ui.slides.DoneSlide; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index 69a1b8f4..bc74a361 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -32,6 +32,7 @@ import com.beemdevelopment.aegis.helpers.PermissionHelper; import com.beemdevelopment.aegis.helpers.QrCodeAnalyzer; import com.beemdevelopment.aegis.otp.GoogleAuthInfo; import com.beemdevelopment.aegis.otp.GoogleAuthInfoException; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.fragments.BackupsPreferencesFragment; import com.beemdevelopment.aegis.ui.fragments.PreferencesFragment; import com.beemdevelopment.aegis.ui.views.EntryListView; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/ScannerActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/ScannerActivity.java index 30a855fd..3de6e87e 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/ScannerActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/ScannerActivity.java @@ -8,7 +8,6 @@ import android.view.MenuItem; import android.widget.Toast; import androidx.annotation.NonNull; -import androidx.appcompat.widget.Toolbar; import androidx.camera.core.CameraInfoUnavailableException; import androidx.camera.core.CameraSelector; import androidx.camera.core.ImageAnalysis; @@ -22,6 +21,7 @@ import com.beemdevelopment.aegis.ThemeMap; import com.beemdevelopment.aegis.helpers.QrCodeAnalyzer; import com.beemdevelopment.aegis.otp.GoogleAuthInfo; import com.beemdevelopment.aegis.otp.GoogleAuthInfoException; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultEntry; import com.google.common.util.concurrent.ListenableFuture; import com.google.zxing.Result; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/SlotManagerActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/SlotManagerActivity.java index a75ef505..f44d55e0 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/SlotManagerActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/SlotManagerActivity.java @@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.crypto.KeyStoreHandle; import com.beemdevelopment.aegis.crypto.KeyStoreHandleException; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultFileCredentials; import com.beemdevelopment.aegis.vault.slots.BiometricSlot; import com.beemdevelopment.aegis.vault.slots.PasswordSlot; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/TransferEntriesActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/TransferEntriesActivity.java index 30ea3c29..b4ea00e0 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/TransferEntriesActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/TransferEntriesActivity.java @@ -12,6 +12,7 @@ import android.widget.TextView; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.otp.GoogleAuthInfo; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultManager; import com.google.zxing.BarcodeFormat; import com.google.zxing.WriterException; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/ChangelogDialog.java b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/ChangelogDialog.java new file mode 100644 index 00000000..1d6f6ee5 --- /dev/null +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/ChangelogDialog.java @@ -0,0 +1,21 @@ +package com.beemdevelopment.aegis.ui.dialogs; + +import android.content.Context; + +import com.beemdevelopment.aegis.R; + +public class ChangelogDialog extends SimpleWebViewDialog { + private ChangelogDialog() { + super(R.string.changelog); + } + + public static ChangelogDialog create() { + return new ChangelogDialog(); + } + + @Override + protected String getContent(Context context) { + String content = readAssetAsString(context, "changelog.html"); + return String.format(content, getBackgroundColor(), getTextColor()); + } +} diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java similarity index 99% rename from app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java rename to app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java index e9b0f259..fe0e522f 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/Dialogs.java @@ -1,4 +1,4 @@ -package com.beemdevelopment.aegis.ui; +package com.beemdevelopment.aegis.ui.dialogs; import android.app.Activity; import android.app.Dialog; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/LicenseDialog.java b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/LicenseDialog.java new file mode 100644 index 00000000..11ba9ca0 --- /dev/null +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/LicenseDialog.java @@ -0,0 +1,22 @@ +package com.beemdevelopment.aegis.ui.dialogs; + +import android.content.Context; + +import com.beemdevelopment.aegis.R; + +public class LicenseDialog extends SimpleWebViewDialog { + private LicenseDialog() { + super(R.string.license); + } + + public static LicenseDialog create() { + return new LicenseDialog(); + } + + @Override + protected String getContent(Context context) { + String license = readAssetAsString(context, "LICENSE"); + String html = readAssetAsString(context, "license.html"); + return String.format(html, license, getBackgroundColor(), getTextColor()); + } +} diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java new file mode 100644 index 00000000..a2029616 --- /dev/null +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/dialogs/SimpleWebViewDialog.java @@ -0,0 +1,93 @@ +package com.beemdevelopment.aegis.ui.dialogs; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.view.InflateException; +import android.view.LayoutInflater; +import android.view.View; +import android.webkit.WebView; + +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.DialogFragment; + +import com.beemdevelopment.aegis.R; +import com.beemdevelopment.aegis.Theme; +import com.beemdevelopment.aegis.helpers.ThemeHelper; +import com.google.common.io.CharStreams; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + +public abstract class SimpleWebViewDialog extends DialogFragment { + private Theme _theme; + private final @StringRes int _title; + + protected SimpleWebViewDialog(@StringRes int title) { + _title = title; + } + + protected abstract String getContent(Context context); + + @SuppressLint("InflateParams") + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final View view; + try { + view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_web_view, null); + } catch (InflateException e) { + e.printStackTrace(); + return new AlertDialog.Builder(getActivity()) + .setTitle(android.R.string.dialog_alert_title) + .setMessage(getString(R.string.webview_error)) + .setPositiveButton(android.R.string.ok, null) + .show(); + } + + AlertDialog dialog = new AlertDialog.Builder(getActivity()) + .setTitle(_title) + .setView(view) + .setPositiveButton(android.R.string.ok, null) + .show(); + + String content = getContent(getContext()); + final WebView webView = view.findViewById(R.id.web_view); + webView.loadData(content, "text/html", "UTF-8"); + return dialog; + } + + public SimpleWebViewDialog setTheme(Theme theme) { + _theme = theme; + return this; + } + + protected String getBackgroundColor() { + int backgroundColorResource = _theme == Theme.AMOLED ? R.attr.cardBackgroundFocused : R.attr.cardBackground; + return colorToCSS(ThemeHelper.getThemeColor(backgroundColorResource, getContext().getTheme())); + } + + protected String getTextColor() { + return colorToCSS(0xFFFFFF & ThemeHelper.getThemeColor(R.attr.primaryText, getContext().getTheme())); + } + + @SuppressLint("DefaultLocale") + private static String colorToCSS(int color) { + return String.format("rgb(%d, %d, %d)", Color.red(color), Color.green(color), Color.blue(color)); + } + + protected static String readAssetAsString(Context context, String name) { + try (InputStream inStream = context.getAssets().open(name); + InputStreamReader reader = new InputStreamReader(inStream, StandardCharsets.UTF_8)) { + return CharStreams.toString(reader); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/AppearancePreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/AppearancePreferencesFragment.java index cc6b5270..4413b6d6 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/AppearancePreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/AppearancePreferencesFragment.java @@ -12,7 +12,7 @@ import com.beemdevelopment.aegis.Preferences; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.Theme; import com.beemdevelopment.aegis.ViewMode; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.GroupManagerActivity; import com.beemdevelopment.aegis.vault.VaultEntry; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/BackupsPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/BackupsPreferencesFragment.java index a1875f10..ec4d6f97 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/BackupsPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/BackupsPreferencesFragment.java @@ -11,7 +11,7 @@ import androidx.preference.SwitchPreferenceCompat; import com.beemdevelopment.aegis.Preferences; import com.beemdevelopment.aegis.R; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultManagerException; public class BackupsPreferencesFragment extends PreferencesFragment { diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/ImportExportPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/ImportExportPreferencesFragment.java index ce916cf4..d17fd990 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/ImportExportPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/ImportExportPreferencesFragment.java @@ -22,7 +22,7 @@ import com.beemdevelopment.aegis.BuildConfig; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.helpers.DropdownHelper; import com.beemdevelopment.aegis.importers.DatabaseImporter; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.ImportEntriesActivity; import com.beemdevelopment.aegis.ui.tasks.ExportTask; import com.beemdevelopment.aegis.vault.VaultBackupManager; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/PreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/PreferencesFragment.java index e8ce9777..0d89348b 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/PreferencesFragment.java @@ -10,7 +10,7 @@ import androidx.preference.PreferenceFragmentCompat; import com.beemdevelopment.aegis.AegisApplication; import com.beemdevelopment.aegis.Preferences; import com.beemdevelopment.aegis.R; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultManager; import com.beemdevelopment.aegis.vault.VaultManagerException; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/SecurityPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/SecurityPreferencesFragment.java index c0bcfd84..6ffb7920 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/SecurityPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/SecurityPreferencesFragment.java @@ -21,7 +21,7 @@ import com.beemdevelopment.aegis.crypto.KeyStoreHandleException; import com.beemdevelopment.aegis.helpers.BiometricSlotInitializer; import com.beemdevelopment.aegis.helpers.BiometricsHelper; import com.beemdevelopment.aegis.services.NotificationService; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.SlotManagerActivity; import com.beemdevelopment.aegis.ui.preferences.SwitchPreference; import com.beemdevelopment.aegis.ui.tasks.PasswordSlotDecryptTask; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java index ef6d5524..f5bf09ab 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/SecuritySetupSlide.java @@ -23,7 +23,7 @@ import com.beemdevelopment.aegis.helpers.BiometricSlotInitializer; import com.beemdevelopment.aegis.helpers.BiometricsHelper; import com.beemdevelopment.aegis.helpers.EditTextHelper; import com.beemdevelopment.aegis.helpers.PasswordStrengthHelper; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.ui.intro.SlideFragment; import com.beemdevelopment.aegis.ui.tasks.KeyDerivationTask; import com.beemdevelopment.aegis.vault.VaultFileCredentials; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/tasks/ProgressDialogTask.java b/app/src/main/java/com/beemdevelopment/aegis/ui/tasks/ProgressDialogTask.java index 8ecb1641..d7d6cf86 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/tasks/ProgressDialogTask.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/tasks/ProgressDialogTask.java @@ -12,7 +12,7 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; public abstract class ProgressDialogTask extends AsyncTask { private ProgressDialog _dialog; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java index 64cfa96f..08832d40 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java @@ -30,7 +30,7 @@ import com.beemdevelopment.aegis.helpers.MetricsHelper; import com.beemdevelopment.aegis.helpers.SimpleItemTouchHelperCallback; import com.beemdevelopment.aegis.helpers.UiRefresher; import com.beemdevelopment.aegis.otp.TotpInfo; -import com.beemdevelopment.aegis.ui.Dialogs; +import com.beemdevelopment.aegis.ui.dialogs.Dialogs; import com.beemdevelopment.aegis.vault.VaultEntry; import com.bumptech.glide.Glide; import com.bumptech.glide.ListPreloader; @@ -45,7 +45,6 @@ import com.google.android.material.chip.ChipGroup; import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.Locale; import java.util.TreeSet; import java.util.UUID; import java.util.stream.Collectors; diff --git a/app/src/main/res/layout/content_about.xml b/app/src/main/res/layout/content_about.xml index fbbf2fac..b56c03aa 100644 --- a/app/src/main/res/layout/content_about.xml +++ b/app/src/main/res/layout/content_about.xml @@ -178,7 +178,7 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 7991fa65..f44a4da1 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -227,8 +227,8 @@ سجل التغيير ما الجديد الكود المصدري، والمشاكل، والمعلومات - الرخصات - الرخصات المكتبات التي يستعملها Aegis + الرخصات + الرخصات المكتبات التي يستعملها Aegis هولندا اكتب بريد الكتروني قم بزيارة موقعنا diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 050fe3ec..c6b31691 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -244,8 +244,8 @@ Seznam změn Co je nového? Zdrojový kód, problémy a informace - Licence - Licence knihoven použitých v Aegis + Licence + Licence knihoven použitých v Aegis Nizozemsko Pošlete nám e-mail Navštivte náš web diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index e74ba250..c25942d7 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -244,8 +244,8 @@ Änderungsprotokoll Was ist neu Quellcode, Probleme und Informationen - Lizenzen - Lizenzen der Bibliotheken, die Aegis verwendet + Lizenzen + Lizenzen der Bibliotheken, die Aegis verwendet Niederlande Eine E-Mail schreiben Besuche unsere Website diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 8ca68070..7fc37ec0 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -244,8 +244,8 @@ Αρχείο καταγραφής αλλαγών Τι νέο υπάρχει Πηγαίος κώδικας, προβλήματα και πληροφορίες - Άδειες - Άδειες βιβλιοθηκών που χρησιμοποιεί το Aegis + Άδειες + Άδειες βιβλιοθηκών που χρησιμοποιεί το Aegis Ολλανδία Γράψτε ένα email Επισκεφτείτε την ιστοσελίδα μας diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 0c34d96d..0f9c956d 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -224,8 +224,8 @@ Historial de cambios Novedades Código fuente, problemas e información - Licencias - Licencias de las librerías usadas por Aegis + Licencias + Licencias de las librerías usadas por Aegis Países Bajos Escríbanos un correo electrónico Visite nuestra página web diff --git a/app/src/main/res/values-eu-rES/strings.xml b/app/src/main/res/values-eu-rES/strings.xml index 97d80b61..efd88986 100644 --- a/app/src/main/res/values-eu-rES/strings.xml +++ b/app/src/main/res/values-eu-rES/strings.xml @@ -238,8 +238,8 @@ Aldaketen erregistroa Zer berri Iturburu-kodea, arazoak eta informazioa - Lizentziak - Aegis-ek erabiltzen dituen liburutegien lizentziak + Lizentziak + Aegis-ek erabiltzen dituen liburutegien lizentziak Herbehereak Idatzi eposta bat Ikusi gure webgunea diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 21cfa81a..b6bd0874 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -240,8 +240,8 @@ گزارش تغییرات تغییرات جدید دسترسی به کد برنامه - لایسنس - لایسنس های کتابخانه های مورد استفاده + لایسنس + لایسنس های کتابخانه های مورد استفاده هلند ایمیل بنویسید از وب‌سایت ما دیدن کنید diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index 74961762..eef05532 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -240,8 +240,8 @@ Muutosloki Mitä uutta Lähdekoodi, ongelmat ja tietoa - Käyttöoikeudet - Aegisin käyttämien kirjastojen käyttöoikeudet + Käyttöoikeudet + Aegisin käyttämien kirjastojen käyttöoikeudet Alankomaat Lähetä sähköpostia Käy verkkosivuillamme diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 7b19d332..be0f7eae 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -244,8 +244,8 @@ Historique des modifications Les nouveautés Code source, problèmes et informations - Licences - Licences des bibliothèques utilisées par Aegis + Licences + Licences des bibliothèques utilisées par Aegis Pays-Bas Écrire un email Visiter notre site internet diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 2c90abfd..0129dc5e 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -235,8 +235,8 @@ परिवर्तन लॉग नया क्या है सोर्स कोड, मुद्दे और जानकारी - लाइसेंस - लाइब्रेरीज के लाइसेंस जो Aegis उपयोग करता है + लाइसेंस + लाइब्रेरीज के लाइसेंस जो Aegis उपयोग करता है नीदरलैंड ईमेल लिखें हमारी वेबसाइट पर जाएँ diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 86dce084..87caf8dd 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -192,8 +192,8 @@ Változásnapló Újdonságok Forráskód, problémák és információk - Licencek - Az Aegis által használt programkönyvtárok licencei + Licencek + Az Aegis által használt programkönyvtárok licencei Hollandia Írjon egy e-mailt Keresse fel weboldalunkat diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 5ad210f7..8bbf945a 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -238,8 +238,8 @@ Catatan perubahan Apa yang baru Kode sumber, masalah dan informasi - Lisensi - Lisensi pustaka yang digunakan Aegis + Lisensi + Lisensi pustaka yang digunakan Aegis Belanda Tuliskan email Kunjungi situs web kami diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 35802679..a7c3152d 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -244,8 +244,8 @@ Changelog Novità Codice, problemi e informazioni - Licenze - Licenze delle librerie usate da Aegis + Licenze + Licenze delle librerie usate da Aegis Paesi Bassi Scrivici una email Visita il nostro sito web diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 9fe70bee..91c3c24f 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -239,8 +239,8 @@ 更新履歴 新着情報 ソースコード、問題および情報 - ライセンス - Aegisが使用するライブラリーのライセンス + ライセンス + Aegisが使用するライブラリーのライセンス オランダ メールを書く ウェブサイトを表示 diff --git a/app/src/main/res/values-kn-rIN/strings.xml b/app/src/main/res/values-kn-rIN/strings.xml index 27ed4906..ef573add 100644 --- a/app/src/main/res/values-kn-rIN/strings.xml +++ b/app/src/main/res/values-kn-rIN/strings.xml @@ -134,8 +134,8 @@ ಬದಲಾವಣೆ ಲಾಗ್ ಹೊಸತೇನಿದೆ ಮೂಲ ಕೋಡ್, ಸಮಸ್ಯೆಗಳು ಹಾಗು ಮಾಹಿತಿ - ಪರವಾನಗಿಗಳು - Aegis ಉಪಯೋಗಿಸುವ ಲೈಬ್ರೆರಿಗಳ ಪರವಾನಗಿಗಳು + ಪರವಾನಗಿಗಳು + Aegis ಉಪಯೋಗಿಸುವ ಲೈಬ್ರೆರಿಗಳ ಪರವಾನಗಿಗಳು ನೆದರ್ಲೆಂಡ್ಸ್ ಈಮೇಲನ್ನು ಬರಿ ನಮ್ಮ ಅಂತರ್ಜಾಲದ ಪುಟವನ್ನು ಭೇಟಿ ಮಾಡು diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 770812fe..33b90863 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -244,8 +244,8 @@ Wijzigingen Vernieuwingen Broncode, problemen en informatie - Licenties - Licenties van gebruikte libraries + Licenties + Licenties van gebruikte libraries Nederland Schrijf een email Bekijk de website diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 1cffa135..892df695 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -252,8 +252,8 @@ Lista zmian Co nowego Kod źródłowy, problemy i informacje - Licencje - Licencje bibliotek, z których korzysta aplikacja Aegis + Licencje + Licencje bibliotek, z których korzysta aplikacja Aegis Holandia Napisz wiadomość e-mail Odwiedź naszą stronę diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 513e0877..ee4c89f6 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -244,8 +244,8 @@ Registro de Mudanças O que há de novo Código fonte, problemas e informações - Licenças - Licenças das bibliotecas usadas pelo Aegis + Licenças + Licenças das bibliotecas usadas pelo Aegis Países Baixos Escreva-nos um email Visite nosso site diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index be0d1ce3..ee706ab1 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -244,8 +244,8 @@ Registo de alterações O que há de novo Código fonte, problemas e informações - Licenças - Licenças das bibliotecas utilizadas pelo Aegis + Licenças + Licenças das bibliotecas utilizadas pelo Aegis Holanda Escreva um e-mail Visite o nosso site diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index ccf85f42..974c173e 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -246,8 +246,8 @@ Istoric modificări Ce este nou Cod sursă, probleme și informații - Licențe - Licenţele bibliotecilor Aegis utilizeaza + Licențe + Licenţele bibliotecilor Aegis utilizeaza Olanda Scrieţi un e-mail Vizitați site-ul nostru web diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 0426ec51..119931f2 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -252,8 +252,8 @@ Список изменений Что нового Исходный код, замечания и информация - Лицензии - Лицензии библиотек, используемых в Aegis + Лицензии + Лицензии библиотек, используемых в Aegis Нидерланды Написать эл. письмо Посетить наш веб-сайт diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 8032a9a0..e0988805 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -198,8 +198,8 @@ Değişiklik Günlüğü Yeni ne var? Kaynak kod, sorunlar ve bilgiler - Lisanslar - Aegis\'in kullandığı kütüphanelerin lisansları + Lisanslar + Aegis\'in kullandığı kütüphanelerin lisansları Hollanda Bir e-posta yazın Sitemizi ziyaret edin diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f96b8d76..9bcfb3fe 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -240,8 +240,8 @@ 更新日志 新增功能 源代码,问题和信息 - 许可证 - Aegis 使用的许可证和库 + 许可证 + Aegis 使用的许可证和库 荷兰 发送电子邮件 访问我们的网站 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ee2f2b11..e694789b 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -230,8 +230,8 @@ 更新日誌 有什麼新鮮事 源代碼、議題和訊息 - 許可證 - Aegis 使用的許可證和庫 + 許可證 + Aegis 使用的許可證和庫 荷蘭 發送電子郵件 訪問我們的網站 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8119d063..919a74c9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -275,8 +275,10 @@ What\'s new GitHub Source code, issues and information - Licenses - Licenses of the libraries Aegis uses + License + Aegis Authenticator is licensed under GPLv3 + Third-party licenses + Licenses of the third-party libraries Aegis uses Alexander Bakker Netherlands Michael Schättgen @@ -285,7 +287,7 @@ Support Rate Support us by leaving a review in the Google Play Store - This device doesn\'t support web view, which is necessary to view the changelog. It is missing a system component. + This device doesn\'t support web view, which is necessary to view the changelog and the license. It is missing a system component. Email Automatic time synchronization Aegis relies on the system time to be in sync to generate correct codes. A deviation of only a few seconds could result in incorrect codes. It looks like your device is not configured to automatically synchronize the time. Would you like to do so now?