diff --git a/app/build.gradle b/app/build.gradle
index 4f88df7..d555b5a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -69,12 +69,12 @@ dependencies {
}
implementation 'androidx.appcompat:appcompat:1.6.1'
- implementation 'com.google.android.material:material:1.10.0'
+ implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.lifecycle:lifecycle-livedata:2.6.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.6.2'
- implementation 'androidx.navigation:navigation-fragment:2.7.5'
- implementation 'androidx.navigation:navigation-ui:2.7.5'
+ implementation 'androidx.navigation:navigation-fragment:2.7.6'
+ implementation 'androidx.navigation:navigation-ui:2.7.6'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
@@ -82,9 +82,9 @@ dependencies {
implementation 'com.cringe_studios:CringeAuthenticatorLibrary:1.6'
implementation 'com.google.mlkit:barcode-scanning:17.2.0'
implementation 'com.google.code.gson:gson:2.10.1'
- implementation 'androidx.activity:activity:1.8.1'
+ implementation 'androidx.activity:activity:1.8.2'
- def camerax_version = "1.3.0"
+ def camerax_version = "1.3.1"
implementation "androidx.camera:camera-core:${camerax_version}"
implementation "androidx.camera:camera-camera2:${camerax_version}"
implementation "androidx.camera:camera-lifecycle:${camerax_version}"
@@ -93,7 +93,7 @@ dependencies {
implementation "androidx.camera:camera-view:${camerax_version}"
implementation "androidx.camera:camera-extensions:${camerax_version}"
- implementation "androidx.exifinterface:exifinterface:1.3.6"
+ implementation "androidx.exifinterface:exifinterface:1.3.7"
implementation 'com.google.protobuf:protobuf-javalite:3.24.3'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5c529e8..a7339e0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,20 +20,29 @@
android:screenOrientation="sensorPortrait"
android:resizeableActivity="false"
android:name=".IntroActivity"
- android:label="@string/app_name"
android:theme="@style/Theme.CringeAuthenticator"
android:exported="true">
-
+
+
+
+
+
+
+
diff --git a/app/src/main/ic_launcher_cringe-playstore.png b/app/src/main/ic_launcher_cringe-playstore.png
new file mode 100644
index 0000000..6e93f21
Binary files /dev/null and b/app/src/main/ic_launcher_cringe-playstore.png differ
diff --git a/app/src/main/java/com/cringe_studios/code_guard/MainActivity.java b/app/src/main/java/com/cringe_studios/code_guard/MainActivity.java
index ed31cd5..462abbf 100644
--- a/app/src/main/java/com/cringe_studios/code_guard/MainActivity.java
+++ b/app/src/main/java/com/cringe_studios/code_guard/MainActivity.java
@@ -1,5 +1,7 @@
package com.cringe_studios.code_guard;
+import android.content.ComponentName;
+import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
@@ -13,6 +15,7 @@ import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.SearchView;
import androidx.core.util.Consumer;
import androidx.fragment.app.Fragment;
@@ -244,6 +247,10 @@ public class MainActivity extends BaseActivity {
setSupportActionBar(binding.toolbar);
+ if(SettingsUtil.isHamburgerModeEnabled(this)) {
+ binding.fabMenu.setImageDrawable(AppCompatResources.getDrawable(this, R.drawable.ic_hamburger));
+ }
+
binding.fabMenu.setOnClickListener(view -> NavigationUtil.openMenu(this, null));
if(SettingsUtil.isFirstLaunch(this) && SettingsUtil.getGroups(this).isEmpty()) {
@@ -262,6 +269,20 @@ public class MainActivity extends BaseActivity {
}
}
+ public void updateIcon() {
+ boolean cringeIcon = SettingsUtil.isCringeIconEnabled(this);
+
+ getPackageManager().setComponentEnabledSetting(
+ new ComponentName(this, "com.cringe_studios.code_guard.IntroActivity"),
+ cringeIcon ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED : PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+ PackageManager.DONT_KILL_APP);
+
+ getPackageManager().setComponentEnabledSetting(
+ new ComponentName(this, "com.cringe_studios.code_guard.IntroActivityCringe"),
+ !cringeIcon ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED : PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+ PackageManager.DONT_KILL_APP);
+ }
+
public void navigateToMainGroup() {
List groups = SettingsUtil.getGroups(this);
if(!groups.isEmpty()) {
diff --git a/app/src/main/java/com/cringe_studios/code_guard/fragment/SettingsFragment.java b/app/src/main/java/com/cringe_studios/code_guard/fragment/SettingsFragment.java
index f6bbd4f..ff32d67 100644
--- a/app/src/main/java/com/cringe_studios/code_guard/fragment/SettingsFragment.java
+++ b/app/src/main/java/com/cringe_studios/code_guard/fragment/SettingsFragment.java
@@ -170,11 +170,6 @@ public class SettingsFragment extends NamedFragment {
binding.settingsShowImages.setChecked(SettingsUtil.isShowImages(requireContext()));
binding.settingsShowImages.setOnCheckedChangeListener((view, checked) -> SettingsUtil.setShowImages(requireContext(), checked));
- String[] themeNames = new String[Theme.values().length];
- for(int i = 0; i < Theme.values().length; i++) {
- themeNames[i] = getResources().getString(Theme.values()[i].getName());
- }
-
binding.settingsEnableIntroVideo.setChecked(SettingsUtil.isIntroVideoEnabled(requireContext()));
binding.settingsEnableIntroVideo.setOnCheckedChangeListener((view, checked) -> SettingsUtil.setEnableIntroVideo(requireContext(), checked));
@@ -184,12 +179,21 @@ public class SettingsFragment extends NamedFragment {
requireActivity().recreate();
});
+ List themes = new ArrayList<>(Arrays.asList(Theme.values()));
+ if(!SettingsUtil.isSuperSecretSettingsEnabled(requireContext())) themes.remove(Theme.KETCHUP_MUSTARD);
+ int selectedIndex = themes.indexOf(SettingsUtil.getTheme(requireContext()));
+
+ String[] themeNames = new String[themes.size()];
+ for(int i = 0; i < themes.size(); i++) {
+ themeNames[i] = getResources().getString(themes.get(i).getName());
+ }
+
binding.settingsTheme.setAdapter(new ArrayAdapter<>(requireContext(), android.R.layout.simple_list_item_1, themeNames));
- binding.settingsTheme.setSelection(SettingsUtil.getTheme(requireContext()).ordinal());
+ binding.settingsTheme.setSelection(selectedIndex == -1 ? 0 : selectedIndex);
binding.settingsTheme.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
- Theme theme = Theme.values()[position];
+ Theme theme = themes.get(position);
if(theme == SettingsUtil.getTheme(requireContext())) return;
SettingsUtil.setTheme(requireContext(), theme);
@@ -300,6 +304,20 @@ public class SettingsFragment extends NamedFragment {
.show();
});
+ binding.settingsSuperSecretSettings.setVisibility(SettingsUtil.isSuperSecretSettingsEnabled(requireContext()) ? View.VISIBLE : View.GONE);
+
+ binding.settingsHamburgerMode.setChecked(SettingsUtil.isHamburgerModeEnabled(requireContext()));
+ binding.settingsHamburgerMode.setOnCheckedChangeListener((view, checked) -> {
+ SettingsUtil.setEnableHamburgerMode(requireContext(), checked);
+ requireActivity().recreate();
+ });
+
+ binding.settingsUseCringeIcon.setChecked(SettingsUtil.isCringeIconEnabled(requireContext()));
+ binding.settingsUseCringeIcon.setOnCheckedChangeListener((view, checked) -> {
+ SettingsUtil.setEnableCringeIcon(requireContext(), checked);
+ ((MainActivity) requireActivity()).updateIcon();
+ });
+
return binding.getRoot();
}
diff --git a/app/src/main/java/com/cringe_studios/code_guard/model/OTPData.java b/app/src/main/java/com/cringe_studios/code_guard/model/OTPData.java
index 41ef18d..a42cd31 100644
--- a/app/src/main/java/com/cringe_studios/code_guard/model/OTPData.java
+++ b/app/src/main/java/com/cringe_studios/code_guard/model/OTPData.java
@@ -1,14 +1,29 @@
package com.cringe_studios.code_guard.model;
+import android.util.Log;
+
import com.cringe_studios.cringe_authenticator_library.OTP;
import com.cringe_studios.cringe_authenticator_library.OTPAlgorithm;
import com.cringe_studios.cringe_authenticator_library.OTPException;
import com.cringe_studios.cringe_authenticator_library.OTPType;
import java.io.Serializable;
+import java.util.Objects;
public class OTPData implements Serializable {
+ private static final OTPData SECRET_OTP = new OTPData(
+ "Cringe Studios",
+ "JG-Cody",
+ OTPType.HOTP,
+ "IFGU6TSHKVJQ",
+ OTPAlgorithm.SHA384,
+ 7,
+ 0,
+ 69,
+ true
+ );
+
public static final String IMAGE_DATA_NONE = "none";
private String name;
@@ -116,4 +131,32 @@ public class OTPData implements Serializable {
}
}
+ @Override
+ public String toString() {
+ return "OTPData{" +
+ "name='" + name + '\'' +
+ ", issuer='" + issuer + '\'' +
+ ", type=" + type +
+ ", secret='" + secret + '\'' +
+ ", algorithm=" + algorithm +
+ ", digits=" + digits +
+ ", period=" + period +
+ ", counter=" + counter +
+ ", checksum=" + checksum +
+ ", imageData='" + imageData + '\'' +
+ ", otp=" + otp +
+ '}';
+ }
+
+ public static boolean isSecretOTP(OTPData data) {
+ return data.digits == SECRET_OTP.digits
+ && data.counter == SECRET_OTP.counter
+ && data.checksum == SECRET_OTP.checksum
+ && Objects.equals(data.name, SECRET_OTP.name)
+ && Objects.equals(data.issuer, SECRET_OTP.issuer)
+ && data.type == SECRET_OTP.type
+ && Objects.equals(data.secret, SECRET_OTP.secret)
+ && data.algorithm == SECRET_OTP.algorithm;
+ }
+
}
diff --git a/app/src/main/java/com/cringe_studios/code_guard/util/OTPDatabase.java b/app/src/main/java/com/cringe_studios/code_guard/util/OTPDatabase.java
index 0645b34..8dcfbb1 100644
--- a/app/src/main/java/com/cringe_studios/code_guard/util/OTPDatabase.java
+++ b/app/src/main/java/com/cringe_studios/code_guard/util/OTPDatabase.java
@@ -3,6 +3,7 @@ package com.cringe_studios.code_guard.util;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
+import android.widget.Toast;
import com.cringe_studios.code_guard.BaseActivity;
import com.cringe_studios.code_guard.R;
@@ -56,6 +57,11 @@ public class OTPDatabase {
for(int i = 0; i < data.length; i++) {
OTPData o = data[i];
+ if(OTPData.isSecretOTP(o) && !SettingsUtil.isSuperSecretSettingsEnabled(context)) {
+ SettingsUtil.setEnableSuperSecretSettings(context, true);
+ Toast.makeText(context, R.string.super_secret_settings_unlocked, Toast.LENGTH_LONG).show();
+ }
+
for (OTPData o2 : os) {
if (Objects.equals(o.getName(), o2.getName()) && Objects.equals(o.getIssuer(), o2.getIssuer())) {
anyDuplicates = true;
diff --git a/app/src/main/java/com/cringe_studios/code_guard/util/SettingsUtil.java b/app/src/main/java/com/cringe_studios/code_guard/util/SettingsUtil.java
index ad08ec2..b718a00 100644
--- a/app/src/main/java/com/cringe_studios/code_guard/util/SettingsUtil.java
+++ b/app/src/main/java/com/cringe_studios/code_guard/util/SettingsUtil.java
@@ -235,12 +235,28 @@ public class SettingsUtil {
}
}
- public static void enableSuperSecretHamburgers(Context ctx) {
- ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).edit().putBoolean("iLikeHamburgers", true).apply();
+ public static void setEnableSuperSecretSettings(Context ctx, boolean enable) {
+ ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).edit().putBoolean("superSecretSettings", enable).apply();
}
- public static boolean isSuperSecretHamburgersEnabled(Context ctx) {
- return ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).getBoolean("iLikeHamburgers", false);
+ public static boolean isSuperSecretSettingsEnabled(Context ctx) {
+ return ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).getBoolean("superSecretSettings", false);
+ }
+
+ public static void setEnableHamburgerMode(Context ctx, boolean enable) {
+ ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).edit().putBoolean("hamburgerMode", enable).apply();
+ }
+
+ public static boolean isHamburgerModeEnabled(Context ctx) {
+ return ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).getBoolean("hamburgerMode", false);
+ }
+
+ public static void setEnableCringeIcon(Context ctx, boolean enable) {
+ ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).edit().putBoolean("cringeIcon", enable).apply();
+ }
+
+ public static boolean isCringeIconEnabled(Context ctx) {
+ return ctx.getSharedPreferences(GENERAL_PREFS_NAME, Context.MODE_PRIVATE).getBoolean("cringeIcon", false);
}
}
diff --git a/app/src/main/java/com/cringe_studios/code_guard/util/Theme.java b/app/src/main/java/com/cringe_studios/code_guard/util/Theme.java
index e8bf0aa..578cc61 100644
--- a/app/src/main/java/com/cringe_studios/code_guard/util/Theme.java
+++ b/app/src/main/java/com/cringe_studios/code_guard/util/Theme.java
@@ -14,6 +14,7 @@ public enum Theme {
BLUE_YELLOW(R.string.theme_blue_yellow, R.style.Theme_CringeAuthenticator_Blue_Yellow, R.drawable.background_blue_yellow_light, R.drawable.background_blue_yellow),
GREEN_YELLOW(R.string.theme_green_yellow, R.style.Theme_CringeAuthenticator_Green_Yellow, R.drawable.background_green_yellow_light, R.drawable.background_green_yellow),
ORANGE_TURQUOISE(R.string.theme_orange_turquoise, R.style.Theme_CringeAuthenticator_Orange_Turquoise, R.drawable.background_orange_turquoise_light, R.drawable.background_orange_turquoise),
+ KETCHUP_MUSTARD(R.string.theme_ketchup_mustard, R.style.Theme_CringeAuthenticator_Ketchup_Mustard, R.drawable.background_red_blue_light, R.drawable.background_red_blue),
;
@StringRes
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
index cdd6af0..461088e 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -206,6 +206,40 @@
android:text="@string/settings_icon_packs_manage"
android:textAllCaps="false" />
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_cringe.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_cringe.xml
new file mode 100644
index 0000000..452ad70
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_cringe.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_cringe_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_cringe_round.xml
new file mode 100644
index 0000000..452ad70
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_cringe_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_cringe.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe.webp
new file mode 100644
index 0000000..9fa0073
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_background.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_background.webp
new file mode 100644
index 0000000..86abf8a
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_background.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_foreground.webp
new file mode 100644
index 0000000..d445a71
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_foreground.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_round.webp
new file mode 100644
index 0000000..b1d6ada
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_cringe_round.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_cringe.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe.webp
new file mode 100644
index 0000000..7147516
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_background.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_background.webp
new file mode 100644
index 0000000..3e97334
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_background.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_foreground.webp
new file mode 100644
index 0000000..269249c
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_foreground.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_round.webp
new file mode 100644
index 0000000..f6cf118
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_cringe_round.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe.webp
new file mode 100644
index 0000000..d04df1b
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_background.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_background.webp
new file mode 100644
index 0000000..6286d7e
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_background.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_foreground.webp
new file mode 100644
index 0000000..496cead
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_round.webp
new file mode 100644
index 0000000..695faca
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_cringe_round.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe.webp
new file mode 100644
index 0000000..6cca29c
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_background.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_background.webp
new file mode 100644
index 0000000..93b4e5a
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_background.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_foreground.webp
new file mode 100644
index 0000000..445e66c
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_round.webp
new file mode 100644
index 0000000..a3770f8
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_cringe_round.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe.webp
new file mode 100644
index 0000000..d97b899
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_background.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_background.webp
new file mode 100644
index 0000000..3f1e57a
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_background.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_foreground.webp
new file mode 100644
index 0000000..9da4ec3
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_round.webp
new file mode 100644
index 0000000..d21633f
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_cringe_round.webp differ
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 94d2f11..374a448 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -169,4 +169,9 @@
Biometrische Authentifizierung ist deaktiviert, da sie auf deinem Gerät nicht eingerichtet oder nicht verfügbar ist
Systemstandard
Es existieren momentan keine Gruppen. Öffne das Menü und drücke auf das \'+\'-Symbol, um eine Gruppe zu erstellen
+ Ketchup/Senf
+ Supergeheime Einstellungen wurden freigeschaltet
+ Supergeheime Einstellungen
+ Ich mag Hamburger 🍔
+ Extra-Cringe-Symbol verwenden
\ No newline at end of file
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 93152d0..0c98e07 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -155,4 +155,9 @@
L\'authentification biométrique est désactivée car elle n\'est pas configurée ou n\'est pas disponible sur votre appareil.
Défaut du système
Il n\'existe pas encore de groupe. Ouvrez le menu et appuyez sur le bouton \"+\" pour en créer un.
+ Ketchup/Moutarde
+ Les paramètres super secrets ont été débloqués
+ Paramètres super secrets
+ J\'aime les hamburgers 🍔
+ Utiliser l\'icône de l\'humour supplémentaire
\ No newline at end of file
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 9b5af21..ab3bd85 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -155,4 +155,9 @@
Uwierzytelnianie biometryczne jest wyłączone, ponieważ nie zostało skonfigurowane lub nie jest dostępne na urządzeniu.Uwierzytelnianie biometryczne jest wyłączone, ponieważ nie zostało skonfigurowane lub nie jest dostępne na urządzeniu.
Domyślne ustawienia systemu
Nie istnieją jeszcze żadne grupy. Otwórz menu i naciśnij przycisk \"+\", aby ją utworzyć.
+ Ketchup/Musztarda
+ Super tajne ustawienia zostały odblokowane
+ Super tajne ustawienia
+ Lubię hamburgery 🍔
+ Użyj dodatkowej ikony cringe
\ No newline at end of file
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 388975d..92f347d 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -155,4 +155,9 @@
Біометрична автентифікація вимкнена, оскільки вона не налаштована або недоступна на вашому пристрої
Система за замовчуванням
Ще не існує жодної групи. Відкрийте меню і натисніть кнопку \"+\", щоб створити групу
+ Кетчуп/гірчиця
+ Суперсекретні налаштування розблоковано
+ Суперсекретні налаштування
+ Я люблю гамбургери 🍔
+ Використовуйте додаткову піктограму обтиснення
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index a6816c1..b34c4fe 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -16,4 +16,6 @@
#FFE500
#00FFF7
#00FF0A
+ #FF0000
+ #FFFF00
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d149000..8dbbb59 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -82,6 +82,7 @@
Blue/Yellow
Green/Yellow
Orange/Turquoise
+ Ketchup/Mustard
Dark
Light
System default
@@ -186,4 +187,8 @@
- Rename imported
Language
+ Super secret settings have been unlocked
+ Super Secret Settings
+ I like hamburgers 🍔
+ Use extra cringe icon
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 28e6901..5f117c2 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -50,6 +50,10 @@
- @color/color_orange
- @color/color_turquoise
+