Thx AndroidStudio/IntellijIDEA for renaming everything for me!

pull/273/head
Fox2Code 1 year ago
parent c8529ee12b
commit 8eeabcf8f6

@ -65,8 +65,8 @@ me to not be stuck in my bed at least once a day because of pain.
## Screenshots
Main activity:
[<img src="screenshot-dark.jpg" width="250"/>](screenshot-dark.jpg)
[<img src="screenshot-light.jpg" width="250"/>](screenshot-light.jpg)
[<img src="screenshot-dark.jpg" width="250"/>](docs/screenshot-dark.jpg)
[<img src="screenshot-light.jpg" width="250"/>](docs/screenshot-light.jpg)
## What is this?

@ -2,8 +2,8 @@ package com.fox2code.mmm;
import android.util.Log;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Http;
import org.json.JSONArray;
import org.json.JSONObject;

@ -49,7 +49,7 @@ import com.fox2code.mmm.repo.RepoManager;
import com.fox2code.mmm.settings.SettingsActivity;
import com.fox2code.mmm.utils.BlurUtils;
import com.fox2code.mmm.utils.ExternalHelper;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.progressindicator.LinearProgressIndicator;

@ -27,9 +27,9 @@ import com.fox2code.foxcompat.app.FoxApplication;
import com.fox2code.foxcompat.app.internal.FoxProcessExt;
import com.fox2code.foxcompat.view.FoxThemeWrapper;
import com.fox2code.mmm.installer.InstallerInitializer;
import com.fox2code.mmm.utils.GMSProviderInstaller;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.SentryMain;
import com.fox2code.mmm.utils.io.GMSProviderInstaller;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.sentry.SentryMain;
import com.fox2code.rosettax.LanguageSwitcher;
import com.google.common.hash.Hashing;
import com.topjohnwu.superuser.Shell;

@ -12,8 +12,8 @@ import com.fox2code.foxcompat.app.FoxActivity;
import com.fox2code.mmm.installer.InstallerInitializer;
import com.fox2code.mmm.module.ModuleViewListBuilder;
import com.fox2code.mmm.repo.RepoManager;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import java.io.BufferedReader;

@ -32,7 +32,7 @@ import com.fox2code.mmm.Constants;
import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.R;
import com.fox2code.mmm.XHooks;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import com.google.android.material.progressindicator.LinearProgressIndicator;

@ -16,9 +16,9 @@ import com.fox2code.mmm.manager.ModuleInfo;
import com.fox2code.mmm.repo.RepoData;
import com.fox2code.mmm.repo.RepoManager;
import com.fox2code.mmm.repo.RepoModule;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.HttpException;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.io.HttpException;
import com.fox2code.mmm.utils.io.PropUtils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.topjohnwu.superuser.Shell;

@ -26,8 +26,8 @@ import com.fox2code.mmm.manager.ModuleInfo;
import com.fox2code.mmm.manager.ModuleManager;
import com.fox2code.mmm.repo.RepoModule;
import com.fox2code.mmm.utils.ExternalHelper;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.Hashes;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Hashes;
import com.fox2code.mmm.utils.IntentHelper;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;

@ -26,7 +26,7 @@ import com.fox2code.mmm.manager.LocalModuleInfo;
import com.fox2code.mmm.manager.ModuleManager;
import com.fox2code.mmm.repo.RepoManager;
import com.fox2code.mmm.repo.RepoModule;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.PropUtils;
import java.util.HashMap;
import java.util.Random;

@ -29,13 +29,13 @@ import com.fox2code.mmm.XHooks;
import com.fox2code.mmm.androidacy.AndroidacyUtil;
import com.fox2code.mmm.module.ActionButtonType;
import com.fox2code.mmm.utils.FastException;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.Hashes;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Hashes;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.SentryBreadcrumb;
import com.fox2code.mmm.utils.SentryMain;
import com.fox2code.mmm.utils.io.PropUtils;
import com.fox2code.mmm.utils.sentry.SentryBreadcrumb;
import com.fox2code.mmm.utils.sentry.SentryMain;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
import com.google.android.material.progressindicator.LinearProgressIndicator;

@ -9,7 +9,7 @@ import androidx.annotation.Nullable;
import com.fox2code.mmm.Constants;
import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.NotificationType;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.io.Files;
import com.topjohnwu.superuser.NoShellException;
import com.topjohnwu.superuser.Shell;

@ -4,8 +4,8 @@ import android.util.Log;
import com.fox2code.mmm.markdown.MarkdownUrlLinker;
import com.fox2code.mmm.utils.FastException;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.io.PropUtils;
import org.json.JSONObject;

@ -1,7 +1,7 @@
package com.fox2code.mmm.manager;
import com.fox2code.mmm.BuildConfig;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.PropUtils;
/**
* Representation of the module.prop

@ -8,7 +8,7 @@ import androidx.annotation.NonNull;
import com.fox2code.mmm.BuildConfig;
import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.installer.InstallerInitializer;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.PropUtils;
import com.fox2code.mmm.utils.SyncManager;
import com.topjohnwu.superuser.Shell;
import com.topjohnwu.superuser.io.SuFile;

@ -24,7 +24,7 @@ import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.R;
import com.fox2code.mmm.XHooks;
import com.fox2code.mmm.utils.BlurUtils;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;

@ -15,9 +15,9 @@ import com.fox2code.mmm.XHooks;
import com.fox2code.mmm.manager.LocalModuleInfo;
import com.fox2code.mmm.manager.ModuleInfo;
import com.fox2code.mmm.repo.RepoModule;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.PropUtils;
import java.util.Comparator;
import java.util.List;

@ -2,7 +2,7 @@ package com.fox2code.mmm.repo;
import android.content.SharedPreferences;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Http;
import org.json.JSONException;
import org.json.JSONObject;

@ -3,10 +3,8 @@ package com.fox2code.mmm.repo;
import android.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.NonNull;
import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.PropUtils;
public class CustomRepoManager {
private static final boolean AUTO_RECOMPILE = true;

@ -13,8 +13,8 @@ import com.fox2code.mmm.MainApplication;
import com.fox2code.mmm.R;
import com.fox2code.mmm.XRepo;
import com.fox2code.mmm.manager.ModuleInfo;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.PropUtils;
import org.json.JSONArray;
import org.json.JSONException;

@ -19,10 +19,10 @@ import com.fox2code.mmm.XHooks;
import com.fox2code.mmm.XRepo;
import com.fox2code.mmm.androidacy.AndroidacyRepoData;
import com.fox2code.mmm.manager.ModuleInfo;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.Hashes;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.PropUtils;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Hashes;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.io.PropUtils;
import com.fox2code.mmm.utils.SyncManager;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@ -221,13 +221,16 @@ public final class RepoManager extends SyncManager {
return repoData;
}
@SuppressWarnings("StatementWithEmptyBody")
@SuppressLint("StringFormatInvalid")
protected void scanInternal(@NonNull UpdateListener updateListener) {
// Refuse to start if first_launch is not false in shared preferences
if (MainActivity.doSetupNowRunning) {
return;
}
// fail fast on no internet
if (!RepoManager.getINSTANCE().hasConnectivity()) {
return;
}
this.modules.clear();
updateListener.update(0D);
// Using LinkedHashSet to deduplicate Androidacy entry.
@ -297,7 +300,8 @@ public final class RepoManager extends SyncManager {
// Attempt to contact connectivitycheck.gstatic.com/generate_204
// If we can't, we don't have internet connection
try {
HttpURLConnection urlConnection = (HttpURLConnection) new URL("https://connectivitycheck.gstatic.com/generate_204").openConnection();
HttpURLConnection urlConnection = (HttpURLConnection) new URL(
"https://connectivitycheck.gstatic.com/generate_204").openConnection();
urlConnection.setInstanceFollowRedirects(false);
urlConnection.setReadTimeout(1000);
urlConnection.setUseCaches(false);

@ -3,8 +3,8 @@ package com.fox2code.mmm.repo;
import android.util.Log;
import com.fox2code.mmm.BuildConfig;
import com.fox2code.mmm.utils.Files;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Http;
import org.json.JSONObject;

@ -58,10 +58,10 @@ import com.fox2code.mmm.repo.CustomRepoManager;
import com.fox2code.mmm.repo.RepoData;
import com.fox2code.mmm.repo.RepoManager;
import com.fox2code.mmm.utils.ExternalHelper;
import com.fox2code.mmm.utils.Http;
import com.fox2code.mmm.utils.io.Http;
import com.fox2code.mmm.utils.IntentHelper;
import com.fox2code.mmm.utils.ProcessHelper;
import com.fox2code.mmm.utils.SentryMain;
import com.fox2code.mmm.utils.sentry.SentryMain;
import com.fox2code.rosettax.LanguageActivity;
import com.fox2code.rosettax.LanguageSwitcher;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;

@ -26,6 +26,8 @@ import com.fox2code.mmm.XHooks;
import com.fox2code.mmm.androidacy.AndroidacyActivity;
import com.fox2code.mmm.installer.InstallerActivity;
import com.fox2code.mmm.markdown.MarkdownActivity;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.Http;
import com.topjohnwu.superuser.CallbackList;
import com.topjohnwu.superuser.Shell;
import com.topjohnwu.superuser.io.SuFileInputStream;

@ -29,10 +29,6 @@ public abstract class SyncManager {
// MultiThread friendly method
public final void update(@Nullable UpdateListener updateListener) {
// fail fast on no internet
if (!RepoManager.getINSTANCE().hasConnectivity()) {
return;
}
if (updateListener == null) updateListener = NO_OP;
if (!this.syncing) {
// Do scan

@ -11,6 +11,8 @@ import com.fox2code.foxcompat.app.FoxActivity;
import com.fox2code.mmm.BuildConfig;
import com.fox2code.mmm.R;
import com.fox2code.mmm.installer.InstallerInitializer;
import com.fox2code.mmm.utils.io.Files;
import com.fox2code.mmm.utils.io.PropUtils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.io.File;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
// Original written by tsuharesu
// Adapted to create a "drop it in and watch it work" approach by Nikhil Jha.

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
import android.content.Context;
import android.database.Cursor;

@ -22,7 +22,7 @@
*
* */
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
import android.content.Context;
import android.content.pm.PackageManager;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
import android.util.Log;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
import android.annotation.SuppressLint;
import android.content.Context;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
import androidx.annotation.Keep;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
import static com.fox2code.mmm.AppUpdateManager.FLAG_COMPAT_LOW_QUALITY;
import static com.fox2code.mmm.AppUpdateManager.getFlagsForModule;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.io;
// Original written by tsuharesu
// Adapted to create a "drop it in and watch it work" approach by Nikhil Jha.

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.sentry;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

@ -1,4 +1,4 @@
package com.fox2code.mmm.utils;
package com.fox2code.mmm.utils.sentry;
import android.annotation.SuppressLint;
import android.content.Context;
@ -55,7 +55,7 @@ public class SentryMain {
options.addInAppInclude("com.fox2code.mmm");
options.addInAppInclude("com.fox2code.mmm.debug");
options.addInAppInclude("com.fox2code.mmm.fdroid");
options.addInAppExclude("com.fox2code.mmm.utils.SentryMain");
options.addInAppExclude("com.fox2code.mmm.utils.sentry.SentryMain");
// Sentry sends ABSOLUTELY NO Personally Identifiable Information (PII) by default.
// Already set to false by default, just set it again to make peoples feel safer.
options.setSendDefaultPii(false);
@ -87,7 +87,7 @@ public class SentryMain {
});
}
public static void addSentryBreadcrumb(com.fox2code.mmm.utils.SentryBreadcrumb sentryBreadcrumb) {
public static void addSentryBreadcrumb(SentryBreadcrumb sentryBreadcrumb) {
if (MainApplication.isCrashReportingEnabled()) {
Sentry.addBreadcrumb(sentryBreadcrumb.breadcrumb);
}

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="QueryAllPackagesPermission">
<uses-sdk tools:overrideLibrary="io.sentry.android" />
<application android:icon="@mipmap/ic_launcher" android:enableOnBackInvokedCallback="true"
tools:targetApi="tiramisu">
<meta-data
android:name="io.sentry.auto-init"
android:value="false" />
<meta-data
android:name="io.sentry.dsn"
android:value="https://198c68516cb0412b9832204631a3fac8@o993586.ingest.sentry.io/4504069942804480" />
<!-- Sane value, but feel free to lower it -->
<meta-data
android:name="io.sentry.traces.sample-rate"
android:value="0.5" />
<!-- Doesn't actually monitor anything, just used to get the activities the user went through -->
<meta-data
android:name="io.sentry.traces.user-interaction.enable"
android:value="true" />
<!-- Just a screenshot of ONLY the current activity at the time of the crash -->
<meta-data
android:name="io.sentry.attach-screenshot"
android:value="true" />
<!-- Just the current activity at the time of the crash -->
<meta-data
android:name="io.sentry.attach-stacktrace"
android:value="true" />
<!-- Don't send PII, this is actually default but let's be explicit -->
<meta-data
android:name="io.sentry.sendDefaultPii"
android:value="false" />
<meta-data
android:name="io.sentry.traces.profiling.sample-rate"
android:value="0.5" />
</application>
</manifest>

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="QueryAllPackagesPermission">
<application android:icon="@mipmap/ic_launcher">
</application>
</manifest>

@ -1,18 +0,0 @@
package com.fox2code.mmm.sentry;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Objects;
public class SentryBreadcrumb {
public SentryBreadcrumb() {}
public void setType(@Nullable String type) {}
public void setData(@NotNull String key, @Nullable Object value) {
Objects.requireNonNull(key);
}
public void setCategory(@Nullable String category) {}
}

@ -1,13 +0,0 @@
package com.fox2code.mmm.sentry;
import com.fox2code.mmm.MainApplication;
public class SentryMain {
public static final boolean IS_SENTRY_INSTALLED = false;
public static void initialize(MainApplication mainApplication) {}
public static void addSentryBreadcrumb(SentryBreadcrumb sentryBreadcrumb) {}
public static boolean isSentryEnabled() { return false; }
}

@ -24,7 +24,7 @@ App hiding: I don't intent on hiding the app, the package names should always be
`com.fox2code.mmm` or starts with `com.fox2code.mmm.`, however I notice the presence of
my app is causing issues due to it existing, I may add an hiding feature to the app.
Low quality module filter: Implemented at `com.fox2code.mmm.utils.PropUtils.isLowQualityModule`,
Low quality module filter: Implemented at `com.fox2code.mmm.utils.io.PropUtils.isLowQualityModule`,
it is a check that verify that the module is declaring the minimum required to
allow the app to show your module to the user without hurting his experience.
Filling all basic Magisk properties is often enough to not get filtered out by it.
@ -173,7 +173,7 @@ mmm_exec hideLoading
mmm_exec setSupportLink https://github.com/Fox2Code/FoxMagiskModuleManager
```
[You may look at the examples modules and their codes.](../examples)
[You may look at the examples modules and their codes.](examples)
## Developer mode

Before

Width:  |  Height:  |  Size: 511 KiB

After

Width:  |  Height:  |  Size: 511 KiB

Before

Width:  |  Height:  |  Size: 592 KiB

After

Width:  |  Height:  |  Size: 592 KiB

Loading…
Cancel
Save