Release 0.1.1

- Improve the reading of invalid `module.prop` files
  (Should fix Substratum not appearing in the module list)
- Add fallback support link for substratum
- Update Libraries
pull/27/head 0.1.1
Fox2Code 4 years ago
parent 6574115a85
commit c010d7bf0c

@ -10,8 +10,8 @@ android {
applicationId "com.fox2code.mmm" applicationId "com.fox2code.mmm"
minSdk 21 minSdk 21
targetSdk 30 targetSdk 30
versionCode 4 versionCode 5
versionName "0.1.0" versionName "0.1.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

@ -1,6 +1,7 @@
package com.fox2code.mmm.manager; package com.fox2code.mmm.manager;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.util.Log;
import com.fox2code.mmm.MainApplication; import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.utils.PropUtils; import com.fox2code.mmm.utils.PropUtils;
@ -11,6 +12,8 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
public final class ModuleManager { public final class ModuleManager {
private static final String TAG = "ModuleManager";
private static final int FLAG_MM_INVALID = ModuleInfo.FLAG_METADATA_INVALID; private static final int FLAG_MM_INVALID = ModuleInfo.FLAG_METADATA_INVALID;
private static final int FLAG_MM_UNPROCESSED = 0x40000000; private static final int FLAG_MM_UNPROCESSED = 0x40000000;
private static final int FLAGS_RESET_INIT = FLAG_MM_INVALID | private static final int FLAGS_RESET_INIT = FLAG_MM_INVALID |
@ -117,6 +120,7 @@ public final class ModuleManager {
PropUtils.readProperties(moduleInfo, PropUtils.readProperties(moduleInfo,
"/data/adb/modules/" + module + "/module.prop"); "/data/adb/modules/" + module + "/module.prop");
} catch (Exception e) { } catch (Exception e) {
Log.d(TAG, "Failed to parse metadata!", e);
moduleInfo.flags |= FLAG_MM_INVALID; moduleInfo.flags |= FLAG_MM_INVALID;
} }
} }
@ -136,6 +140,7 @@ public final class ModuleManager {
PropUtils.readProperties(moduleInfo, PropUtils.readProperties(moduleInfo,
"/data/adb/modules_update/" + module + "/module.prop"); "/data/adb/modules_update/" + module + "/module.prop");
} catch (Exception e) { } catch (Exception e) {
Log.d(TAG, "Failed to parse metadata!", e);
moduleInfo.flags |= FLAG_MM_INVALID; moduleInfo.flags |= FLAG_MM_INVALID;
} }
} }

@ -10,6 +10,7 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
public class PropUtils { public class PropUtils {
private static final HashMap<String, String> moduleSupportsFallbacks = new HashMap<>(); private static final HashMap<String, String> moduleSupportsFallbacks = new HashMap<>();
@ -24,7 +25,8 @@ public class PropUtils {
moduleSupportsFallbacks.put("aospill", "https://t.me/PannekoX"); moduleSupportsFallbacks.put("aospill", "https://t.me/PannekoX");
moduleSupportsFallbacks.put("quickstepswitcher", "https://t.me/QuickstepSwitcherSupport"); moduleSupportsFallbacks.put("quickstepswitcher", "https://t.me/QuickstepSwitcherSupport");
moduleSupportsFallbacks.put("riru_edxposed", "https://t.me/EdXposed"); moduleSupportsFallbacks.put("riru_edxposed", "https://t.me/EdXposed");
moduleSupportsFallbacks.put("riru_lsposed", "https://github.com/LSPosed/LSPosed/issues/"); moduleSupportsFallbacks.put("riru_lsposed", "https://github.com/LSPosed/LSPosed/issues");
moduleSupportsFallbacks.put("substratum", "https://github.com/substratum/substratum/issues");
// Config are application installed by modules that allow them to be configured // Config are application installed by modules that allow them to be configured
moduleConfigsFallbacks.put("quickstepswitcher", "xyz.paphonb.quickstepswitcher"); moduleConfigsFallbacks.put("quickstepswitcher", "xyz.paphonb.quickstepswitcher");
moduleConfigsFallbacks.put("riru_edxposed", "org.meowcat.edxposed.manager"); moduleConfigsFallbacks.put("riru_edxposed", "org.meowcat.edxposed.manager");
@ -44,7 +46,7 @@ public class PropUtils {
} }
public static void readProperties(ModuleInfo moduleInfo, String file) throws IOException { public static void readProperties(ModuleInfo moduleInfo, String file) throws IOException {
boolean readId = false, readVersionCode = false; boolean readId = false, readIdSec = false, readVersionCode = false;
try (BufferedReader bufferedReader = new BufferedReader( try (BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(SuFileInputStream.open(file), StandardCharsets.UTF_8))) { new InputStreamReader(SuFileInputStream.open(file), StandardCharsets.UTF_8))) {
String line; String line;
@ -63,7 +65,12 @@ public class PropUtils {
} }
break; break;
case "name": case "name":
if (readIdSec && !moduleInfo.id.equals(value))
throw new IOException("Duplicate module name!");
moduleInfo.name = value; moduleInfo.name = value;
if (moduleInfo.id.equals(value)) {
readIdSec = true;
}
break; break;
case "version": case "version":
moduleInfo.version = value; moduleInfo.version = value;
@ -124,7 +131,13 @@ public class PropUtils {
} }
} }
if (!readId) { if (!readId) {
throw new IOException("Didn't read module id at least once!"); if (readIdSec) {
// Using the name for module id is not really appropriate, so beautify it a bit
moduleInfo.name = moduleInfo.id.substring(0, 1).toUpperCase(Locale.ROOT) +
moduleInfo.id.substring(1).replace('_', ' ');
} else {
throw new IOException("Didn't read module id at least once!");
}
} }
if (!readVersionCode) { if (!readVersionCode) {
throw new IOException("Didn't read module versionCode at least once!"); throw new IOException("Didn't read module versionCode at least once!");

@ -5,7 +5,7 @@ buildscript {
mavenCentral() mavenCentral()
gradlePluginPortal() gradlePluginPortal()
} }
project.ext.latestAboutLibsRelease = "8.9.3" project.ext.latestAboutLibsRelease = "8.9.4"
dependencies { dependencies {
classpath "com.android.tools.build:gradle:7.0.3" classpath "com.android.tools.build:gradle:7.0.3"
classpath "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:${latestAboutLibsRelease}" classpath "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:${latestAboutLibsRelease}"

Loading…
Cancel
Save