mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-06-26 02:51:02 +00:00
parent
5ce21a94ea
commit
0f3e5c537c
36 changed files with 189 additions and 54 deletions
|
@ -0,0 +1,56 @@
|
|||
package com.beemdevelopment.aegis;
|
||||
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public enum PassReminderFreq {
|
||||
NEVER,
|
||||
WEEKLY,
|
||||
BIWEEKLY,
|
||||
MONTHLY,
|
||||
QUARTERLY;
|
||||
|
||||
public long getDurationMillis() {
|
||||
long weeks;
|
||||
switch (this) {
|
||||
case WEEKLY:
|
||||
weeks = 1;
|
||||
break;
|
||||
case BIWEEKLY:
|
||||
weeks = 2;
|
||||
break;
|
||||
case MONTHLY:
|
||||
weeks = 4;
|
||||
break;
|
||||
case QUARTERLY:
|
||||
weeks = 13;
|
||||
break;
|
||||
default:
|
||||
weeks = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return TimeUnit.MILLISECONDS.convert(weeks * 7L, TimeUnit.DAYS);
|
||||
}
|
||||
|
||||
@StringRes
|
||||
public int getStringRes() {
|
||||
switch (this) {
|
||||
case WEEKLY:
|
||||
return R.string.password_reminder_freq_weekly;
|
||||
case BIWEEKLY:
|
||||
return R.string.password_reminder_freq_biweekly;
|
||||
case MONTHLY:
|
||||
return R.string.password_reminder_freq_monthly;
|
||||
case QUARTERLY:
|
||||
return R.string.password_reminder_freq_quarterly;
|
||||
default:
|
||||
return R.string.password_reminder_freq_never;
|
||||
}
|
||||
}
|
||||
|
||||
public static PassReminderFreq fromInteger(int i) {
|
||||
return PassReminderFreq.values()[i];
|
||||
}
|
||||
}
|
|
@ -19,7 +19,6 @@ import java.util.List;
|
|||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class Preferences {
|
||||
public static final int AUTO_LOCK_OFF = 1 << 0;
|
||||
|
@ -70,22 +69,44 @@ public class Preferences {
|
|||
return _prefs.getBoolean("pref_secure_screen", !BuildConfig.DEBUG);
|
||||
}
|
||||
|
||||
public boolean isPasswordReminderEnabled() {
|
||||
return _prefs.getBoolean("pref_password_reminder", true);
|
||||
public PassReminderFreq getPasswordReminderFrequency() {
|
||||
final String key = "pref_password_reminder_freq";
|
||||
if (_prefs.contains(key) || _prefs.getBoolean("pref_password_reminder", true)) {
|
||||
int i = _prefs.getInt(key, PassReminderFreq.BIWEEKLY.ordinal());
|
||||
return PassReminderFreq.fromInteger(i);
|
||||
}
|
||||
|
||||
return PassReminderFreq.NEVER;
|
||||
}
|
||||
|
||||
public void setPasswordReminderFrequency(PassReminderFreq freq) {
|
||||
_prefs.edit().putInt("pref_password_reminder_freq", freq.ordinal()).apply();
|
||||
}
|
||||
|
||||
public boolean isPasswordReminderNeeded() {
|
||||
long diff = new Date().getTime() - getPasswordReminderTimestamp().getTime();
|
||||
long days = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
|
||||
return isPasswordReminderEnabled() && days >= 30;
|
||||
return isPasswordReminderNeeded(new Date().getTime());
|
||||
}
|
||||
|
||||
boolean isPasswordReminderNeeded(long currTime) {
|
||||
PassReminderFreq freq = getPasswordReminderFrequency();
|
||||
if (freq == PassReminderFreq.NEVER) {
|
||||
return false;
|
||||
}
|
||||
|
||||
long duration = currTime - getPasswordReminderTimestamp().getTime();
|
||||
return duration >= freq.getDurationMillis();
|
||||
}
|
||||
|
||||
public Date getPasswordReminderTimestamp() {
|
||||
return new Date(_prefs.getLong("pref_password_reminder_counter", 0));
|
||||
}
|
||||
|
||||
void setPasswordReminderTimestamp(long timestamp) {
|
||||
_prefs.edit().putLong("pref_password_reminder_counter", timestamp).apply();
|
||||
}
|
||||
|
||||
public void resetPasswordReminderTimestamp() {
|
||||
_prefs.edit().putLong("pref_password_reminder_counter", new Date().getTime()).apply();
|
||||
setPasswordReminderTimestamp(new Date().getTime());
|
||||
}
|
||||
|
||||
public boolean isAccountNameVisible() {
|
||||
|
@ -325,4 +346,5 @@ public class Preferences {
|
|||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
package com.beemdevelopment.aegis.crypto.pins;
|
||||
|
||||
import info.guardianproject.trustedintents.ApkSignaturePin;
|
||||
|
||||
public class DebugSignaturePin extends ApkSignaturePin {
|
||||
public DebugSignaturePin(byte[] cert) {
|
||||
certificates = new byte[][] { cert };
|
||||
fingerprints = new String[] { getSHA256Fingerprint() };
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package com.beemdevelopment.aegis.ui.fragments;
|
||||
|
||||
import static android.text.TextUtils.isDigitsOnly;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
@ -14,6 +16,7 @@ import androidx.preference.Preference;
|
|||
import androidx.preference.SwitchPreferenceCompat;
|
||||
|
||||
import com.beemdevelopment.aegis.BuildConfig;
|
||||
import com.beemdevelopment.aegis.PassReminderFreq;
|
||||
import com.beemdevelopment.aegis.Preferences;
|
||||
import com.beemdevelopment.aegis.R;
|
||||
import com.beemdevelopment.aegis.crypto.KeyStoreHandle;
|
||||
|
@ -21,8 +24,8 @@ 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.Dialogs;
|
||||
import com.beemdevelopment.aegis.ui.SlotManagerActivity;
|
||||
import com.beemdevelopment.aegis.ui.dialogs.Dialogs;
|
||||
import com.beemdevelopment.aegis.ui.preferences.SwitchPreference;
|
||||
import com.beemdevelopment.aegis.ui.tasks.PasswordSlotDecryptTask;
|
||||
import com.beemdevelopment.aegis.vault.VaultFileCredentials;
|
||||
|
@ -33,12 +36,11 @@ import com.beemdevelopment.aegis.vault.slots.Slot;
|
|||
import com.beemdevelopment.aegis.vault.slots.SlotException;
|
||||
import com.beemdevelopment.aegis.vault.slots.SlotList;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
|
||||
import static android.text.TextUtils.isDigitsOnly;
|
||||
|
||||
public class SecurityPreferencesFragment extends PreferencesFragment {
|
||||
private SwitchPreference _encryptionPreference;
|
||||
private SwitchPreference _biometricsPreference;
|
||||
|
@ -231,7 +233,28 @@ public class SecurityPreferencesFragment extends PreferencesFragment {
|
|||
return false;
|
||||
});
|
||||
|
||||
_passwordReminderPreference = findPreference("pref_password_reminder");
|
||||
_passwordReminderPreference = findPreference("pref_password_reminder_freq");
|
||||
_passwordReminderPreference.setSummary(getPasswordReminderSummary());
|
||||
_passwordReminderPreference.setOnPreferenceClickListener((preference) -> {
|
||||
final PassReminderFreq currFreq = getPreferences().getPasswordReminderFrequency();
|
||||
final PassReminderFreq[] items = PassReminderFreq.values();
|
||||
final String[] textItems = Arrays.stream(items)
|
||||
.map(f -> getString(f.getStringRes()))
|
||||
.toArray(String[]::new);
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||
.setTitle(R.string.pref_password_reminder_title)
|
||||
.setSingleChoiceItems(textItems, currFreq.ordinal(), (dialog, which) -> {
|
||||
int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
|
||||
PassReminderFreq freq = PassReminderFreq.fromInteger(i);
|
||||
getPreferences().setPasswordReminderFrequency(freq);
|
||||
_passwordReminderPreference.setSummary(getPasswordReminderSummary());
|
||||
dialog.dismiss();
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null);
|
||||
Dialogs.showSecureDialog(builder.create());
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -281,6 +304,16 @@ public class SecurityPreferencesFragment extends PreferencesFragment {
|
|||
}
|
||||
}
|
||||
|
||||
private String getPasswordReminderSummary() {
|
||||
PassReminderFreq freq = getPreferences().getPasswordReminderFrequency();
|
||||
if (freq == PassReminderFreq.NEVER) {
|
||||
return getString(R.string.pref_password_reminder_summary_disabled);
|
||||
}
|
||||
|
||||
String freqString = getString(freq.getStringRes()).toLowerCase();
|
||||
return getString(R.string.pref_password_reminder_summary, freqString);
|
||||
}
|
||||
|
||||
private String getAutoLockSummary() {
|
||||
final int[] settings = Preferences.AUTO_LOCK_SETTINGS;
|
||||
final String[] descriptions = getResources().getStringArray(R.array.pref_auto_lock_types);
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
<string name="pref_export_title">تصدير</string>
|
||||
<string name="pref_export_summary">قم بتصدير المخزن</string>
|
||||
<string name="pref_password_reminder_title">تذكير كلمة المرور</string>
|
||||
<string name="pref_password_reminder_summary">اظهار تذكير لإدخال كلمة المرور من حين لآخر حتى لا تنساها</string>
|
||||
<string name="pref_secure_screen_title">أمان الشاشة</string>
|
||||
<string name="pref_secure_screen_summary">حظر صور الشاشة والمحاولات الأخرى لالتقاط شاشة التطبيق</string>
|
||||
<string name="pref_tap_to_reveal_title">انقر للكشف</string>
|
||||
|
|
|
@ -56,7 +56,6 @@
|
|||
<string name="pref_export_title">Експортиране</string>
|
||||
<string name="pref_export_summary">Експортирайте трезора</string>
|
||||
<string name="pref_password_reminder_title">Напомняне за парола</string>
|
||||
<string name="pref_password_reminder_summary">Показвайте напомняне за въвеждане на паролата от време на време, за да не я забравите.</string>
|
||||
<string name="pref_secure_screen_title">Сигурност на екрана</string>
|
||||
<string name="pref_secure_screen_summary">Блокирайте екранни снимки и други опити за заснемане на екрана в приложението</string>
|
||||
<string name="pref_tap_to_reveal_title">Докоснете, за да разкриете</string>
|
||||
|
|
|
@ -64,7 +64,6 @@
|
|||
<string name="pref_export_title">Exportovat</string>
|
||||
<string name="pref_export_summary">Exportovat trezor</string>
|
||||
<string name="pref_password_reminder_title">Připomenutí hesla</string>
|
||||
<string name="pref_password_reminder_summary">Jednou za čas zobrazit výzvu pro zadání hesla, abyste ho nezapomněli.</string>
|
||||
<string name="pref_secure_screen_title">Zabezpečení obrazovky</string>
|
||||
<string name="pref_secure_screen_summary">Blokovat snímky obrazovky a další pokusy o zachycení obrazovky v rámci aplikace</string>
|
||||
<string name="pref_tap_to_reveal_title">Zobrazit klepnutím</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Export</string>
|
||||
<string name="pref_export_summary">Eksportér Boksen</string>
|
||||
<string name="pref_password_reminder_title">Adgangskodepåmindelse</string>
|
||||
<string name="pref_password_reminder_summary">Vis en gang imellem en påmindelse om at angive adgangskoden, så den ikke glemmes.</string>
|
||||
<string name="pref_secure_screen_title">Skærmsikkerhed</string>
|
||||
<string name="pref_secure_screen_summary">Blokér skærmfotos og andre forsøg på at optage skærmen inde i appen</string>
|
||||
<string name="pref_tap_to_reveal_title">Tryk for at vise</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Exportieren</string>
|
||||
<string name="pref_export_summary">Exportiere die Datenbank</string>
|
||||
<string name="pref_password_reminder_title">Passworterinnerung</string>
|
||||
<string name="pref_password_reminder_summary">Von Zeit zu Zeit nach dem Passwort fragen, damit du es nicht vergisst.</string>
|
||||
<string name="pref_secure_screen_title">Bildschirmsicherheit</string>
|
||||
<string name="pref_secure_screen_summary">Blockiere Bildschirmfotos und andere Versuche, den Bildschirm innerhalb der App aufzunehmen</string>
|
||||
<string name="pref_tap_to_reveal_title">Zum Aufdecken tippen</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Εξαγωγή</string>
|
||||
<string name="pref_export_summary">Εξαγωγή κρύπτης</string>
|
||||
<string name="pref_password_reminder_title">Υπενθύμιση κωδικού</string>
|
||||
<string name="pref_password_reminder_summary">Προβολή υπενθύμισης για εισαγωγή κωδικού περιστασιακά, έτσι ώστε να μην τον ξεχάσετε.</string>
|
||||
<string name="pref_secure_screen_title">Ασφάλεια οθόνης</string>
|
||||
<string name="pref_secure_screen_summary">Αποκλεισμός στιγμιότυπων οθόνης και άλλων προσπαθειών για καταγραφή της οθόνης μέσα στην εφαρμογή</string>
|
||||
<string name="pref_tap_to_reveal_title">Πατήστε για εμφάνιση</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Exportar</string>
|
||||
<string name="pref_export_summary">Exportar la bóveda</string>
|
||||
<string name="pref_password_reminder_title">Recordatorio de contraseña</string>
|
||||
<string name="pref_password_reminder_summary">Muestra un recordatorio para introducir la contraseña de vez en cuando, para que no la olvide</string>
|
||||
<string name="pref_secure_screen_title">Seguridad en pantalla</string>
|
||||
<string name="pref_secure_screen_summary">Bloquea las capturas de pantalla y otros intentos de captura dentro de la aplicación</string>
|
||||
<string name="pref_tap_to_reveal_title">Pulsar para mostrar</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Esportatu</string>
|
||||
<string name="pref_export_summary">Esportatu biltegia</string>
|
||||
<string name="pref_password_reminder_title">Pasahitza gogoan izan</string>
|
||||
<string name="pref_password_reminder_summary">Pasahitza tarteka sartzeko gogorarazlea erakusten du, ahaztu ez dezazun.</string>
|
||||
<string name="pref_secure_screen_title">Pantaila segurtasuna</string>
|
||||
<string name="pref_secure_screen_summary">Blokeatu pantaila-argazkiak eta beste saiakera batzuk aplikazioaren barruan pantaila kapturatzeko</string>
|
||||
<string name="pref_tap_to_reveal_title">Sakatu erakusteko</string>
|
||||
|
|
|
@ -55,7 +55,6 @@
|
|||
<string name="pref_export_title">صادر کردن</string>
|
||||
<string name="pref_export_summary">صادر کردن مخزن</string>
|
||||
<string name="pref_password_reminder_title">یادآوری کلمه عبور</string>
|
||||
<string name="pref_password_reminder_summary">نمایش یادآور برای وارد کردن کلمه عبور. در این صورت کلمه عبور خود را فراموش نمیکنید.</string>
|
||||
<string name="pref_secure_screen_title">امنیت صفحه</string>
|
||||
<string name="pref_secure_screen_summary">عدم امکان گرفتن اسکرین شات در برنامه</string>
|
||||
<string name="pref_tap_to_reveal_title">نمایش هنگام لمس</string>
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
<string name="pref_export_title">Vie</string>
|
||||
<string name="pref_export_summary">Vie holvi</string>
|
||||
<string name="pref_password_reminder_title">Salasanamuistutus</string>
|
||||
<string name="pref_password_reminder_summary">Muistuttaa sinua silloin tällöin syöttämään salasanasi, jottet unohda sitä.</string>
|
||||
<string name="pref_secure_screen_title">Näyttöturvallisuus</string>
|
||||
<string name="pref_secure_screen_summary">Estä kuvakaappaukset ja muut yritykset tallentaa näyttöä sovelluksen ollessa käytössä</string>
|
||||
<string name="pref_tap_to_reveal_title">Paljasta napauttamalla</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Exporter</string>
|
||||
<string name="pref_export_summary">Exporter le coffre-fort</string>
|
||||
<string name="pref_password_reminder_title">Rappel du mot de passe</string>
|
||||
<string name="pref_password_reminder_summary">Afficher un rappel pour entrer le mot de passe de temps en temps, afin que vous ne l\'oubliiez pas.</string>
|
||||
<string name="pref_secure_screen_title">Sécurité de l\'écran</string>
|
||||
<string name="pref_secure_screen_summary">Bloquer les captures d\'écran et autres tentatives de capture de l\'écran dans l\'application</string>
|
||||
<string name="pref_tap_to_reveal_title">Appuyer pour révéler</string>
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
<string name="pref_export_title">निर्यात</string>
|
||||
<string name="pref_export_summary">वॉल्ट निर्यात करें</string>
|
||||
<string name="pref_password_reminder_title">पासवर्ड अनुस्मारक</string>
|
||||
<string name="pref_password_reminder_summary">पासवर्ड को दर्ज करने के लिए कभी-कभी एक अनुस्मारक दिखाएं, ताकि आप इसे न भूलें।</string>
|
||||
<string name="pref_secure_screen_title">स्क्रीन सुरक्षा</string>
|
||||
<string name="pref_secure_screen_summary">एप्लीकेशन के भीतर स्क्रीनशॉट और स्क्रीन पर कब्जा करने के अन्य प्रयास ब्लॉक करें।</string>
|
||||
<string name="pref_tap_to_reveal_title">देखने के लिए टैप करें</string>
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
<string name="pref_export_title">Exportálás</string>
|
||||
<string name="pref_export_summary">A széf exportálása</string>
|
||||
<string name="pref_password_reminder_title">Jelszóemlékeztető</string>
|
||||
<string name="pref_password_reminder_summary">Időnként a jelszó beírásárá lesz kérve, hogy ne felejtse el azt.</string>
|
||||
<string name="pref_secure_screen_title">Képernyőbiztonság</string>
|
||||
<string name="pref_secure_screen_summary">A képernyőképek és a képernyő rögzítésére irányuló egyéb kísérletek blokkolása</string>
|
||||
<string name="pref_tap_to_reveal_title">Koppintás a megjelenítéshez</string>
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
<string name="pref_export_title">Ekspor</string>
|
||||
<string name="pref_export_summary">Ekspor ke brankas</string>
|
||||
<string name="pref_password_reminder_title">Pengingat kata sandi</string>
|
||||
<string name="pref_password_reminder_summary">Tampilkan pengingat sesekali untuk memasukkan kata sandi, agar Anda tidak lupa.</string>
|
||||
<string name="pref_secure_screen_title">Keamanan layar</string>
|
||||
<string name="pref_secure_screen_summary">Blokir tangkapan layar dan upaya lain untuk menangkap layar di dalam aplikasi</string>
|
||||
<string name="pref_tap_to_reveal_title">Sentuh untuk melihat</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Esporta</string>
|
||||
<string name="pref_export_summary">Esporta la cassaforte</string>
|
||||
<string name="pref_password_reminder_title">Promemoria password</string>
|
||||
<string name="pref_password_reminder_summary">Mostra un promemoria per inserire la password una volta ogni tanto, in modo da non dimenticarla.</string>
|
||||
<string name="pref_secure_screen_title">Sicurezza schermo</string>
|
||||
<string name="pref_secure_screen_summary">Blocca i tentativi di catturare lo schermo all\'interno dell\'app</string>
|
||||
<string name="pref_tap_to_reveal_title">Tocca per mostrare</string>
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
<string name="pref_export_title">エクスポート</string>
|
||||
<string name="pref_export_summary">保管庫をエクスポート</string>
|
||||
<string name="pref_password_reminder_title">パスワードを忘れた場合</string>
|
||||
<string name="pref_password_reminder_summary">パスワードを忘れないように、時々パスワードを入力するリマインダーを表示します。</string>
|
||||
<string name="pref_secure_screen_title">画面のセキュリティ</string>
|
||||
<string name="pref_secure_screen_summary">アプリ内でスクリーンショットやその他のキャプチャをブロックする</string>
|
||||
<string name="pref_tap_to_reveal_title">タップして表示</string>
|
||||
|
|
|
@ -63,7 +63,6 @@
|
|||
<string name="pref_export_title">Izdot</string>
|
||||
<string name="pref_export_summary">Izdot glabātavas saturu</string>
|
||||
<string name="pref_password_reminder_title">Paroles atgādinājums</string>
|
||||
<string name="pref_password_reminder_summary">Rādīt atgādinājumu, lai laiku pa laikam ievadītu paroli, lai to neaizmirstu.</string>
|
||||
<string name="pref_secure_screen_title">Ekrāna drošība</string>
|
||||
<string name="pref_secure_screen_summary">Lietotnē neļaut ekrānuzņēmumus un citus ekrāna tveršanas mēģinājumus</string>
|
||||
<string name="pref_tap_to_reveal_title">Piesist, lai atklātu</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Exporteren</string>
|
||||
<string name="pref_export_summary">Exporteer de kluis</string>
|
||||
<string name="pref_password_reminder_title">Wachtwoordherinnering</string>
|
||||
<string name="pref_password_reminder_summary">Toon een herinnering om het wachtwoord af en toe in te voeren, zodat je deze niet vergeet.</string>
|
||||
<string name="pref_secure_screen_title">Schermbeveiliging</string>
|
||||
<string name="pref_secure_screen_summary">Blokkeer screenshots en andere pogingen tot schermopnamen binnen deze app</string>
|
||||
<string name="pref_tap_to_reveal_title">Aantikken om te laten zien</string>
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
<string name="pref_export_title">Eksportuj</string>
|
||||
<string name="pref_export_summary">Eksportuj sejf</string>
|
||||
<string name="pref_password_reminder_title">Przypomnienie hasła</string>
|
||||
<string name="pref_password_reminder_summary">Co pewien czas pokazuj przypomnienie, aby wpisać hasło. Dzięki temu go nie zapomnisz.</string>
|
||||
<string name="pref_secure_screen_title">Zabezpieczenie ekranu</string>
|
||||
<string name="pref_secure_screen_summary">Zablokuj zrzuty ekranu i inne próby przechwycenia ekranu w aplikacji</string>
|
||||
<string name="pref_tap_to_reveal_title">Kliknij, aby odkryć</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Exportar</string>
|
||||
<string name="pref_export_summary">Exporta o cofre</string>
|
||||
<string name="pref_password_reminder_title">Lembrete de senha</string>
|
||||
<string name="pref_password_reminder_summary">Exibe um lembrete para inserir a senha de vez em quando, para que você não a esqueça.</string>
|
||||
<string name="pref_secure_screen_title">Segurança de tela</string>
|
||||
<string name="pref_secure_screen_summary">Bloqueia screenshots e outras tentativas de capturar a tela dentro do app</string>
|
||||
<string name="pref_tap_to_reveal_title">Tocar para exibir</string>
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
<string name="pref_export_title">Exportar</string>
|
||||
<string name="pref_export_summary">Exportar o cofre</string>
|
||||
<string name="pref_password_reminder_title">Lembrete de senha</string>
|
||||
<string name="pref_password_reminder_summary">Mostrar um lembrete para inserir a senha de vez em quando, para que você não se esqueça.</string>
|
||||
<string name="pref_secure_screen_title">Segurança da tela</string>
|
||||
<string name="pref_secure_screen_summary">Bloquear capturas de tela e outras tentativas de capturar a tela dentro do app</string>
|
||||
<string name="pref_tap_to_reveal_title">Tocar para mostrar</string>
|
||||
|
|
|
@ -63,7 +63,6 @@
|
|||
<string name="pref_export_title">Exportă</string>
|
||||
<string name="pref_export_summary">Exportă seiful</string>
|
||||
<string name="pref_password_reminder_title">Reamintire parolă</string>
|
||||
<string name="pref_password_reminder_summary">Arată un memento pentru a introduce parola o dată la un interval de timp pentru nu o uita.</string>
|
||||
<string name="pref_secure_screen_title">Securitatea ecranului</string>
|
||||
<string name="pref_secure_screen_summary">Blochează capturile de ecran și alte încercări de a captura ecranul în cadrul aplicației</string>
|
||||
<string name="pref_tap_to_reveal_title">Atinge pentru a descoperi</string>
|
||||
|
|
|
@ -64,7 +64,6 @@
|
|||
<string name="pref_export_title">Экспорт в файл</string>
|
||||
<string name="pref_export_summary">Экспорт хранилища</string>
|
||||
<string name="pref_password_reminder_title">Напоминание о пароле</string>
|
||||
<string name="pref_password_reminder_summary">Показывать иногда напоминание с просьбой ввести пароль, чтобы вы не забыли его</string>
|
||||
<string name="pref_secure_screen_title">Безопасность экрана</string>
|
||||
<string name="pref_secure_screen_summary">Блокировка снимков экрана и других попыток захвата экрана в приложении</string>
|
||||
<string name="pref_tap_to_reveal_title">Отображение по нажатию</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Exportera</string>
|
||||
<string name="pref_export_summary">Exportera valvet</string>
|
||||
<string name="pref_password_reminder_title">Lösenordspåminnelse</string>
|
||||
<string name="pref_password_reminder_summary">Visa en påminnelse om att ange lösenordet då och då, så att du inte glömmer bort det.</string>
|
||||
<string name="pref_secure_screen_title">Skärmsäkerhet</string>
|
||||
<string name="pref_secure_screen_summary">Blockera skärmdumpar och andra försök att avbilda skärmen inne i appen</string>
|
||||
<string name="pref_tap_to_reveal_title">Tryck för att visa</string>
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
<string name="pref_export_title">Dışarıya aktar</string>
|
||||
<string name="pref_export_summary">Kasayı dışarıya aktar</string>
|
||||
<string name="pref_password_reminder_title">Parola hatırlatma</string>
|
||||
<string name="pref_password_reminder_summary">Parolayı periyodik olarak girmem için bir hatırlatma göster ki bu sayede unutmayayım</string>
|
||||
<string name="pref_secure_screen_title">Ekran güvenliği</string>
|
||||
<string name="pref_secure_screen_summary">Uygulama içindeyken ekran görüntüsü almayı ve diğer ekran yakalama girişimlerini engelle.</string>
|
||||
<string name="pref_tap_to_reveal_title">Görmek için dokunun</string>
|
||||
|
|
|
@ -58,7 +58,6 @@
|
|||
<string name="pref_export_title">Експорт</string>
|
||||
<string name="pref_export_summary">Експортувати сховище</string>
|
||||
<string name="pref_password_reminder_title">Нагадування пароля</string>
|
||||
<string name="pref_password_reminder_summary">Час від часу показувати нагадування з проханням ввести пароль, щоб ви його не забули.</string>
|
||||
<string name="pref_secure_screen_title">Безпека екрану</string>
|
||||
<string name="pref_secure_screen_summary">Блокувати знімки екрану та інші спроби захоплення екрану в додатку</string>
|
||||
<string name="pref_tap_to_reveal_title">Торкніться, щоб відобразити</string>
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
<string name="pref_export_title">Xuất</string>
|
||||
<string name="pref_export_summary">Xuất kho</string>
|
||||
<string name="pref_password_reminder_title">Lời nhắc mật khẩu</string>
|
||||
<string name="pref_password_reminder_summary">Thỉnh thoảng hiện một lời nhắc nhập mật khẩu, để cho bạn không quên nó.</string>
|
||||
<string name="pref_secure_screen_title">Bảo mật màn hình</string>
|
||||
<string name="pref_secure_screen_summary">Chặn ảnh chụp màn hình và các cố gắng khác để chụp lại màn hình trong ứng dụng</string>
|
||||
<string name="pref_tap_to_reveal_title">Nhấn để hiện ra</string>
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
<string name="pref_export_title">导出</string>
|
||||
<string name="pref_export_summary">导出数据库</string>
|
||||
<string name="pref_password_reminder_title">密码提醒</string>
|
||||
<string name="pref_password_reminder_summary">每隔一段时间提醒您输入一次密码,以免忘记密码。</string>
|
||||
<string name="pref_secure_screen_title">屏幕安全</string>
|
||||
<string name="pref_secure_screen_summary">阻止屏幕截图,以及其他试图在本应用中捕获屏幕的行为</string>
|
||||
<string name="pref_tap_to_reveal_title">点击显示</string>
|
||||
|
|
|
@ -51,7 +51,6 @@
|
|||
<string name="pref_export_title">匯出</string>
|
||||
<string name="pref_export_summary">匯出保險箱</string>
|
||||
<string name="pref_password_reminder_title">密碼提醒</string>
|
||||
<string name="pref_password_reminder_summary">每隔一段時間提醒您輸入一次密碼,以免忘記密碼</string>
|
||||
<string name="pref_secure_screen_title">螢幕安全性</string>
|
||||
<string name="pref_secure_screen_summary">禁止螢幕截圖,以及阻止其他擷取程式畫面的嘗試。</string>
|
||||
<string name="pref_tap_to_reveal_title">輕觸以顯示</string>
|
||||
|
|
|
@ -68,7 +68,8 @@
|
|||
<string name="pref_export_title">Export</string>
|
||||
<string name="pref_export_summary">Export the vault</string>
|
||||
<string name="pref_password_reminder_title">Password reminder</string>
|
||||
<string name="pref_password_reminder_summary">Show a reminder to enter the password every once in a while, so that you don\'t forget it.</string>
|
||||
<string name="pref_password_reminder_summary">Show a %s reminder to enter the password, so that you don\'t forget it.</string>
|
||||
<string name="pref_password_reminder_summary_disabled">Disabled</string>
|
||||
<string name="pref_secure_screen_title">Screen security</string>
|
||||
<string name="pref_secure_screen_summary">Block screenshots and other attempts to capture the screen within the app</string>
|
||||
<string name="pref_tap_to_reveal_title">Tap to reveal</string>
|
||||
|
@ -120,6 +121,11 @@
|
|||
<string name="invalid_password">The password is incorrect</string>
|
||||
<string name="invalidated_biometrics">A change in your device\'s security settings has been detected. Please go to \"Aegis -> Settings -> Security -> Biometric unlock\" to disable and re-enable biometric unlock.</string>
|
||||
<string name="password_reminder">Please enter your password. We occasionally ask you to do this so that don\'t forget it.</string>
|
||||
<string name="password_reminder_freq_never">Never</string>
|
||||
<string name="password_reminder_freq_weekly">Weekly</string>
|
||||
<string name="password_reminder_freq_biweekly">Biweekly</string>
|
||||
<string name="password_reminder_freq_monthly">Monthly</string>
|
||||
<string name="password_reminder_freq_quarterly">Quarterly</string>
|
||||
<string name="enter_password_2fas_message">It looks like this 2FAS backup is encrypted. Please enter the password below.</string>
|
||||
<string name="enter_password_authy_message">It looks like your Authy tokens are encrypted. Please close Aegis, open Authy and unlock the tokens with your password. Instead, Aegis can also attempt to decrypt your Authy tokens for you, if you enter your password below.</string>
|
||||
<string name="enter_password_aegis_title">Please enter the import password</string>
|
||||
|
|
|
@ -26,9 +26,8 @@
|
|||
android:persistent="false"
|
||||
app:iconSpaceReserved="false"/>
|
||||
|
||||
<androidx.preference.SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="pref_password_reminder"
|
||||
<Preference
|
||||
android:key="pref_password_reminder_freq"
|
||||
android:title="@string/pref_password_reminder_title"
|
||||
android:summary="@string/pref_password_reminder_summary"
|
||||
android:dependency="pref_biometrics"
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
package com.beemdevelopment.aegis;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class PreferencesTest {
|
||||
@Test
|
||||
public void testIsPasswordReminderNeeded() {
|
||||
long currTime = new Date().getTime();
|
||||
Context context = ApplicationProvider.getApplicationContext();
|
||||
Preferences prefs = new Preferences(context);
|
||||
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
|
||||
// make sure that the password reminder is enabled by default
|
||||
assertNotEquals(prefs.getPasswordReminderFrequency(), PassReminderFreq.NEVER);
|
||||
|
||||
// if the old preference is set to false, the frequency should be NEVER
|
||||
sharedPrefs.edit().putBoolean("pref_password_reminder", false).apply();
|
||||
assertEquals(prefs.getPasswordReminderFrequency(), PassReminderFreq.NEVER);
|
||||
assertFalse(prefs.isPasswordReminderNeeded());
|
||||
|
||||
// password reminders are never needed when the frequency is set to NEVER
|
||||
PassReminderFreq freq = PassReminderFreq.NEVER;
|
||||
prefs.setPasswordReminderFrequency(freq);
|
||||
assertFalse(prefs.isPasswordReminderNeeded());
|
||||
|
||||
// test correct behavior when the frequency is set to something other than NEVER
|
||||
freq = PassReminderFreq.WEEKLY;
|
||||
prefs.setPasswordReminderFrequency(freq);
|
||||
assertFalse(prefs.isPasswordReminderNeeded(currTime));
|
||||
prefs.setPasswordReminderTimestamp(currTime - freq.getDurationMillis() + 1);
|
||||
assertFalse(prefs.isPasswordReminderNeeded(currTime));
|
||||
prefs.setPasswordReminderTimestamp(currTime - freq.getDurationMillis());
|
||||
assertTrue(prefs.isPasswordReminderNeeded(currTime));
|
||||
prefs.setPasswordReminderTimestamp(currTime - freq.getDurationMillis() - 1);
|
||||
assertTrue(prefs.isPasswordReminderNeeded(currTime));
|
||||
|
||||
// a password reminder should no longer be needed if it's configured to be less frequent than before
|
||||
freq = PassReminderFreq.BIWEEKLY;
|
||||
prefs.setPasswordReminderFrequency(freq);
|
||||
assertFalse(prefs.isPasswordReminderNeeded(currTime));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue