mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-04-20 13:59:14 +00:00
Add a dialog for Aegis' license
This commit is contained in:
parent
e6e2809c9c
commit
bda1a1d5af
57 changed files with 290 additions and 169 deletions
1
app/src/main/assets/LICENSE
Symbolic link
1
app/src/main/assets/LICENSE
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../../LICENSE
|
14
app/src/main/assets/license.html
Normal file
14
app/src/main/assets/license.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
body {
|
||||
background-color: %2$s;
|
||||
color: %3$s;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>%1$s</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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("<h1>Unable to load</h1><p>" + e.getLocalizedMessage() + "</p>", "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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package com.beemdevelopment.aegis.ui;
|
||||
package com.beemdevelopment.aegis.ui.dialogs;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
|
@ -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());
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<Params, Result> extends AsyncTask<Params, String, Result> {
|
||||
private ProgressDialog _dialog;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -178,7 +178,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/btn_licenses"
|
||||
android:id="@+id/btn_license"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
|
@ -208,13 +208,56 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/licenses"
|
||||
android:text="@string/license"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Subhead" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/licenses_description"
|
||||
android:text="@string/license_description"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/btn_third_party_licenses"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:focusable="true">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:importantForAccessibility="no"
|
||||
app:ico_color="?attr/iconColorPrimary"
|
||||
app:ico_icon="gmi-file-text"
|
||||
app:ico_size="16dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/third_party_licenses"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Subhead" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/third_party_licenses_description"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption" />
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -227,8 +227,8 @@
|
|||
<string name="changelog">سجل التغيير</string>
|
||||
<string name="whats_new">ما الجديد</string>
|
||||
<string name="github_description">الكود المصدري، والمشاكل، والمعلومات</string>
|
||||
<string name="licenses">الرخصات</string>
|
||||
<string name="licenses_description">الرخصات المكتبات التي يستعملها Aegis</string>
|
||||
<string name="third_party_licenses">الرخصات</string>
|
||||
<string name="third_party_licenses_description">الرخصات المكتبات التي يستعملها Aegis</string>
|
||||
<string name="country_netherlands">هولندا</string>
|
||||
<string name="email_us">اكتب بريد الكتروني</string>
|
||||
<string name="visit_website">قم بزيارة موقعنا</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Seznam změn</string>
|
||||
<string name="whats_new">Co je nového?</string>
|
||||
<string name="github_description">Zdrojový kód, problémy a informace</string>
|
||||
<string name="licenses">Licence</string>
|
||||
<string name="licenses_description">Licence knihoven použitých v Aegis</string>
|
||||
<string name="third_party_licenses">Licence</string>
|
||||
<string name="third_party_licenses_description">Licence knihoven použitých v Aegis</string>
|
||||
<string name="country_netherlands">Nizozemsko</string>
|
||||
<string name="email_us">Pošlete nám e-mail</string>
|
||||
<string name="visit_website">Navštivte náš web</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Änderungsprotokoll</string>
|
||||
<string name="whats_new">Was ist neu</string>
|
||||
<string name="github_description">Quellcode, Probleme und Informationen</string>
|
||||
<string name="licenses">Lizenzen</string>
|
||||
<string name="licenses_description">Lizenzen der Bibliotheken, die Aegis verwendet</string>
|
||||
<string name="third_party_licenses">Lizenzen</string>
|
||||
<string name="third_party_licenses_description">Lizenzen der Bibliotheken, die Aegis verwendet</string>
|
||||
<string name="country_netherlands">Niederlande</string>
|
||||
<string name="email_us">Eine E-Mail schreiben</string>
|
||||
<string name="visit_website">Besuche unsere Website</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Αρχείο καταγραφής αλλαγών</string>
|
||||
<string name="whats_new">Τι νέο υπάρχει</string>
|
||||
<string name="github_description">Πηγαίος κώδικας, προβλήματα και πληροφορίες</string>
|
||||
<string name="licenses">Άδειες</string>
|
||||
<string name="licenses_description">Άδειες βιβλιοθηκών που χρησιμοποιεί το Aegis</string>
|
||||
<string name="third_party_licenses">Άδειες</string>
|
||||
<string name="third_party_licenses_description">Άδειες βιβλιοθηκών που χρησιμοποιεί το Aegis</string>
|
||||
<string name="country_netherlands">Ολλανδία</string>
|
||||
<string name="email_us">Γράψτε ένα email</string>
|
||||
<string name="visit_website">Επισκεφτείτε την ιστοσελίδα μας</string>
|
||||
|
|
|
@ -224,8 +224,8 @@
|
|||
<string name="changelog">Historial de cambios</string>
|
||||
<string name="whats_new">Novedades</string>
|
||||
<string name="github_description">Código fuente, problemas e información</string>
|
||||
<string name="licenses">Licencias</string>
|
||||
<string name="licenses_description">Licencias de las librerías usadas por Aegis</string>
|
||||
<string name="third_party_licenses">Licencias</string>
|
||||
<string name="third_party_licenses_description">Licencias de las librerías usadas por Aegis</string>
|
||||
<string name="country_netherlands">Países Bajos</string>
|
||||
<string name="email_us">Escríbanos un correo electrónico</string>
|
||||
<string name="visit_website">Visite nuestra página web</string>
|
||||
|
|
|
@ -238,8 +238,8 @@
|
|||
<string name="changelog">Aldaketen erregistroa</string>
|
||||
<string name="whats_new">Zer berri</string>
|
||||
<string name="github_description">Iturburu-kodea, arazoak eta informazioa</string>
|
||||
<string name="licenses">Lizentziak</string>
|
||||
<string name="licenses_description">Aegis-ek erabiltzen dituen liburutegien lizentziak</string>
|
||||
<string name="third_party_licenses">Lizentziak</string>
|
||||
<string name="third_party_licenses_description">Aegis-ek erabiltzen dituen liburutegien lizentziak</string>
|
||||
<string name="country_netherlands">Herbehereak</string>
|
||||
<string name="email_us">Idatzi eposta bat</string>
|
||||
<string name="visit_website">Ikusi gure webgunea</string>
|
||||
|
|
|
@ -240,8 +240,8 @@
|
|||
<string name="changelog">گزارش تغییرات</string>
|
||||
<string name="whats_new">تغییرات جدید</string>
|
||||
<string name="github_description">دسترسی به کد برنامه</string>
|
||||
<string name="licenses">لایسنس</string>
|
||||
<string name="licenses_description">لایسنس های کتابخانه های مورد استفاده</string>
|
||||
<string name="third_party_licenses">لایسنس</string>
|
||||
<string name="third_party_licenses_description">لایسنس های کتابخانه های مورد استفاده</string>
|
||||
<string name="country_netherlands">هلند</string>
|
||||
<string name="email_us">ایمیل بنویسید</string>
|
||||
<string name="visit_website">از وبسایت ما دیدن کنید</string>
|
||||
|
|
|
@ -240,8 +240,8 @@
|
|||
<string name="changelog">Muutosloki</string>
|
||||
<string name="whats_new">Mitä uutta</string>
|
||||
<string name="github_description">Lähdekoodi, ongelmat ja tietoa</string>
|
||||
<string name="licenses">Käyttöoikeudet</string>
|
||||
<string name="licenses_description">Aegisin käyttämien kirjastojen käyttöoikeudet</string>
|
||||
<string name="third_party_licenses">Käyttöoikeudet</string>
|
||||
<string name="third_party_licenses_description">Aegisin käyttämien kirjastojen käyttöoikeudet</string>
|
||||
<string name="country_netherlands">Alankomaat</string>
|
||||
<string name="email_us">Lähetä sähköpostia</string>
|
||||
<string name="visit_website">Käy verkkosivuillamme</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Historique des modifications</string>
|
||||
<string name="whats_new">Les nouveautés</string>
|
||||
<string name="github_description">Code source, problèmes et informations</string>
|
||||
<string name="licenses">Licences</string>
|
||||
<string name="licenses_description">Licences des bibliothèques utilisées par Aegis</string>
|
||||
<string name="third_party_licenses">Licences</string>
|
||||
<string name="third_party_licenses_description">Licences des bibliothèques utilisées par Aegis</string>
|
||||
<string name="country_netherlands">Pays-Bas</string>
|
||||
<string name="email_us">Écrire un email</string>
|
||||
<string name="visit_website">Visiter notre site internet</string>
|
||||
|
|
|
@ -235,8 +235,8 @@
|
|||
<string name="changelog">परिवर्तन लॉग</string>
|
||||
<string name="whats_new">नया क्या है</string>
|
||||
<string name="github_description">सोर्स कोड, मुद्दे और जानकारी</string>
|
||||
<string name="licenses">लाइसेंस</string>
|
||||
<string name="licenses_description">लाइब्रेरीज के लाइसेंस जो Aegis उपयोग करता है</string>
|
||||
<string name="third_party_licenses">लाइसेंस</string>
|
||||
<string name="third_party_licenses_description">लाइब्रेरीज के लाइसेंस जो Aegis उपयोग करता है</string>
|
||||
<string name="country_netherlands">नीदरलैंड</string>
|
||||
<string name="email_us">ईमेल लिखें</string>
|
||||
<string name="visit_website">हमारी वेबसाइट पर जाएँ</string>
|
||||
|
|
|
@ -192,8 +192,8 @@
|
|||
<string name="changelog">Változásnapló</string>
|
||||
<string name="whats_new">Újdonságok</string>
|
||||
<string name="github_description">Forráskód, problémák és információk</string>
|
||||
<string name="licenses">Licencek</string>
|
||||
<string name="licenses_description">Az Aegis által használt programkönyvtárok licencei</string>
|
||||
<string name="third_party_licenses">Licencek</string>
|
||||
<string name="third_party_licenses_description">Az Aegis által használt programkönyvtárok licencei</string>
|
||||
<string name="country_netherlands">Hollandia</string>
|
||||
<string name="email_us">Írjon egy e-mailt</string>
|
||||
<string name="visit_website">Keresse fel weboldalunkat</string>
|
||||
|
|
|
@ -238,8 +238,8 @@
|
|||
<string name="changelog">Catatan perubahan</string>
|
||||
<string name="whats_new">Apa yang baru</string>
|
||||
<string name="github_description">Kode sumber, masalah dan informasi</string>
|
||||
<string name="licenses">Lisensi</string>
|
||||
<string name="licenses_description">Lisensi pustaka yang digunakan Aegis</string>
|
||||
<string name="third_party_licenses">Lisensi</string>
|
||||
<string name="third_party_licenses_description">Lisensi pustaka yang digunakan Aegis</string>
|
||||
<string name="country_netherlands">Belanda</string>
|
||||
<string name="email_us">Tuliskan email</string>
|
||||
<string name="visit_website">Kunjungi situs web kami</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Changelog</string>
|
||||
<string name="whats_new">Novità</string>
|
||||
<string name="github_description">Codice, problemi e informazioni</string>
|
||||
<string name="licenses">Licenze</string>
|
||||
<string name="licenses_description">Licenze delle librerie usate da Aegis</string>
|
||||
<string name="third_party_licenses">Licenze</string>
|
||||
<string name="third_party_licenses_description">Licenze delle librerie usate da Aegis</string>
|
||||
<string name="country_netherlands">Paesi Bassi</string>
|
||||
<string name="email_us">Scrivici una email</string>
|
||||
<string name="visit_website">Visita il nostro sito web</string>
|
||||
|
|
|
@ -239,8 +239,8 @@
|
|||
<string name="changelog">更新履歴</string>
|
||||
<string name="whats_new">新着情報</string>
|
||||
<string name="github_description">ソースコード、問題および情報</string>
|
||||
<string name="licenses">ライセンス</string>
|
||||
<string name="licenses_description">Aegisが使用するライブラリーのライセンス</string>
|
||||
<string name="third_party_licenses">ライセンス</string>
|
||||
<string name="third_party_licenses_description">Aegisが使用するライブラリーのライセンス</string>
|
||||
<string name="country_netherlands">オランダ</string>
|
||||
<string name="email_us">メールを書く</string>
|
||||
<string name="visit_website">ウェブサイトを表示</string>
|
||||
|
|
|
@ -134,8 +134,8 @@
|
|||
<string name="changelog">ಬದಲಾವಣೆ ಲಾಗ್</string>
|
||||
<string name="whats_new">ಹೊಸತೇನಿದೆ</string>
|
||||
<string name="github_description">ಮೂಲ ಕೋಡ್, ಸಮಸ್ಯೆಗಳು ಹಾಗು ಮಾಹಿತಿ</string>
|
||||
<string name="licenses">ಪರವಾನಗಿಗಳು</string>
|
||||
<string name="licenses_description">Aegis ಉಪಯೋಗಿಸುವ ಲೈಬ್ರೆರಿಗಳ ಪರವಾನಗಿಗಳು</string>
|
||||
<string name="third_party_licenses">ಪರವಾನಗಿಗಳು</string>
|
||||
<string name="third_party_licenses_description">Aegis ಉಪಯೋಗಿಸುವ ಲೈಬ್ರೆರಿಗಳ ಪರವಾನಗಿಗಳು</string>
|
||||
<string name="country_netherlands">ನೆದರ್ಲೆಂಡ್ಸ್</string>
|
||||
<string name="email_us">ಈಮೇಲನ್ನು ಬರಿ</string>
|
||||
<string name="visit_website">ನಮ್ಮ ಅಂತರ್ಜಾಲದ ಪುಟವನ್ನು ಭೇಟಿ ಮಾಡು</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Wijzigingen</string>
|
||||
<string name="whats_new">Vernieuwingen</string>
|
||||
<string name="github_description">Broncode, problemen en informatie</string>
|
||||
<string name="licenses">Licenties</string>
|
||||
<string name="licenses_description">Licenties van gebruikte libraries</string>
|
||||
<string name="third_party_licenses">Licenties</string>
|
||||
<string name="third_party_licenses_description">Licenties van gebruikte libraries</string>
|
||||
<string name="country_netherlands">Nederland</string>
|
||||
<string name="email_us">Schrijf een email</string>
|
||||
<string name="visit_website">Bekijk de website</string>
|
||||
|
|
|
@ -252,8 +252,8 @@
|
|||
<string name="changelog">Lista zmian</string>
|
||||
<string name="whats_new">Co nowego</string>
|
||||
<string name="github_description">Kod źródłowy, problemy i informacje</string>
|
||||
<string name="licenses">Licencje</string>
|
||||
<string name="licenses_description">Licencje bibliotek, z których korzysta aplikacja Aegis</string>
|
||||
<string name="third_party_licenses">Licencje</string>
|
||||
<string name="third_party_licenses_description">Licencje bibliotek, z których korzysta aplikacja Aegis</string>
|
||||
<string name="country_netherlands">Holandia</string>
|
||||
<string name="email_us">Napisz wiadomość e-mail</string>
|
||||
<string name="visit_website">Odwiedź naszą stronę</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Registro de Mudanças</string>
|
||||
<string name="whats_new">O que há de novo</string>
|
||||
<string name="github_description">Código fonte, problemas e informações</string>
|
||||
<string name="licenses">Licenças</string>
|
||||
<string name="licenses_description">Licenças das bibliotecas usadas pelo Aegis</string>
|
||||
<string name="third_party_licenses">Licenças</string>
|
||||
<string name="third_party_licenses_description">Licenças das bibliotecas usadas pelo Aegis</string>
|
||||
<string name="country_netherlands">Países Baixos</string>
|
||||
<string name="email_us">Escreva-nos um email</string>
|
||||
<string name="visit_website">Visite nosso site</string>
|
||||
|
|
|
@ -244,8 +244,8 @@
|
|||
<string name="changelog">Registo de alterações</string>
|
||||
<string name="whats_new">O que há de novo</string>
|
||||
<string name="github_description">Código fonte, problemas e informações</string>
|
||||
<string name="licenses">Licenças</string>
|
||||
<string name="licenses_description">Licenças das bibliotecas utilizadas pelo Aegis</string>
|
||||
<string name="third_party_licenses">Licenças</string>
|
||||
<string name="third_party_licenses_description">Licenças das bibliotecas utilizadas pelo Aegis</string>
|
||||
<string name="country_netherlands">Holanda</string>
|
||||
<string name="email_us">Escreva um e-mail</string>
|
||||
<string name="visit_website">Visite o nosso site</string>
|
||||
|
|
|
@ -246,8 +246,8 @@
|
|||
<string name="changelog">Istoric modificări</string>
|
||||
<string name="whats_new">Ce este nou</string>
|
||||
<string name="github_description">Cod sursă, probleme și informații</string>
|
||||
<string name="licenses">Licențe</string>
|
||||
<string name="licenses_description">Licenţele bibliotecilor Aegis utilizeaza</string>
|
||||
<string name="third_party_licenses">Licențe</string>
|
||||
<string name="third_party_licenses_description">Licenţele bibliotecilor Aegis utilizeaza</string>
|
||||
<string name="country_netherlands">Olanda</string>
|
||||
<string name="email_us">Scrieţi un e-mail</string>
|
||||
<string name="visit_website">Vizitați site-ul nostru web</string>
|
||||
|
|
|
@ -252,8 +252,8 @@
|
|||
<string name="changelog">Список изменений</string>
|
||||
<string name="whats_new">Что нового</string>
|
||||
<string name="github_description">Исходный код, замечания и информация</string>
|
||||
<string name="licenses">Лицензии</string>
|
||||
<string name="licenses_description">Лицензии библиотек, используемых в Aegis</string>
|
||||
<string name="third_party_licenses">Лицензии</string>
|
||||
<string name="third_party_licenses_description">Лицензии библиотек, используемых в Aegis</string>
|
||||
<string name="country_netherlands">Нидерланды</string>
|
||||
<string name="email_us">Написать эл. письмо</string>
|
||||
<string name="visit_website">Посетить наш веб-сайт</string>
|
||||
|
|
|
@ -198,8 +198,8 @@
|
|||
<string name="changelog">Değişiklik Günlüğü</string>
|
||||
<string name="whats_new">Yeni ne var?</string>
|
||||
<string name="github_description">Kaynak kod, sorunlar ve bilgiler</string>
|
||||
<string name="licenses">Lisanslar</string>
|
||||
<string name="licenses_description">Aegis\'in kullandığı kütüphanelerin lisansları</string>
|
||||
<string name="third_party_licenses">Lisanslar</string>
|
||||
<string name="third_party_licenses_description">Aegis\'in kullandığı kütüphanelerin lisansları</string>
|
||||
<string name="country_netherlands">Hollanda</string>
|
||||
<string name="email_us">Bir e-posta yazın</string>
|
||||
<string name="visit_website">Sitemizi ziyaret edin</string>
|
||||
|
|
|
@ -240,8 +240,8 @@
|
|||
<string name="changelog">更新日志</string>
|
||||
<string name="whats_new">新增功能</string>
|
||||
<string name="github_description">源代码,问题和信息</string>
|
||||
<string name="licenses">许可证</string>
|
||||
<string name="licenses_description">Aegis 使用的许可证和库</string>
|
||||
<string name="third_party_licenses">许可证</string>
|
||||
<string name="third_party_licenses_description">Aegis 使用的许可证和库</string>
|
||||
<string name="country_netherlands">荷兰</string>
|
||||
<string name="email_us">发送电子邮件</string>
|
||||
<string name="visit_website">访问我们的网站</string>
|
||||
|
|
|
@ -230,8 +230,8 @@
|
|||
<string name="changelog">更新日誌</string>
|
||||
<string name="whats_new">有什麼新鮮事</string>
|
||||
<string name="github_description">源代碼、議題和訊息</string>
|
||||
<string name="licenses">許可證</string>
|
||||
<string name="licenses_description">Aegis 使用的許可證和庫</string>
|
||||
<string name="third_party_licenses">許可證</string>
|
||||
<string name="third_party_licenses_description">Aegis 使用的許可證和庫</string>
|
||||
<string name="country_netherlands">荷蘭</string>
|
||||
<string name="email_us">發送電子郵件</string>
|
||||
<string name="visit_website">訪問我們的網站</string>
|
||||
|
|
|
@ -275,8 +275,10 @@
|
|||
<string name="whats_new">What\'s new</string>
|
||||
<string name="github" translatable="false">GitHub</string>
|
||||
<string name="github_description">Source code, issues and information</string>
|
||||
<string name="licenses">Licenses</string>
|
||||
<string name="licenses_description">Licenses of the libraries Aegis uses</string>
|
||||
<string name="license">License</string>
|
||||
<string name="license_description">Aegis Authenticator is licensed under GPLv3</string>
|
||||
<string name="third_party_licenses">Third-party licenses</string>
|
||||
<string name="third_party_licenses_description">Licenses of the third-party libraries Aegis uses</string>
|
||||
<string name="author_alex" translatable="false">Alexander Bakker</string>
|
||||
<string name="country_netherlands">Netherlands</string>
|
||||
<string name="author_michael" translatable="false">Michael Schättgen</string>
|
||||
|
@ -285,7 +287,7 @@
|
|||
<string name="about_support">Support</string>
|
||||
<string name="support_rate">Rate</string>
|
||||
<string name="support_rate_description">Support us by leaving a review in the Google Play Store</string>
|
||||
<string name="webview_error">This device doesn\'t support web view, which is necessary to view the changelog. It is missing a system component.</string>
|
||||
<string name="webview_error">This device doesn\'t support web view, which is necessary to view the changelog and the license. It is missing a system component.</string>
|
||||
<string name="email">Email</string>
|
||||
<string name="time_sync_warning_title">Automatic time synchronization</string>
|
||||
<string name="time_sync_warning_message">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?</string>
|
||||
|
|
Loading…
Add table
Reference in a new issue