Minor update/fixes to previous contributions.

pull/27/head
Fox2Code 3 years ago
parent 45d647953f
commit a847ebd72e

@ -142,18 +142,26 @@ public class AppUpdateManager {
.getBytes(StandardCharsets.UTF_8); .getBytes(StandardCharsets.UTF_8);
this.parseCompatibilityFlags(new ByteArrayInputStream(rawData)); this.parseCompatibilityFlags(new ByteArrayInputStream(rawData));
Files.write(compatFile, rawData); Files.write(compatFile, rawData);
if (!BuildConfig.ENABLE_AUTO_UPDATER)
this.lastCheckSuccess = true;
} catch (Exception e) { } catch (Exception e) {
if (!BuildConfig.ENABLE_AUTO_UPDATER)
this.lastCheckSuccess = false;
Log.e("AppUpdateManager", "Failed to update compat list", e); Log.e("AppUpdateManager", "Failed to update compat list", e);
} }
} }
public boolean peekShouldUpdate() { public boolean peekShouldUpdate() {
if (!BuildConfig.ENABLE_AUTO_UPDATER)
return false;
return !(BuildConfig.VERSION_NAME.equals(this.latestRelease) || return !(BuildConfig.VERSION_NAME.equals(this.latestRelease) ||
(this.preReleaseNewer && (this.preReleaseNewer &&
BuildConfig.VERSION_NAME.equals(this.latestPreRelease))); BuildConfig.VERSION_NAME.equals(this.latestPreRelease)));
} }
public boolean peekHasUpdate() { public boolean peekHasUpdate() {
if (!BuildConfig.ENABLE_AUTO_UPDATER)
return false;
return !BuildConfig.VERSION_NAME.equals(this.preReleaseNewer ? return !BuildConfig.VERSION_NAME.equals(this.preReleaseNewer ?
this.latestPreRelease : this.latestRelease); this.latestPreRelease : this.latestRelease);
} }

@ -178,9 +178,11 @@ public class MainActivity extends CompatActivity implements SwipeRefreshLayout.O
if (!NotificationType.NO_INTERNET.shouldRemove()) { if (!NotificationType.NO_INTERNET.shouldRemove()) {
moduleViewListBuilder.addNotification(NotificationType.NO_INTERNET); moduleViewListBuilder.addNotification(NotificationType.NO_INTERNET);
} else { } 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); moduleViewListBuilder.addNotification(NotificationType.UPDATE_AVAILABLE);
if (AppUpdateManager.getAppUpdateManager().isLastCheckSuccess()) if (!BuildConfig.ENABLE_AUTO_UPDATER || appUpdateManager.isLastCheckSuccess())
AppUpdateManager.getAppUpdateManager().checkUpdateCompat(); AppUpdateManager.getAppUpdateManager().checkUpdateCompat();
if (max != 0) { if (max != 0) {
int current = 0; int current = 0;

@ -219,7 +219,7 @@ public class AndroidacyWebAPI {
this.forceQuitRaw("Non Androidacy module link used on Androidacy"); this.forceQuitRaw("Non Androidacy module link used on Androidacy");
return; return;
} }
if (checksum != null) checksum = checksum.trim(); checksum = Hashes.checkSumFormat(checksum);
if (checksum == null || checksum.isEmpty()) { if (checksum == null || checksum.isEmpty()) {
Log.w(TAG, "Androidacy WebView didn't provided a checksum!"); Log.w(TAG, "Androidacy WebView didn't provided a checksum!");
} else if (!Hashes.checkSumValid(checksum)) { } else if (!Hashes.checkSumValid(checksum)) {
@ -261,7 +261,7 @@ public class AndroidacyWebAPI {
this.forceQuitRaw("Non Androidacy module link used on Androidacy"); this.forceQuitRaw("Non Androidacy module link used on Androidacy");
return; return;
} }
if (checksum != null) checksum = checksum.trim(); checksum = Hashes.checkSumFormat(checksum);
if (checksum == null || checksum.isEmpty()) { if (checksum == null || checksum.isEmpty()) {
Log.w(TAG, "Androidacy WebView didn't provided a checksum!"); Log.w(TAG, "Androidacy WebView didn't provided a checksum!");
} else if (!Hashes.checkSumValid(checksum)) { } else if (!Hashes.checkSumValid(checksum)) {

@ -5,10 +5,12 @@ import android.util.Log;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.Locale; import java.util.Locale;
import java.util.regex.Pattern;
public class Hashes { public class Hashes {
private static final String TAG = "Hashes"; private static final String TAG = "Hashes";
private static final char[] HEX_ARRAY = "0123456789abcdef".toCharArray(); 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) { public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2]; char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) { for (int j = 0; j < bytes.length; j++) {
@ -65,8 +67,7 @@ public class Hashes {
*/ */
public static boolean checkSumMatch(byte[] data, String checksum) { public static boolean checkSumMatch(byte[] data, String checksum) {
String hash; String hash;
// Remove all non-alphanumeric characters if (checksum == null) return false;
checksum = checksum.replaceAll("[^a-zA-Z0-9]", "");
switch (checksum.length()) { switch (checksum.length()) {
case 0: case 0:
return true; // No checksum return true; // No checksum
@ -124,4 +125,10 @@ public class Hashes {
return "SHA-512"; 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("");
}
} }

@ -1,7 +1,7 @@
<resources> <resources>
<string-array name="theme_values_names"> <string-array name="theme_values_names">
<item>Sistema</item> <item>Sistema</item>
<item>Oscuro</item> <item>Oscuro</item>
<item>Claro</item> <item>Claro</item>
</string-array> </string-array>
</resources> </resources>

@ -1,96 +1,96 @@
<resources> <resources>
<string name="app_name">Fox\'s Magisk Module Manager</string> <string name="app_name">Fox\'s Magisk Module Manager</string>
<string name="app_name_short">Fox\'s Mmm</string> <string name="app_name_short">Fox\'s Mmm</string>
<string name="fail_root_magisk">No fue posible obtener acceso root o Magisk.</string> <string name="fail_root_magisk">No fue posible obtener acceso root o Magisk.</string>
<string name="loading">Cargando...</string> <string name="loading">Cargando...</string>
<string name="updatable">Actualización disponible</string> <string name="updatable">Actualización disponible</string>
<string name="installed">Instalado</string> <string name="installed">Instalado</string>
<string name="online_repo">Repositorio online</string> <string name="online_repo">Repositorio online</string>
<string name="showcase_mode">La aplicación está en modo Lockdown.</string> <string name="showcase_mode">La aplicación está en modo Lockdown.</string>
<string name="failed_download">No fue posible descargar el archivo.</string> <string name="failed_download">No fue posible descargar el archivo.</string>
<string name="slow_modules">Los módulos tardaron mucho en iniciar, considere eliminar algunos.</string> <string name="slow_modules">Los módulos tardaron mucho en iniciar, considere eliminar algunos.</string>
<string name="fail_internet">No fue posible conectarse a Internet.</string> <string name="fail_internet">No fue posible conectarse a Internet.</string>
<string name="title_activity_settings">SettingsActivity</string> <string name="title_activity_settings">SettingsActivity</string>
<string name="app_update_available">Actualización disponible</string> <string name="app_update_available">Actualización disponible</string>
<string name="app_update">Actualizar</string> <string name="app_update">Actualizar</string>
<string name="no_desc_found">Sin descripción.</string> <string name="no_desc_found">Sin descripción.</string>
<string name="download_module">Descargar módulo</string> <string name="download_module">Descargar módulo</string>
<string name="install_module">Instalar módulo</string> <string name="install_module">Instalar módulo</string>
<string name="update_module">Actualizar módulo</string> <string name="update_module">Actualizar módulo</string>
<string name="changelog">Changelog</string> <string name="changelog">Changelog</string>
<string name="website">Sitio web</string> <string name="website">Sitio web</string>
<string name="support">Soporte</string> <string name="support">Soporte</string>
<string name="donate">Donar</string> <string name="donate">Donar</string>
<string name="submit_modules">Enviar un módulo</string> <string name="submit_modules">Enviar un módulo</string>
<string name="require_android_6">Requiere Android 6.0 o superior</string> <string name="require_android_6">Requiere Android 6.0 o superior</string>
<!-- Module section translation --> <!-- Module section translation -->
<string name="module_last_update">Actualizado el:</string> <string name="module_last_update">Actualizado el:</string>
<string name="module_repo">Repositorio:</string> <string name="module_repo">Repositorio:</string>
<string name="module_by">por</string> <string name="module_by">por</string>
<string name="module_downloads">Descargas:</string> <string name="module_downloads">Descargas:</string>
<string name="module_stars">Estrellas:</string> <string name="module_stars">Estrellas:</string>
<!-- Preference Titles --> <!-- Preference Titles -->
<!-- Note: Lockdown mode used to be called showcase mode --> <!-- Note: Lockdown mode used to be called showcase mode -->
<string name="manage_repos_pref">Administrar repositorios</string> <string name="manage_repos_pref">Administrar repositorios</string>
<string name="showcase_mode_pref">Modo Lockdown</string> <string name="showcase_mode_pref">Modo Lockdown</string>
<string name="showcase_mode_desc">Modo Lockdown previene que la aplicación haga cambios en los módulos</string> <string name="showcase_mode_desc">Modo Lockdown previene que la aplicación haga cambios en los módulos</string>
<string name="pref_category_settings">Ajustes</string> <string name="pref_category_settings">Ajustes</string>
<string name="pref_category_info">Info</string> <string name="pref_category_info">Info</string>
<string name="show_licenses">Mostrar licencias</string> <string name="show_licenses">Mostrar licencias</string>
<string name="licenses">Licencias</string> <string name="licenses">Licencias</string>
<string name="show_incompatible_pref">Mostrar módulos incompatibles</string> <string name="show_incompatible_pref">Mostrar módulos incompatibles</string>
<string name="show_incompatible_desc">Muestra los módulos que son incompatibles con su dispositivo basandose en sus metadatos</string> <string name="show_incompatible_desc">Muestra los módulos que son incompatibles con su dispositivo basandose en sus metadatos</string>
<string name="magisk_outdated">Magisk está desactualizado!</string> <string name="magisk_outdated">Magisk está desactualizado!</string>
<string name="pref_category_repos">Repositorios</string> <string name="pref_category_repos">Repositorios</string>
<string name="repo_main_desc">Repositorio que aloja los módulos de Magisk</string> <string name="repo_main_desc">Repositorio que aloja los módulos de Magisk</string>
<string name="repo_main_alt">Una alternativa del repositorio de módulos de Magisk pero con menos restricciones.</string> <string name="repo_main_alt">Una alternativa del repositorio de módulos de Magisk pero con menos restricciones.</string>
<string name="master_delete">Desea borrar los archivos del módulo?</string> <string name="master_delete">Desea borrar los archivos del módulo?</string>
<string name="master_delete_no">Mantener archivos</string> <string name="master_delete_no">Mantener archivos</string>
<string name="master_delete_yes">Borrar archivos</string> <string name="master_delete_yes">Borrar archivos</string>
<string name="master_delete_fail">No fue posible borrar los archivos del módulo</string> <string name="master_delete_fail">No fue posible borrar los archivos del módulo</string>
<string name="theme_pref">Tema</string> <string name="theme_pref">Tema</string>
<string name="theme_mode_pref">Modo del tema</string> <string name="theme_mode_pref">Modo del tema</string>
<string name="module_id_prefix">Id del módulo: </string> <string name="module_id_prefix">Id del módulo: </string>
<string name="install_from_storage">Instalar módulo desde el almacenamiento</string> <string name="install_from_storage">Instalar módulo desde el almacenamiento</string>
<string name="invalid_format">El módulo seleccionado tiene un formato inválido</string> <string name="invalid_format">El módulo seleccionado tiene un formato inválido</string>
<string name="local_install_title">Instalación local</string> <string name="local_install_title">Instalación local</string>
<string name="source_code">Código fuente</string> <string name="source_code">Código fuente</string>
<string name="magisk_builtin_module">Módulo incorporado de Magisk</string> <string name="magisk_builtin_module">Módulo incorporado de Magisk</string>
<string name="substratum_builtin_module">Módulo incorporado de Substratum</string> <string name="substratum_builtin_module">Módulo incorporado de Substratum</string>
<string name="force_dark_terminal_title">Forzar el modo oscuro en la terminal</string> <string name="force_dark_terminal_title">Forzar el modo oscuro en la terminal</string>
<string name="file_picker_failure">Su administrador de archivos no pudo dar acceso a los archivos.</string> <string name="file_picker_failure">Su administrador de archivos no pudo dar acceso a los archivos.</string>
<string name="remote_install_title">Instalación remota</string> <string name="remote_install_title">Instalación remota</string>
<string name="file_picker_wierd">Su administrador de archivos retorno una respuesta no esperada.</string> <string name="file_picker_wierd">Su administrador de archivos retorno una respuesta no esperada.</string>
<string name="use_magisk_install_command_pref">Usar el comando de instalación de Magisk</string> <string name="use_magisk_install_command_pref">Usar el comando de instalación de Magisk</string>
<string name="use_magisk_install_command_desc"> <string name="use_magisk_install_command_desc">
Durante las pruebas causó problemas a la herramienta de diagnóstico de errores de instalación de módulo, 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! así que escondí esta opción en el modo desarrollador, activala bajo tu propio riesgo!
</string> </string>
<string name="dev_mode_enabled">Modo desarrollador activado</string> <string name="dev_mode_enabled">Modo desarrollador activado</string>
<string name="force_english_pref">Forzar el idioma al Inglés</string> <string name="force_english_pref">Forzar el idioma al Inglés</string>
<string name="disable_low_quality_module_filter_pref">Desactivar el filtro de módulos de baja calidad</string> <string name="disable_low_quality_module_filter_pref">Desactivar el filtro de módulos de baja calidad</string>
<string name="disable_low_quality_module_filter_desc"> <string name="disable_low_quality_module_filter_desc">
Algunos módulos no declaran de manera adecuada sus metadatos causando errores visuales 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! y/o indicando una mala calidad del módulo, desactivalo bajo su propio riesgo!
</string> </string>
<string name="dns_over_https_pref">DNS over HTTPS</string> <string name="dns_over_https_pref">DNS over HTTPS</string>
<string name="dns_over_https_desc"> <string name="dns_over_https_desc">
En algunos casos puede solucionar problemas de conexión En algunos casos puede solucionar problemas de conexión
(No se aplica al WebView) (No se aplica al WebView)
</string> </string>
<string name="disable_extensions_pref">Desactivar extensiones</string> <string name="disable_extensions_pref">Desactivar extensiones</string>
<string name="disable_extensions_desc"> <string name="disable_extensions_desc">
Desactiva las extensiones de Fox\'s Mmm, esto previene que los módulos usen 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. extensiones de la terminal, útil si un módulo hace mal uso de las extensiones de Fox\'s Mmm.
</string> </string>
<string name="wrap_text_pref">Dividir el texto</string> <string name="wrap_text_pref">Dividir el texto</string>
<string name="wrap_text_desc"> <string name="wrap_text_desc">
Divide el texto en una linea nueva en vez de colocar 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 todo el texto en la misma linea durante la instalación de un módulo
</string> </string>
<string name="enable_blur_pref">Activar desenfoque</string> <string name="enable_blur_pref">Activar desenfoque</string>
<string name="repo_enabled">Repositorio activado</string> <string name="repo_enabled">Repositorio activado</string>
<string name="repo_disabled">Repositorio desactivado</string> <string name="repo_disabled">Repositorio desactivado</string>
</resources> </resources>
Loading…
Cancel
Save