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 +