From a847ebd72e04c520eebb2b042a3ea8b3b2e8dbe9 Mon Sep 17 00:00:00 2001 From: Fox2Code Date: Thu, 31 Mar 2022 15:39:48 +0200 Subject: [PATCH] Minor update/fixes to previous contributions. --- .../com/fox2code/mmm/AppUpdateManager.java | 8 + .../java/com/fox2code/mmm/MainActivity.java | 6 +- .../mmm/androidacy/AndroidacyWebAPI.java | 4 +- .../java/com/fox2code/mmm/utils/Hashes.java | 11 +- .../arrays.xml | 12 +- .../strings.xml | 190 +++++++++--------- 6 files changed, 124 insertions(+), 107 deletions(-) rename app/src/main/res/{values-es-MX => values-es-rMX}/arrays.xml (89%) rename app/src/main/res/{values-es-MX => values-es-rMX}/strings.xml (98%) diff --git a/app/src/main/java/com/fox2code/mmm/AppUpdateManager.java b/app/src/main/java/com/fox2code/mmm/AppUpdateManager.java index 62acff2..4d24d77 100644 --- a/app/src/main/java/com/fox2code/mmm/AppUpdateManager.java +++ b/app/src/main/java/com/fox2code/mmm/AppUpdateManager.java @@ -142,18 +142,26 @@ public class AppUpdateManager { .getBytes(StandardCharsets.UTF_8); this.parseCompatibilityFlags(new ByteArrayInputStream(rawData)); Files.write(compatFile, rawData); + if (!BuildConfig.ENABLE_AUTO_UPDATER) + this.lastCheckSuccess = true; } catch (Exception e) { + if (!BuildConfig.ENABLE_AUTO_UPDATER) + this.lastCheckSuccess = false; Log.e("AppUpdateManager", "Failed to update compat list", e); } } public boolean peekShouldUpdate() { + if (!BuildConfig.ENABLE_AUTO_UPDATER) + return false; return !(BuildConfig.VERSION_NAME.equals(this.latestRelease) || (this.preReleaseNewer && BuildConfig.VERSION_NAME.equals(this.latestPreRelease))); } public boolean peekHasUpdate() { + if (!BuildConfig.ENABLE_AUTO_UPDATER) + return false; return !BuildConfig.VERSION_NAME.equals(this.preReleaseNewer ? this.latestPreRelease : this.latestRelease); } diff --git a/app/src/main/java/com/fox2code/mmm/MainActivity.java b/app/src/main/java/com/fox2code/mmm/MainActivity.java index b27d4ea..611ec4a 100644 --- a/app/src/main/java/com/fox2code/mmm/MainActivity.java +++ b/app/src/main/java/com/fox2code/mmm/MainActivity.java @@ -178,9 +178,11 @@ public class MainActivity extends CompatActivity implements SwipeRefreshLayout.O if (!NotificationType.NO_INTERNET.shouldRemove()) { moduleViewListBuilder.addNotification(NotificationType.NO_INTERNET); } else { - if (AppUpdateManager.getAppUpdateManager().checkUpdate(true)) + // Compatibility data still needs to be updated + AppUpdateManager appUpdateManager = AppUpdateManager.getAppUpdateManager(); + if (BuildConfig.ENABLE_AUTO_UPDATER && appUpdateManager.checkUpdate(true)) moduleViewListBuilder.addNotification(NotificationType.UPDATE_AVAILABLE); - if (AppUpdateManager.getAppUpdateManager().isLastCheckSuccess()) + if (!BuildConfig.ENABLE_AUTO_UPDATER || appUpdateManager.isLastCheckSuccess()) AppUpdateManager.getAppUpdateManager().checkUpdateCompat(); if (max != 0) { int current = 0; diff --git a/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyWebAPI.java b/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyWebAPI.java index 7500fed..cc3402b 100644 --- a/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyWebAPI.java +++ b/app/src/main/java/com/fox2code/mmm/androidacy/AndroidacyWebAPI.java @@ -219,7 +219,7 @@ public class AndroidacyWebAPI { this.forceQuitRaw("Non Androidacy module link used on Androidacy"); return; } - if (checksum != null) checksum = checksum.trim(); + checksum = Hashes.checkSumFormat(checksum); if (checksum == null || checksum.isEmpty()) { Log.w(TAG, "Androidacy WebView didn't provided a checksum!"); } else if (!Hashes.checkSumValid(checksum)) { @@ -261,7 +261,7 @@ public class AndroidacyWebAPI { this.forceQuitRaw("Non Androidacy module link used on Androidacy"); return; } - if (checksum != null) checksum = checksum.trim(); + checksum = Hashes.checkSumFormat(checksum); if (checksum == null || checksum.isEmpty()) { Log.w(TAG, "Androidacy WebView didn't provided a checksum!"); } else if (!Hashes.checkSumValid(checksum)) { diff --git a/app/src/main/java/com/fox2code/mmm/utils/Hashes.java b/app/src/main/java/com/fox2code/mmm/utils/Hashes.java index 84d0f6a..b470b55 100644 --- a/app/src/main/java/com/fox2code/mmm/utils/Hashes.java +++ b/app/src/main/java/com/fox2code/mmm/utils/Hashes.java @@ -5,10 +5,12 @@ import android.util.Log; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Locale; +import java.util.regex.Pattern; public class Hashes { private static final String TAG = "Hashes"; private static final char[] HEX_ARRAY = "0123456789abcdef".toCharArray(); + private static final Pattern nonAlphaNum = Pattern.compile("[^a-zA-Z0-9]"); public static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 2]; for (int j = 0; j < bytes.length; j++) { @@ -65,8 +67,7 @@ public class Hashes { */ public static boolean checkSumMatch(byte[] data, String checksum) { String hash; - // Remove all non-alphanumeric characters - checksum = checksum.replaceAll("[^a-zA-Z0-9]", ""); + if (checksum == null) return false; switch (checksum.length()) { case 0: return true; // No checksum @@ -124,4 +125,10 @@ public class Hashes { return "SHA-512"; } } + + public static String checkSumFormat(String checksum) { + if (checksum == null) return null; + // Remove all non-alphanumeric characters + return nonAlphaNum.matcher(checksum.trim()).replaceAll(""); + } } diff --git a/app/src/main/res/values-es-MX/arrays.xml b/app/src/main/res/values-es-rMX/arrays.xml similarity index 89% rename from app/src/main/res/values-es-MX/arrays.xml rename to app/src/main/res/values-es-rMX/arrays.xml index 10d33c8..ba414a5 100644 --- a/app/src/main/res/values-es-MX/arrays.xml +++ b/app/src/main/res/values-es-rMX/arrays.xml @@ -1,7 +1,7 @@ - - - Sistema - Oscuro - Claro - + + + Sistema + Oscuro + Claro + \ No newline at end of file diff --git a/app/src/main/res/values-es-MX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml similarity index 98% rename from app/src/main/res/values-es-MX/strings.xml rename to app/src/main/res/values-es-rMX/strings.xml index c1cdd97..d295baf 100644 --- a/app/src/main/res/values-es-MX/strings.xml +++ b/app/src/main/res/values-es-rMX/strings.xml @@ -1,96 +1,96 @@ - - Fox\'s Magisk Module Manager - Fox\'s Mmm - No fue posible obtener acceso root o Magisk. - Cargando... - Actualización disponible - Instalado - Repositorio online - La aplicación está en modo Lockdown. - No fue posible descargar el archivo. - Los módulos tardaron mucho en iniciar, considere eliminar algunos. - No fue posible conectarse a Internet. - SettingsActivity - Actualización disponible - Actualizar - Sin descripción. - Descargar módulo - Instalar módulo - Actualizar módulo - Changelog - Sitio web - Soporte - Donar - Enviar un módulo - Requiere Android 6.0 o superior - - - Actualizado el: - Repositorio: - por - Descargas: - Estrellas: - - - - Administrar repositorios - Modo Lockdown - Modo Lockdown previene que la aplicación haga cambios en los módulos - Ajustes - Info - Mostrar licencias - Licencias - Mostrar módulos incompatibles - Muestra los módulos que son incompatibles con su dispositivo basandose en sus metadatos - Magisk está desactualizado! - Repositorios - Repositorio que aloja los módulos de Magisk - Una alternativa del repositorio de módulos de Magisk pero con menos restricciones. - Desea borrar los archivos del módulo? - Mantener archivos - Borrar archivos - No fue posible borrar los archivos del módulo - Tema - Modo del tema - Id del módulo: - Instalar módulo desde el almacenamiento - El módulo seleccionado tiene un formato inválido - Instalación local - Código fuente - Módulo incorporado de Magisk - Módulo incorporado de Substratum - Forzar el modo oscuro en la terminal - Su administrador de archivos no pudo dar acceso a los archivos. - Instalación remota - Su administrador de archivos retorno una respuesta no esperada. - Usar el comando de instalación de Magisk - - Durante las pruebas causó problemas a la herramienta de diagnóstico de errores de instalación de módulo, - así que escondí esta opción en el modo desarrollador, activala bajo tu propio riesgo! - - Modo desarrollador activado - Forzar el idioma al Inglés - Desactivar el filtro de módulos de baja calidad - - Algunos módulos no declaran de manera adecuada sus metadatos causando errores visuales - y/o indicando una mala calidad del módulo, desactivalo bajo su propio riesgo! - - DNS over HTTPS - - En algunos casos puede solucionar problemas de conexión - (No se aplica al WebView) - - Desactivar extensiones - - Desactiva las extensiones de Fox\'s Mmm, esto previene que los módulos usen - extensiones de la terminal, útil si un módulo hace mal uso de las extensiones de Fox\'s Mmm. - - Dividir el texto - - Divide el texto en una linea nueva en vez de colocar - todo el texto en la misma linea durante la instalación de un módulo - - Activar desenfoque - Repositorio activado - Repositorio desactivado + + Fox\'s Magisk Module Manager + Fox\'s Mmm + No fue posible obtener acceso root o Magisk. + Cargando... + Actualización disponible + Instalado + Repositorio online + La aplicación está en modo Lockdown. + No fue posible descargar el archivo. + Los módulos tardaron mucho en iniciar, considere eliminar algunos. + No fue posible conectarse a Internet. + SettingsActivity + Actualización disponible + Actualizar + Sin descripción. + Descargar módulo + Instalar módulo + Actualizar módulo + Changelog + Sitio web + Soporte + Donar + Enviar un módulo + Requiere Android 6.0 o superior + + + Actualizado el: + Repositorio: + por + Descargas: + Estrellas: + + + + Administrar repositorios + Modo Lockdown + Modo Lockdown previene que la aplicación haga cambios en los módulos + Ajustes + Info + Mostrar licencias + Licencias + Mostrar módulos incompatibles + Muestra los módulos que son incompatibles con su dispositivo basandose en sus metadatos + Magisk está desactualizado! + Repositorios + Repositorio que aloja los módulos de Magisk + Una alternativa del repositorio de módulos de Magisk pero con menos restricciones. + Desea borrar los archivos del módulo? + Mantener archivos + Borrar archivos + No fue posible borrar los archivos del módulo + Tema + Modo del tema + Id del módulo: + Instalar módulo desde el almacenamiento + El módulo seleccionado tiene un formato inválido + Instalación local + Código fuente + Módulo incorporado de Magisk + Módulo incorporado de Substratum + Forzar el modo oscuro en la terminal + Su administrador de archivos no pudo dar acceso a los archivos. + Instalación remota + Su administrador de archivos retorno una respuesta no esperada. + Usar el comando de instalación de Magisk + + Durante las pruebas causó problemas a la herramienta de diagnóstico de errores de instalación de módulo, + así que escondí esta opción en el modo desarrollador, activala bajo tu propio riesgo! + + Modo desarrollador activado + Forzar el idioma al Inglés + Desactivar el filtro de módulos de baja calidad + + Algunos módulos no declaran de manera adecuada sus metadatos causando errores visuales + y/o indicando una mala calidad del módulo, desactivalo bajo su propio riesgo! + + DNS over HTTPS + + En algunos casos puede solucionar problemas de conexión + (No se aplica al WebView) + + Desactivar extensiones + + Desactiva las extensiones de Fox\'s Mmm, esto previene que los módulos usen + extensiones de la terminal, útil si un módulo hace mal uso de las extensiones de Fox\'s Mmm. + + Dividir el texto + + Divide el texto en una linea nueva en vez de colocar + todo el texto en la misma linea durante la instalación de un módulo + + Activar desenfoque + Repositorio activado + Repositorio desactivado \ No newline at end of file